Other MCP clients
ChatGPT, claude.ai, n8n's MCP node, and any custom HTTP MCP client.
The Graniite MCP server speaks the standard MCP HTTP transport with OAuth 2.1 and Dynamic Client Registration. Any MCP-aware client that follows the spec will connect. Most clients just need the URL and a browser-side OAuth approval.
The URL
https://graniite.co/api/mcpCompliant clients discover everything else (auth server, token endpoint, supported scopes) via /.well-known/oauth-protected-resource.
ChatGPT
ChatGPT recently added MCP support via the Connectors or Custom Integrations section in settings. Add a new connector and paste the URL above. ChatGPT walks through the OAuth flow in your browser the same way Claude Desktop does.
The exact UI path moves around as OpenAI iterates the feature. Look for any of these labels in ChatGPT's settings:
- Settings → Connectors → Add custom connector
- Settings → Custom MCP servers
- Settings → Beta features → MCP
Then paste https://graniite.co/api/mcp and follow the browser prompts.
This is a moving target. If the UI does not match what you see, fall back to the mcp-remote bridge below.
claude.ai (browser)
claude.ai has its own Connectors UI for the web product, parallel to Claude Desktop's. Same URL, same OAuth flow:
- claude.ai → Settings → Connectors → Add custom connector
- Paste
https://graniite.co/api/mcp - Approve in the browser tab that opens
Browser tabs are already in a browser, so the OAuth flow is even more seamless than the Desktop version.
n8n's MCP node
n8n ships an MCP Client node that can connect to any HTTP MCP server. Best for in-workflow tool calling.
For the URL-ingest case that does not need an MCP wire, use the REST /api/v1/ingest endpoint. See the n8n quickstart. One HTTP Request node, no MCP layer needed.
Custom client (Python, TypeScript, or Go SDK)
Any of the official MCP SDKs work against https://graniite.co/api/mcp. The SDK handles discovery, OAuth, and the tools/call envelope. You only think about the four tool names and their arguments.
For pure-HTTP or curl-style integration without an SDK, the endpoint speaks JSON-RPC 2.0 with bearer auth:
curl -sS https://graniite.co/api/mcp \
-X POST \
-H "Authorization: Bearer lev_YOUR_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "search_knowledge_base",
"arguments": { "query": "your query", "limit": 5 }
}
}'See the MCP reference for per-tool parameter details.
mcp-remote bridge
For any client that only supports stdio MCP (the older transport mode), the official mcp-remote package bridges stdio to HTTP.
Setup
- Mint a token at
/settings/integrations. - Configure your client's stdio MCP server entry with:
npx -y mcp-remote https://graniite.co/api/mcp \
--header "Authorization:Bearer lev_YOUR_TOKEN"The exact config file format varies per client. Look in your client's docs for "MCP servers" or "stdio MCP" setup.
Common format:
{
"mcpServers": {
"graniite": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://graniite.co/api/mcp",
"--header",
"Authorization:Bearer lev_YOUR_TOKEN"
]
}
}
}This shape works for Cline, Continue, Zed, and any other client that follows the Claude Desktop config convention.
Verifying any connection
After connecting, send the agent this prompt:
List the four Graniite tools you have access to.
A working connection will surface search_knowledge_base, get_item, list_recent, and add_to_knowledge. If the agent does not see them, the MCP server did not connect or tools/list returned empty.
For a deeper test that exercises the auth path:
Use
list_recentto show me the 3 most recent items in my Graniite library.
If list_recent returns items, end-to-end auth works.
Troubleshooting any client
The patterns from the Claude Desktop troubleshooting section apply to every HTTP MCP client:
- Make sure your default browser is signed in at
https://graniite.cobefore starting the OAuth flow. - Watch the browser network tab if available. Failures usually show up at
/oauth/register(DCR) or/oauth/authorize. - Remove any half-state connector entries before re-adding fresh.
- 401s after a successful connection mean the token expired or was revoked. The client should prompt to reconnect.