|
| 1 | +Title: How to Use the IO Aerospace MCP Server |
| 2 | + |
| 3 | +Summary: Quick steps to use the hosted server, connect MCP clients, or self-host with Docker/.NET. Includes SPICE kernels info, tool calls, and troubleshooting. |
| 4 | + |
| 5 | +Section: Use the hosted server (no setup) |
| 6 | +- Base URL: https://mcp.io-aerospace.org/ |
| 7 | +- SSE stream (manual/web): https://mcp.io-aerospace.org/sse |
| 8 | +- Most MCP clients that support HTTP/SSE only need the base URL. |
| 9 | + |
| 10 | + |
| 11 | + |
| 12 | +Section: Use with MCP clients |
| 13 | +- Schemas vary by client; examples below use Claude Desktop. |
| 14 | + |
| 15 | +Claude Desktop (STDIO): |
| 16 | +```json |
| 17 | +{ |
| 18 | + "mcpServers": { |
| 19 | + "astrodynamics": { |
| 20 | + "command": "/path/to/Server.Stdio", |
| 21 | + "args": ["-k", "/path/to/kernels"] |
| 22 | + } |
| 23 | + } |
| 24 | +} |
| 25 | +``` |
| 26 | + |
| 27 | +Claude Desktop (STDIO with env): |
| 28 | +```json |
| 29 | +{ |
| 30 | + "mcpServers": { |
| 31 | + "astrodynamics": { |
| 32 | + "command": "/path/to/Server.Stdio", |
| 33 | + "args": [], |
| 34 | + "env": { |
| 35 | + "IO_DATA_DIR": "/path/to/kernels" |
| 36 | + } |
| 37 | + } |
| 38 | + } |
| 39 | +} |
| 40 | +``` |
| 41 | + |
| 42 | +Claude Desktop (HTTP/SSE to hosted): |
| 43 | +```json |
| 44 | +{ |
| 45 | + "mcpServers": { |
| 46 | + "astrodynamics": { |
| 47 | + "transport": { |
| 48 | + "type": "http", |
| 49 | + "url": "https://mcp.io-aerospace.org" |
| 50 | + } |
| 51 | + } |
| 52 | + } |
| 53 | +} |
| 54 | +``` |
| 55 | + |
| 56 | +Section: Self-host with Docker |
| 57 | +Development: |
| 58 | +```bash |
| 59 | +git clone https://github.com/IO-Aerospace-software-engineering/mcp-server |
| 60 | +cd mcp-server |
| 61 | +docker-compose up |
| 62 | +``` |
| 63 | +- HTTP server: http://localhost:8080 |
| 64 | +- Kernels mounted from ./Data/SolarSystem |
| 65 | + |
| 66 | +Production: |
| 67 | +1) Copy and customize: `cp docker-compose.prod.example.yml docker-compose.prod.yml` |
| 68 | +2) Ensure kernels at ./data/solarsystem/ |
| 69 | +3) Deploy: `./deploy-production.sh` |
| 70 | + |
| 71 | +Section: Self-host with .NET |
| 72 | +Build: |
| 73 | +```bash |
| 74 | +git clone https://github.com/IO-Aerospace-software-engineering/mcp-server |
| 75 | +cd mcp-server |
| 76 | +dotnet build |
| 77 | +``` |
| 78 | + |
| 79 | +Provide SPICE kernels for STDIO: |
| 80 | +```bash |
| 81 | +# CLI flag (highest priority) |
| 82 | +./Server.Stdio -k /path/to/your/spice/kernels |
| 83 | + |
| 84 | +# Environment (Linux/macOS) |
| 85 | +export IO_DATA_DIR="/path/to/your/spice/kernels" |
| 86 | +./Server.Stdio |
| 87 | + |
| 88 | +# Windows (PowerShell) |
| 89 | +$env:IO_DATA_DIR="C:\\path\\to\\your\\spice\\kernels" |
| 90 | +./Server.Stdio.exe |
| 91 | +``` |
| 92 | + |
| 93 | +Choose transport: |
| 94 | +- STDIO (recommended): `./Server.Stdio -k /path/to/kernels` |
| 95 | +- HTTP/SSE (web): `cd Server.Sse && dotnet run` → http://localhost:8080 |
| 96 | + |
| 97 | +Section: Call tools (Node.js MCP SDK) |
| 98 | +```ts |
| 99 | +import { Client } from "@modelcontextprotocol/sdk/client/index.js"; |
| 100 | +import { HttpClientTransport } from "@modelcontextprotocol/sdk/client/transport/http.js"; |
| 101 | + |
| 102 | +const transport = new HttpClientTransport(new URL("https://mcp.io-aerospace.org")); |
| 103 | +const client = new Client( |
| 104 | + { name: "example-client", version: "1.0.0" }, |
| 105 | + { capabilities: { tools: {}, prompts: {}, resources: {} } }, |
| 106 | + transport |
| 107 | +); |
| 108 | + |
| 109 | +await client.connect(); |
| 110 | +const tools = await client.listTools(); |
| 111 | +console.log("Tools:", tools); |
| 112 | +``` |
| 113 | + |
| 114 | +Code (optional quick check in browser/Node): |
| 115 | +```js |
| 116 | +const eventSource = new EventSource('https://mcp.io-aerospace.org/sse'); |
| 117 | + |
| 118 | +eventSource.onmessage = (event) => { |
| 119 | + console.log('message', event.data); |
| 120 | +}; |
| 121 | + |
| 122 | +eventSource.onerror = (err) => { |
| 123 | + console.error('sse error', err); |
| 124 | +}; |
| 125 | +``` |
| 126 | + |
| 127 | +Section: Required kernel files (typical set) |
| 128 | +- de440s.bsp (planetary ephemeris) |
| 129 | +- latest_leapseconds.tls (leap seconds) |
| 130 | +- pck00011.tpc (planetary constants) |
| 131 | +- earth_latest_high_prec.bpc (Earth orientation) |
| 132 | +- Additional kernels as needed |
| 133 | + |
| 134 | +Section: Troubleshooting |
| 135 | +- "Kernels directory does not exist": Check -k or IO_DATA_DIR path. |
| 136 | +- "Failed to load kernel": Ensure required files are present and readable. |
| 137 | +- HTTP connection errors: Check ports, firewall, proxies. |
| 138 | +- Logs: `docker-compose logs -f` (dev) or `docker logs -f <container>` (prod) |
| 139 | + |
| 140 | +Section: Support & links |
| 141 | +- Hosted: https://mcp.io-aerospace.org/ |
| 142 | +- Source: https://github.com/IO-Aerospace-software-engineering/mcp-server |
| 143 | +- Astrodynamics: https://github.com/IO-Aerospace-software-engineering/Astrodynamics |
| 144 | +- Deployment guide: ./DEPLOYMENT_GUIDE.md |
| 145 | +- Sponsor: https://github.com/sponsors/IO-Aerospace-software-engineering |
| 146 | + |
0 commit comments