PMCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| host | No | Host to bind HTTP transport. Only used when transport is 'http'. | 127.0.0.1 |
| port | No | Port to bind HTTP transport. Only used when transport is 'http'. | 3344 |
| debug | No | Enable debug logging. Set to 'true' or 'false'. | false |
| transport | No | Transport mode: 'stdio' or 'http'. Default is 'stdio'. | stdio |
| PMCP_CONFIG | No | Path to a custom config file. Can also be set via --config. | |
| PMCP_LOCK_DIR | No | Directory for the singleton lock file. Defaults to ~/.pmcp. Can also be set via --lock-dir. | |
| PMCP_AUTH_TOKEN | No | Bearer token for HTTP transport authentication. Can also be set via --auth-token. | |
| PMCP_RATE_LIMIT | No | Rate limit for HTTP transport, e.g., '10/second'. Applied per source IP. | |
| PMCP_LEGACY_MANIFEST_AUTOSTART | No | Set to '1' to enable legacy manifest autostart behavior. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| gateway.auth_connectA | Store credentials for a server and make them available to provisioning. Use this when gateway.provision reports missing authentication. |
| gateway.cancelA | Cancel a pending tool invocation. By default, refuses to cancel healthy requests (recent heartbeat). Use force=true to cancel anyway. Use gateway.list_pending first to see request IDs and health status. |
| gateway.catalog_searchA | Search for available tools across all connected MCP servers. Returns compact capability cards without full schemas. Use filters to narrow results by server, tags, or risk level. Set include_offline=True to also discover provisionable servers not yet running. This is the primary tool discovery entry point. |
| gateway.config_statusA | Show read-only effective configuration and startup policy status with source attribution and non-secret diagnostics. |
| gateway.connect_serverA | Connect or start a known downstream MCP server by name. Resolves configured, provisioned manifest, and registered discovered servers. |
| gateway.describeA | Get detailed information about a specific tool, including its arguments and constraints. Use this before invoking a tool to understand its requirements. |
| gateway.disconnect_serverA | Disconnect a running downstream MCP server without changing persistent config. Refuses by default when that server has pending requests; set force=true to cancel them. |
| gateway.get_startup_policyA | Return persisted autoStart and legacy disableAutoStart entries grouped by config source. |
| gateway.healthA | Get the health status of the gateway and all connected MCP servers. Shows server status, tool counts, and last refresh time. |
| gateway.invokeA | Invoke a tool on a downstream MCP server. Arguments are validated against the tool schema before execution. Output is automatically truncated if too large. |
| gateway.list_pendingA | List all pending tool invocations with health status. Shows elapsed time, heartbeat age, and current state for each request. Use this to monitor long-running operations before deciding to cancel. |
| gateway.provisionA | Provision (install and start) a specific MCP server from the manifest. Use this after reviewing candidates from gateway.request_capability. Returns immediately with a job_id for tracking. Poll gateway.provision_status to check progress. Use gateway.request_capability instead if you don't know the exact server name. |
| gateway.provision_statusA | Check the status of a running server installation. Use after gateway.provision returns a job_id. Returns progress percentage, output log, and final tools when complete. |
| gateway.refreshA | Reload backend MCP server configurations and reconnect. Use this when new MCP servers have been configured or to recover from connection errors. Refuses by default while downstream requests are pending; set force=true to cancel them. |
| gateway.register_discovered_serverA | Register an externally-discovered MCP server package so it can be provisioned. Call this after gateway.search_registry to register the chosen package, then call gateway.provision to install and start it. |
| gateway.request_capabilityA | Recommend the right tool for a task — describe what you need in natural language. Examples: 'scrape a website', 'search Slack messages', 'query Postgres', 'browse the web'. Matches against installed CLIs and 90+ provisionable MCP servers and returns ranked candidates; it does NOT start anything — call gateway.provision to actually install/start the recommended server. Prefer this over gateway.provision when you don't already know the exact server name. |
| gateway.restart_serverA | Restart a known downstream MCP server without changing persistent config. Refuses by default when that server has pending requests; set force=true to cancel them. |
| gateway.search_registryA | Search the public MCP Registry for external servers not in the local manifest. Use this when gateway.request_capability returns not_available. Returns package names and metadata; call gateway.register_discovered_server then gateway.provision to install. |
| gateway.set_startup_policyC | Preview or explicitly apply an autoStart add/remove/set operation against one selected config source or path. |
| gateway.submit_feedbackA | Prepare and optionally submit a PMCP feedback issue to GitHub. By default returns an exact preview payload; set confirm_submission=true to submit. |
| gateway.sync_environmentA | Sync environment information from the host. Detects the platform (mac/wsl/linux/windows) and probes for installed CLIs. This information is used to prefer CLIs over MCP servers when matching capabilities. |
| gateway.tasks_cancelB | Cancel a downstream MCP task by opaque task ID. Use gateway.cancel only for PMCP request IDs from gateway.list_pending. |
| gateway.tasks_getC | Get current status for one downstream MCP task. |
| gateway.tasks_listC | List brokered downstream MCP tasks. MCP task IDs are opaque downstream task identifiers, not PMCP request IDs. |
| gateway.tasks_resultC | Fetch a downstream MCP task result and apply the same output redaction and truncation options as gateway.invoke. |
| gateway.update_serverA | Update a subordinate MCP server package to latest version and reconnect it. Use this when invoke/describe/provision warn that a newer version is available. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Code Execution Guide | Comprehensive guide for using PMCP with code execution patterns |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ViperJuice/pmcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server