zephex
⌘K
Get StartedPricingMCP ToolsDocs
←Back×Sign in
Get StartedPricingMCP ToolsDocs

Documentation

Start with the endpoint and API key flow, then branch into editor setup or tool reference.

GET STARTED

What is MCP?IntroductionQuickstartAPI ReferenceUniversal RequirementsZephex vs Local MCPBest PracticesToken EfficiencyCLAUDE.md TemplateAGENTS.md TemplateMCP EcosystemMarkdown Access

EDITORS

OpenCodeOAuthVS CodeClaude CodeCursorWindsurfJetBrainsKiro CLIOAuthZedOAuthGemini CLIOAuthClineOAuthGooseCodex CLIOAuthFactory AIOAuth

OPERATING SYSTEMS

macOSWindowsLinux

TOOLS

get_project_contextread_codefind_codecheck_packageaudit_packageexplain_architectureZephex_dev_infoscope_taskaudit_headersthinking

SUPPORT

PlansPro & Max GuideUsage & AnalyticsConnection IssuesRate LimitsBillingSecurityFAQChangelog

API Reference

Zephex exposes one hosted MCP endpoint. Every request is a POST to the same URL using JSON-RPC 2.0 over HTTPS.

PropertyValue
URLhttps://zephex.dev/mcp
MethodPOST
ProtocolJSON-RPC 2.0 over Streamable HTTP
Content-Typeapplication/json
AuthAuthorization: Bearer YOUR_API_KEY
ABOUT STREAMABLE HTTP

Zephex uses JSON-RPC 2.0 over HTTPS with chunked transfer encoding. This is the MCP HTTP transport. You do not need stdio, local bridge packages, or websockets. If your editor or client supports MCP over HTTP with custom headers, it works with Zephex out of the box.

For most clients you can treat responses as normal JSON responses. If your client supports streamed chunks, read the body incrementally until the JSON-RPC message is complete and then parse it as usual.

AUTHENTICATION

Every request requires a Bearer token. Generate keys in Dashboard → API Keys, rotate exposed keys immediately, and keep separate keys for local, staging, and production.

headers.txt
Authorization: Bearer YOUR_API_KEY
KEY FORMAT

API keys follow the format mcp_<environment>_<id>.<secret>. Example: mcp_prod_abc123-xy78z. Only the prefix is visible in the dashboard — the full key is shown only once when created. If you lose a key, rotate it and create a new one.

REQUEST FORMAT

List the available tools:

tools-list.sh
curl -X POST https://zephex.dev/mcp \  -H "Authorization: Bearer YOUR_API_KEY" \  -H "Content-Type: application/json" \  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

Call a tool:

tools-call.sh
curl -X POST https://zephex.dev/mcp \  -H "Authorization: Bearer YOUR_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "jsonrpc": "2.0",    "id": 1,    "method": "tools/call",    "params": {      "name": "get_project_context",      "arguments": {        "path": "/path/to/repo"      }    }  }'
RESPONSE FORMAT
response.json
{  "jsonrpc": "2.0",  "id": 1,  "result": {    "content": [      {        "type": "text",        "text": "..."      }    ]  }}
SDK EXAMPLES

JavaScript / TypeScript (fetch)

client.js
const response = await fetch('https://zephex.dev/mcp', {  method: 'POST',  headers: {    'Authorization': 'Bearer YOUR_API_KEY',    'Content-Type': 'application/json',  },  body: JSON.stringify({    jsonrpc: '2.0',    id: 1,    method: 'tools/call',    params: {      name: 'get_project_context',      arguments: { path: '/path/to/repo' }    }  })}) const data = await response.json()console.log(data.result.content[0].text)

Python (requests)

client.py
import requests response = requests.post(    'https://zephex.dev/mcp',    headers={        'Authorization': 'Bearer YOUR_API_KEY',        'Content-Type': 'application/json',    },    json={        'jsonrpc': '2.0',        'id': 1,        'method': 'tools/call',        'params': {            'name': 'get_project_context',            'arguments': {'path': '/path/to/repo'}        }    })print(response.json()['result']['content'][0]['text'])
ERROR CODES
CodeMeaning
400Malformed JSON-RPC request or invalid arguments
401Invalid or missing API key
429Rate limit exceeded for your plan or tier
500Internal server error
RATE LIMITS

Rate limit headers are returned on every response.

rate-limit-headers.txt
X-RateLimit-Limit: 300X-RateLimit-Remaining: 247X-RateLimit-Reset: 1775001600
PlanRequests/monthPer-minute capBackends
Free300103
Pro3,5006010
Max10,00020020

When the limit is exceeded, the response looks like this:

rate-limit-exceeded.json
{  "error": "rate_limit_exceeded",  "message": "Monthly limit of 300 requests reached. Upgrade to Pro for 3,500 requests.",  "reset_at": "2026-05-01T00:00:00Z",  "upgrade_url": "https://zephex.dev/pricing"}