Connect a client
Use the same endpoint for Cursor, Claude, ChatGPT, Gemini, or any MCP client that speaks Streamable HTTP.
Cursor
Prefer OAuth when available. Paste into ~/.cursor/mcp.json or your project .cursor/mcp.json. Do not set MCP-Protocol-Version in headers.
{
"mcpServers": {
"sanad": {
"url": "https://app.sanad.cloud/mcp",
"auth": {
"CLIENT_ID": "cursor",
"scopes": [
"read"
]
}
}
}
}{
"mcpServers": {
"sanad": {
"url": "https://app.sanad.cloud/mcp",
"headers": {
"Authorization": "Bearer mcp_sk_…"
}
}
}
}Claude Desktop / Claude Code
Use static OAuth client id claude, or add the HTTP server from the CLI.
{
"mcpServers": {
"sanad": {
"url": "https://app.sanad.cloud/mcp",
"auth": {
"CLIENT_ID": "claude",
"scopes": [
"read"
]
}
}
}
}claude mcp add --transport http sanad https://app.sanad.cloud/mcp
ChatGPT
Add a custom MCP connector with Bearer auth. Replace the placeholder with a key from Settings.
Name: sanad
URL: https://app.sanad.cloud/mcp
Auth type: Bearer token
Token: mcp_sk_…
Gemini CLI
Use httpUrl plus Authorization header. Run gemini mcp list to verify.
{
"mcpServers": {
"sanad": {
"httpUrl": "https://app.sanad.cloud/mcp",
"headers": {
"Authorization": "Bearer mcp_sk_…"
}
}
}
}Other MCP clients
Any Streamable HTTP client can POST to the endpoint with Bearer auth or OAuth discovery.
Endpoint: https://app.sanad.cloud/mcp
Transport: Streamable HTTP (POST)
Auth: Authorization: Bearer <your key>