GetMCP sits between your AI client and any REST API. It translates MCP protocol messages into HTTP requests — and HTTP responses back into MCP protocol messages — without you having to write a line of protocol code.Documentation Index
Fetch the complete documentation index at: https://docs.getmcp.com/llms.txt
Use this file to discover all available pages before exploring further.
The Request Lifecycle
Here is exactly what happens when an AI client calls one of your tools:AI client sends a tools/call request
The AI client (Claude Desktop, Cursor, etc.) sends a JSON-RPC 2.0 POST request to your GetMCP server URL:
GetMCP authenticates the request
If your server has inbound authentication enabled, GetMCP checks the
Authorization header against the credential you configured. Requests without a valid credential are rejected with HTTP 403 before any API call is made.GetMCP looks up the tool
GetMCP finds the
get_customer tool in your server configuration and reads:- The endpoint URL (
https://api.yourcrm.com/customers/{customer_id}) - The HTTP method (
GET) - The input schema (to validate
customer_idis present and a string) - The parameter mappings (
customer_id→ path variable) - The Custom Headers (your CRM API key)
GetMCP validates the arguments
The arguments (
{"customer_id": "cus_123"}) are validated against the tool’s JSON Schema. If a required parameter is missing or the wrong type, GetMCP returns an error immediately — no upstream request is made.GetMCP builds and sends the HTTP request
GetMCP constructs the outbound HTTP request, injecting:
- Path variables into the URL:
https://api.yourcrm.com/customers/cus_123 - Query params, if any, appended to the URL
- Body params into the JSON body, if a POST/PUT/PATCH
- Custom Headers (your production API key, never visible to the AI client)
GetMCP wraps the response in MCP format
GetMCP converts the API response into a valid MCP
tools/call response — a JSON-RPC result containing the API response body as a text content block:GetMCP logs the call
The call is recorded in the analytics database: timestamp, server, tool name, client type, client IP, HTTP status, response time in milliseconds. Credentials are never logged.
What GetMCP Is Responsible For
| Responsibility | GetMCP | You |
|---|---|---|
| MCP protocol (JSON-RPC 2.0) | Handles automatically | — |
| Streamable HTTP transport | Handles automatically | — |
| Session management | Handles automatically | — |
| Tool schema validation | Handles automatically | — |
| Inbound authentication | Configure in Auth tab | Share URL with clients |
| Outbound API credentials | Store in Custom Headers | Provide the keys |
| HTTP request construction | Handles automatically | Configure endpoints + mappings |
| Response → MCP format | Handles automatically | — |
| Call logging & analytics | Handles automatically | Review in dashboard |
| Rate limiting | Configure per server/tool | — |
| Retries on failure | Configure retry count | — |
| Response caching | Configure cache TTL | — |
Tool Discovery (tools/list)
Before calling any tool, an AI client first callstools/list to discover what’s available. GetMCP returns the name, description, and input schema for every active tool on the server.
Resources and Prompts
Beyond tools, GetMCP also serves two other MCP protocol capabilities: Resources — Read-only data the AI can pull on demand. When a client callsresources/read, GetMCP fetches the configured content (static text, external URL, or WordPress query result) and returns it as a content block. The AI can use this as context without triggering an action.
Prompts — Reusable instruction templates. When a client calls prompts/get with argument values, GetMCP renders the template (substituting {{argument_name}} placeholders) and returns the complete prompt text.
What Runs on WordPress
GetMCP is a WordPress plugin. Everything runs inside your WordPress installation:- The MCP endpoint is a WordPress REST route registered at
/mcp/{slug} - The admin UI lives in
wp-adminunder the GetMCP menu - All config (servers, tools, credentials) is stored in the WordPress database — credentials encrypted with libsodium
- All outbound HTTP requests are made by WordPress using
wp_remote_request() - Analytics are stored in custom database tables created on plugin activation
Performance Characteristics
| Factor | Default | Configurable |
|---|---|---|
| Request timeout | 30 seconds | Yes, per tool |
| Retry on failure | 0 retries | Yes, 0–5 per tool |
| Response cache | None | Yes, TTL per tool |
| Rate limit | 60 req/min | Yes, per server and tool |
Cache TTL on those tools to reduce upstream API calls and improve response times.
