--- title: "Call tools from MCP clients" description: "Learn how to call tools from MCP clients" --- import { Steps, Tabs, Callout } from "nextra/components"; # Call tools from MCP clients Configure your MCP clients to call tools from your MCP server. - - [Arcade CLI](/references/arcade-cli) - [An MCP Server](/guides/create-tools/tool-basics/build-mcp-server) - [uv package manager](https://docs.astral.sh/uv/getting-started/installation/) - How to configure your MCP clients depending on the transport type. - How to set the secrets for your MCP server in your client's configuration file. ## Using the `arcade configure` command For popular MCP clients, you can use the `arcade configure` command to configure your MCP client to call your MCP server. This will automatically add the MCP server to your client's configuration file. By default, it will use the stdio transport. You must run this command from the directory of your entrypoint file. ```bash arcade configure cursor ``` ```bash arcade configure vscode ``` ```bash arcade configure claude ``` You can customize a lot of the configuration passing options to `arcade configure`. For example, to change the transport type to http, you can pass the `--transport` (or `-t`) option: ```bash arcade configure cursor --transport http ``` ```bash arcade configure vscode --transport http ``` Claude Desktop does not currently support the HTTP transport via JSON configuration files. ### stdio specific configuration If you are using the stdio transport, `arcade configure` will assume the entrypoint file (the script that contains the `MCPApp` instance and calls `app.run()`) to your MCP server is `server.py` and will set the working directory to the path of your entrypoint file. You can override this with the `--entrypoint` (or `-e`) option: Note that the `--entrypoint` accepts only the filename of the entrypoint file, not the path to the script. When using the stdio transport, `arcade configure` will automatically load the secrets from the `.env` file at the directory of your entrypoint file into the appropriate configuration file for your MCP client. ```bash arcade configure cursor --entrypoint my_server.py ``` ```bash arcade configure vscode --entrypoint my_server.py ``` ```bash arcade configure claude --entrypoint my_server.py ``` ### HTTP specific configuration If you are using the streamable HTTP transport, `arcade configure` will assume the MCP server is running on the default port `8000` and that the MCP server is running locally (in localhost). You can override this with the `--host` (or `-h`) and `--port` (or `-p`) options: Run from a different port: ```bash arcade configure cursor -t http --port 8000 ``` If you want to configure an MCP server running on the Arcade Cloud, you can use the `--host` option: ```bash arcade configure cursor -t http --host arcade ``` Run from a different port: ```bash arcade configure vscode -t http --port 8000 ``` If you want to configure an MCP server running on the Arcade Cloud, you can use the `--host` option: ```bash arcade configure vscode -t http --host arcade ``` Claude Desktop does not currently support the HTTP transport via JSON configuration files. ### Other configuration options If you have modified the default configuration of your MCP client, or want to use a profile/workspace specific configuration file, then you can pass the `--config` (or `-c`) option to `arcade configure` to use your custom configuration file: ```bash arcade configure cursor --config /path/to/your/config.json ``` ```bash arcade configure vscode --config /path/to/your/config.json ``` ```bash arcade configure claude --config /path/to/your/config.json ``` By default, `arcade configure` will use the current directory as the name of the MCP server. You can override this with the `--name` (or `-n`) option: ```bash arcade configure cursor --name my_server ``` ```bash arcade configure vscode --name my_server ``` ```bash arcade configure claude --name my_server ``` ## Manually configuring your MCP client If your MCP client is not supported by the `arcade configure` command, you can manually add the MCP server to your client's configuration file. Each MCP client has a different way of configuring MCP servers. This section covers the most common ways of configuring MCP servers adopted by the most popular MCP clients. However, you may find inconsistencies such as the need to specify the MCP server's type as its transport, or as "local" and "remote". Some MCP clients will use "env" to pass environment variables, while others may use "environment" or "inputs". Use this guide as a conceptual reference, but always refer to your MCP client's documentation for the most up-to-date information. When configuring your MCP client using the stdio transport, you need to ensure that the MCP server is called using the right version of Python and within the correct working directory. For example, let's pretend this is your setup: - Your virtual environment is located at `/path/to/your/project/.venv` - Your project is located at `/path/to/your/project` - The entrypoint to your MCP server is located at `/path/to/your/server.py` - One of your tools requires the `MY_SECRET_KEY` environment variable to be set. - Your secrets are stored in the `/path/to/your/project/.env` file Then, your MCP client's configuration file should look like this: ```json { "mcpServers": { "my_server": { "command": "/path/to/your/project/.venv/bin/python", "args": ["/path/to/your/project/server.py", "stdio"], "env": { "MY_SECRET_KEY": "my-secret-value" } } } } ``` This will ensure that the command used by the MCP client to start the MCP server is the correct version of Python and that the environment variables are set correctly. When configuring your MCP client using the Streamable HTTP transport, ensure the MCP server is started on the correct port and from the correct working directory. For example, if your setup is: - Your virtual environment is located at `/path/to/your/project/.venv` - Your MCP server is located at `/path/to/your/project/server.py` - Your secrets are stored in the `/path/to/your/project/.env` file Activate the virtual environment: ```bash source /path/to/your/project/.venv/bin/activate ``` run the MCP server using the http transport. The secrets will be loaded from the `.env` file that is located at the directory of your entrypoint file: ```bash uv run server.py http ``` Then, your MCP client's configuration file should look like this: ```json { "mcpServers": { "my_server": { "url": "http://127.0.0.1:8000", "transport": "http" } } } ``` For security reasons, Local HTTP servers do not currently support managed authorization and secrets. If you need to use authorization or secrets, you should use the stdio transport and configure the Arcade API key and secrets in your MCP connection settings. If you intend to expose your HTTP MCP server to the public internet, please follow the [on-prem MCP server](/guides/deployment-hosting/on-prem) guide for secure remote deployment.