Developers
Turn any API into AI tools.
Import APIs, publish endpoints and read execution logs from code. Everything you can do in the dashboard is backed by a documented management API, and every endpoint speaks standard MCP over HTTPS.
https://api.example.com/openapi.json- OpenAPI 3.1 detected
- OAuth2 detected
- 184 endpoints indexed
- 32 AI tools generated
- 4 destructive actions protected
mcp.example.com/acme/exampleOne compatibility layer between your API and every agent.
PipMCP parses your specification deterministically, maps endpoints to business intent, compiles agent-friendly tools into a constrained execution plan and serves them from one stateless MCP runtime.
Supported formats
Pick the source you have. The same compiler handles all of them.
| Format | source_type | Notes |
|---|---|---|
| OpenAPI 3.x | openapi_url, openapi_upload | JSON or YAML. 3.0 and 3.1, including external $refs. |
| Swagger 2.0 | openapi_url, openapi_upload | Converted to the same internal model as OpenAPI 3. |
| Postman Collection v2 | postman | v2.0 and v2.1 collections. Example bodies are used to infer schemas. |
| GraphQL | graphql | SDL schema or introspection result. Queries and mutations become tools. |
| Documentation URL | docs_url | Experimental. Endpoints are extracted with AI and always marked for review. |
| Manual | manual | Describe individual endpoints yourself when no spec exists. |
Management API
REST and JSON at https://pipmcp.com/api/v1. Authenticate with a workspace API token (pmk_…) created under Settings, API tokens. Each token carries only the scopes you grant it, such as integrations:write or executions:read.
Full reference: Management API docs.
Import an API
curl -X POST https://pipmcp.com/api/v1/integrations \
-H "Authorization: Bearer pmk_your_token" \
-H "Content-Type: application/json" \
-d '{
"source_type": "openapi_url",
"url": "https://api.example.com/openapi.json",
"wait": true
}'Publish an MCP endpoint and get a token
curl -X POST https://pipmcp.com/api/v1/mcp-endpoints \
-H "Authorization: Bearer pmk_your_token" \
-H "Content-Type: application/json" \
-d '{
"name": "Billing",
"policy_preset": "safe_writes",
"integrations": [{ "integration_id": "<integration id>", "connection_id": "<connection id>" }],
"create_token": true
}'| Method | Path | Purpose |
|---|---|---|
| GET | /integrations | List integrations |
| POST | /integrations | Create an integration and start its import |
| GET | /integrations/{id} | Get an integration and its current version |
| POST | /integrations/{id}/imports | Re-import (creates a new version) |
| POST | /integrations/{id}/publish | Publish the current version |
| GET | /integrations/{id}/tools | List generated tools |
| PATCH | /tools/{id} | Update name, description, visibility or confirmation |
| GET | /connections | List connections (secrets are never returned) |
| POST | /connections | Create a connection |
| POST | /connections/{id}/test | Test a connection |
| GET | /mcp-endpoints | List MCP endpoints |
| POST | /mcp-endpoints | Create an MCP endpoint, optionally with a token |
| PATCH | /mcp-endpoints/{id} | Update an MCP endpoint |
| GET | /executions | List executions |
| GET | /executions/{id} | Get an execution with redacted steps |
| GET | /usage | Agent actions used in the current period |
MCP endpoints
Every published endpoint lives at one URL:
https://mcp.pipmcp.com/<workspace>/<endpoint>
- Send a JSON-RPC request with
POSTand an endpoint token asAuthorization: Bearer pmcp_…. - MCP 2026-07-28 is the primary version: the version and client capabilities travel in
params._meta, mirrored by theMCP-Protocol-Version,Mcp-MethodandMcp-Nameheaders. - Clients on 2025-11-25, 2025-06-18 or 2025-03-26 connect with the usual initialize handshake.
- No sessions and no server-sent event stream are required: every request is answered with a single JSON response.
List tools
curl https://mcp.pipmcp.com/acme/billing \
-H "Authorization: Bearer pmcp_your_token" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "MCP-Protocol-Version: 2026-07-28" \
-H "Mcp-Method: tools/list" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list",
"params": {
"_meta": {
"io.modelcontextprotocol/protocolVersion": "2026-07-28",
"io.modelcontextprotocol/clientCapabilities": {}
}
}
}'Call a tool
curl https://mcp.pipmcp.com/acme/billing \
-H "Authorization: Bearer pmcp_your_token" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "MCP-Protocol-Version: 2026-07-28" \
-H "Mcp-Method: tools/call" \
-H "Mcp-Name: search_customers" \
-d '{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "search_customers",
"arguments": { "query": "Acme" },
"_meta": {
"io.modelcontextprotocol/protocolVersion": "2026-07-28",
"io.modelcontextprotocol/clientCapabilities": {}
}
}
}'Connect from Claude Code
Add the endpoint as an HTTP MCP server. The endpoint page in the dashboard shows this command, plus configuration for Claude Desktop, Cursor and ChatGPT, with your real URL.
More clients: Claude, other MCP clients.
claude mcp add --transport http billing https://mcp.pipmcp.com/acme/billing \
--header "Authorization: Bearer pmcp_your_token"Import your first API.
Create a free workspace, then use the dashboard or the management API.