MCP client integration¶
The hosted endpoint is always:
Use streamable-HTTP. A legacy SSE endpoint exists at /mcp/sse for old clients that cannot do streamable-HTTP; everything modern should use the bare /mcp URL and let the transport negotiate.
Always include the /mcp path
The OAuth resource indicator is https://mcp.io-aerospace.org/mcp. A bare-origin URL is ambiguous about the trailing slash and breaks the discovery flow with McpAuthorizationError.
Claude Desktop¶
claude_desktop_config.json:
{
"mcpServers": {
"astrodynamics": {
"transport": {
"type": "http",
"url": "https://mcp.io-aerospace.org/mcp"
}
}
}
}
Claude.ai connector¶
Add a custom MCP connector pointing at the same URL. The browser will run through OAuth on first use.
Cursor¶
Cursor's MCP settings accept a JSON block similar to Claude Desktop's. Use the streamable-HTTP form above.
MCP Inspector¶
Pick Streamable HTTP, paste the URL, sign in. Useful for poking at tools without writing code.
TypeScript SDK¶
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { HttpClientTransport } from "@modelcontextprotocol/sdk/client/transport/http.js";
const transport = new HttpClientTransport(new URL("https://mcp.io-aerospace.org/mcp"));
const client = new Client(
{ name: "astrodynamics-app", version: "1.0.0" },
{ capabilities: { tools: {} } },
transport
);
await client.connect();
console.log(await client.listTools());
Python SDK¶
The official Python SDK exposes an equivalent client with an HTTP transport. The flow is identical: pass the URL, let the transport handle the WWW-Authenticate challenge and the OAuth dance.
What the client must support¶
To connect successfully a client needs:
- Streamable-HTTP (or SSE, for the legacy endpoint)
- OAuth 2.1 with PKCE
- RFC 9728 protected-resource discovery — i.e. it must read
WWW-Authenticate: Bearer resource_metadata="…"and fetch the metadata document - RFC 8707 resource indicators — sending
resource=https://mcp.io-aerospace.org/mcpin the token request
All up-to-date MCP clients implement these. If your client cannot, it is too old.
Scopes¶
The server only needs openid, email, and offline_access. No client should request more.
Connector schema disclaimer¶
JSON snippets above use Claude Desktop's schema. Other clients use different keys — refer to their docs for the exact field names. The substance is always the same: HTTP transport, the https://mcp.io-aerospace.org/mcp URL, and standard OAuth.