configure_server
Install an MCP server package, add it to your client configuration, and validate it works. Supports npm, pip, Docker, and HTTP transport servers. Performs preflight checks with dry-run option to avoid broken configs.
Instructions
Install an MCP server package, add it to your client config, and verify it works.
This is the main action tool. It handles the complete setup flow:
Installs the package via npm/pip/docker (fails fast if install fails)
Validates by spawning the server and calling list_tools()
Writes the server entry to your MCP client config file(s) only if validation passes
For HTTP transport servers (streamable-http, SSE), the install step is
skipped and the server is configured via the mcp-remote bridge.
Pass the server URL as package_identifier (e.g. https://mcp.vercel.com)
or set registry_type to "streamable-http", "http", or "sse".
Get the package_identifier and registry_type from search_servers results or scan_project recommendations.
If validation fails, the config is NOT written to avoid broken entries. The user should fix the issue and retry.
When dry_run=True, mcp-tap performs install + validation preflight but
does NOT write any client config, lockfile, or telemetry acceptance event.
Args: server_name: Name for this server in the config (e.g. "postgres"). This is how it appears in list_installed and other tools. package_identifier: The package to install and run. Get this from search_servers results (e.g. "@modelcontextprotocol/server-postgres" for npm, "mcp-server-git" for pypi), or a URL for HTTP transport servers (e.g. "https://mcp.vercel.com"). clients: Target MCP client(s). Comma-separated names like "claude_desktop,cursor", "all" for every detected client, or empty to auto-detect the first available. registry_type: Package source — "npm" (default), "pypi", "oci", "streamable-http", "http", or "sse". version: Package version. Defaults to "latest". env_vars: Environment variables the server needs, as comma-separated KEY=VALUE pairs (e.g. "POSTGRES_URL=postgresql://...,API_KEY=sk-..."). Check search_servers results for env_vars_required. scope: "user" for global config (default), "project" for project-scoped config (e.g. .cursor/mcp.json in the project dir). project_path: Project directory path. Required when scope="project". feedback_query_id: Optional query_id from scan/search telemetry event so accepted recommendations can be linked to shown rankings. dry_run: When True, run preflight only (install/validate) and return what would be written without touching client config files.
Returns: Result with: success, install_status, config_written, validation_passed, tools_discovered. Multi-client calls also include per_client_results.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| server_name | Yes | ||
| package_identifier | Yes | ||
| clients | No | ||
| registry_type | No | npm | |
| version | No | latest | |
| env_vars | No | ||
| scope | No | user | |
| project_path | No | ||
| feedback_query_id | No | ||
| dry_run | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||