AI agents (MCP)
Connect Claude, Cursor, or Grok
MCP setup steps to connect the Sky Schedule MCP server to Claude on the web, Claude Desktop, Cursor, and Grok using your flight school's API key and one URL.
This MCP setup guide connects an AI agent to your flight school in Sky Schedule. A school admin creates the connection in Sky Schedule once, then adds it to Claude, Claude Desktop, Cursor, or Grok. Each client needs the same two things: the server URL and your school's API key.
| Setting | Value |
|---|---|
| Server URL | https://app.skyschedule.io/api/mcp |
| Transport | Streamable HTTP (remote server) |
| Authentication | Request header Authorization: Bearer ss_live_YOUR_API_KEY. No OAuth. |
Before you start
- You need to be an admin of the school.
- The MCP server and the REST API share one key per school. If your school already uses the REST API, connecting an agent uses that same key. Rotating it to see the full key again breaks your REST scripts until you update them. See API authentication.
- If your school doesn't have API access on its plan yet, Connect opens checkout first.
Step 1: Get your connection details from Sky Schedule
- Sign in at
https://app.skyschedule.ioas an admin. - Open Settings and choose Integrations.
- Click the Connect with your agent card below the list of integrations.
- Click Connect. Sky Schedule creates the school's API key and copies setup text to your clipboard: the Claude steps plus a JSON config for Cursor and Grok. If the school already has a key, there is no Connect button; the panel opens on the connection details instead.
The panel then shows three sections you can expand any time:
- Connection details: the endpoint, the API key, and the daily write limit.
- Claude cloud, Custom connector: the exact values to type into Claude.
- Grok Bot / Cursor, JSON config: the JSON to paste.
Copy for LLM copies all of it again. The full key only shows in the browser where it was created. On another device the panel asks you to rotate, which issues a new key and turns off the old one.
The JSON config looks like this, with your key in place of the placeholder:
{
"mcpServers": {
"sky-schedule": {
"type": "http",
"url": "https://app.skyschedule.io/api/mcp",
"headers": {
"Authorization": "Bearer ss_live_YOUR_API_KEY"
}
}
}
}
Step 2: Add Sky Schedule to your client
Claude on the web (claude.ai)
Claude uses a custom connector, not the JSON config.
- In Claude, open Customize, then Connectors.
- Click +, then Add custom connector.
- Name:
Sky Schedule - MCP server URL:
https://app.skyschedule.io/api/mcp - Authentication: No sign-in
- Under request headers, add a header named
Authorizationwith the valueBearer ss_live_YOUR_API_KEY. - Click Add.
Don't paste the JSON config into the URL field, and don't pick an OAuth option. The server uses your school's key, not a sign-in. On a Claude Team or Enterprise plan, an owner may need to add custom connectors for the organization.
To test it, start a new chat and ask: "Using Sky Schedule, list tomorrow's reservations."
Claude Desktop
Claude Desktop uses the same custom connector. In the desktop app, open Customize, then Connectors, and follow the same steps as Claude on the web.
Cursor
- Open (or create)
~/.cursor/mcp.jsonto use Sky Schedule in every project, or.cursor/mcp.jsoninside one project. - Paste the JSON config from Step 1. If the file already lists other servers, add the
"sky-schedule"entry inside the existingmcpServersobject. - Save the file, then check Cursor's MCP settings to confirm
sky-scheduleis enabled and shows its tools.
If you use a project file, add .cursor/mcp.json to .gitignore so the key never lands in your repository.
Grok
Add Sky Schedule as a custom MCP server in Grok and paste the JSON config from Step 1. If Grok asks for fields instead of JSON, enter the server URL and add the Authorization header with Bearer ss_live_YOUR_API_KEY.
Other MCP clients
Any client that supports remote Streamable HTTP servers with custom headers can connect. Use the server URL and send the key in Authorization: Bearer ... or X-SkySchedule-API-Key. Clients that read the server's protected resource metadata will see that it expects a bearer header and has no OAuth server. Details are in the MCP server overview.
Rotate or disconnect
- Rotate in Connect with your agent issues a new key and turns off the old one right away. Update every client and every REST script that used it.
- Disconnect removes the key. Connected agents and REST scripts both stop working until you connect again.
Troubleshooting
| Problem | Fix |
|---|---|
| Claude starts an OAuth sign-in when you add the connector | Set Authentication to No sign-in and add the Authorization request header. |
Tool calls fail with Missing API key | The header isn't being sent. Check the header name and that the value starts with Bearer and a space. |
Tool calls fail with Invalid or revoked API key | The key was rotated or disconnected. Copy the current key from Connect with your agent. |
MCP daily rate limit exceeded | The school used its 1,000 MCP requests for the day. The counter resets at 00:00 UTC. |
MCP write limit reached | The school made 200 write tool calls today. Read tools still work until the reset at 00:00 UTC. |
| A tool says to use the full id | The agent passed a partial id. Ask it to look the record up with a list tool first. See the MCP tools reference. |