{"revision":"c10276e953456835cdbb1f3a60d58ae1980be353","document":{"id":23095,"path":"intelligent-experiences/create-a-tool-from-rest-api.md","title":"Create a tool from a REST API","bundle":null,"doc_type":null,"release":"australia","body":"\n# Create a tool from a REST API\n\nUse a REST API to create a tool and expose it to Model Context Protocol \\(MCP Server Console\\) clients from an MCP Server Console.\n\n## Before you begin\n\nRole required: sn\\_mcp\\_server.tools\\_admin, sn\\_mcp\\_server.admin, or admin\n\n## Procedure\n\n1.  Select REST API from these categories.\n\n    \\[Omitted image \"mcp-create-tool-moveworks.png\"\\] Alt text: Tool category selection screen\n\n2.  Complete the fields on the form.\n\n    \\[Omitted image \"mcp-server-create-tool-restapi.png\"\\] Alt text: Create tool from REST APIs\n\n    **Note:** The **Category** is auto-populated if selected in the previous dialog.\n\n<table id=\"table_l2y_lhm_hgc\"><thead><tr><th>\n\nField\n\n</th><th>\n\nDescription\n\n</th></tr></thead><tbody><tr><td>\n\nREST API\n\n</td><td>\n\nREST API type for the tool.\n\n</td></tr><tr><td>\n\nLabel\n\n</td><td>\n\nAn internal name for the tool.\n\n</td></tr><tr><td>\n\nMCP app\n\n</td><td>\n\nAn active MCP app linked to this REST API.\n\n</td></tr><tr><td>\n\nDescription\n\n</td><td>\n\nThe description of what the tool does. This input is exposed to AI clients and used to determine when to call this tool.\n\n**Note:** Add a specific, action-oriented description. AI clients use it to decide when to invoke the tool.\n\n Client requests to Scripted REST API tools must include the inputs required by the API. The tool description must clearly state which inputs are required and what format they should be in so clients know exactly what to include in their request.\n\n For example, a well-written tool description could say: \"Returns all open incidents assigned to a specified assignment group within a given date range. Requires: assignment\\_group \\(string, the exact group name\\), start\\_date \\(string, format YYYY-MM-DD\\), end\\_date \\(string, format YYYY-MM-DD\\).\" The calling agent uses this description to determine what to collect from the user before invoking the tool.\n\n</td></tr><tr><td>\n\nAnnotations\n\n</td><td>\n\nIndication of the tool's behavior with MCP clients, including whether it only reads data, is idempotent, makes destructive changes or updates, or can call external links. You can also specifically combine these annotations as needed.\n\n The MCP client will use the selected annotations to categorize tools according to their behavior.\n\n</td></tr><tr><td>\n\nRequired roles\n\n</td><td>\n\nThe MCP Tools admin selects one or more roles from the User Role \\[sys\\_user\\_role\\] table to specify which roles can access and use the tool.\n\n</td></tr><tr><td>\n\nMCP Servers\n\n</td><td>\n\nOne or more servers to add the tool to.\n\n</td></tr></tbody>\n</table>    **Note:** A tool can be used by multiple servers so any changes that you make to a tool apply to all servers that use the tool. Before editing a tool, review which servers it's associated with to determine the impact for every server.\n\n    In the Tool inputs section, the fields associated with the capability are added.\n\n3.  Turn off inputs from the tool that you don't want to expose.\n\n    1.  In the Tool inputs section, locate the tool input.\n\n    2.  From the Enabled column, select the toggle to turn off the input.\n\n        **Note:** Some tool inputs are required and can't be turned off.\n\n4.  Select **Create**.\n\n\n## What to do next\n\nConfigure clients to connect to the server and use the tool. For more information, see [Connecting to an MCP server from an MCP client](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/intelligent-experiences/connect-mcp-server-client.md).\n\n**Note:** When calling a Scripted REST API tool from a client, you must provide inputs in your request. If a required parameter, such as a record number, a date range, or a filter value, is not present in the request, the tool cannot complete the task.\n\n**Parent Topic:**[Creating tools for a Model Context Protocol server](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/intelligent-experiences/creating-tools-mcp-server.md)\n\n**Related topics**  \n\n\n[Create a scripted REST API resource](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/api-reference/t_CreateAScriptedRESTAPIResource.md)\n\n"}}