Skip to content

MCP Setup

Connect Chronary to your MCP client. You’ll need an API key from the Chronary console before starting.

Add Chronary to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
"mcpServers": {
"chronary": {
"url": "https://api.chronary.ai/mcp",
"headers": {
"Authorization": "Bearer chr_sk_your_key_here"
}
}
}
}

Restart Claude Desktop after saving. You should see a hammer icon indicating MCP tools are available.

After setup, test that everything is working. Ask your AI client:

“List my agents”

The AI should call the list_agents tool and return results. If you haven’t registered any agents yet, you’ll see an empty list — that’s expected.

In Claude Desktop, click the hammer icon to see all available tools. You should see 21 Chronary tools listed.

In Cursor, check the agent tool list in the MCP settings panel.

For custom agents, call client.listTools() (TypeScript) or session.list_tools() (Python) and verify 21 tools are returned.

Ask: “Register an AI agent called Test Agent”

The AI should call create_agent and return an agent with an agt_ prefixed ID.

Ask: “Create a calendar called ‘Demo Calendar’ in UTC for that agent, then add a meeting tomorrow at 2pm”

The AI should call create_calendar followed by create_event.

Confirm the data is shared by querying the REST API:

Terminal window
curl https://api.chronary.ai/v1/agents \
-H "Authorization: Bearer chr_sk_your_key_here"

You should see the same agent and calendar created via MCP.

| Problem | Solution | |---|---| | Tools not appearing | Restart your client after editing the config file. Check for JSON syntax errors. | | 401 Unauthorized | Verify your API key is correct and includes the Bearer prefix. | | 403 Forbidden | Your API key may be deactivated. Check the console. | | Connection timeout | Ensure you can reach api.chronary.ai from your network. Check firewall/proxy settings. | | Tool call returns error | Check the error message — it follows the same error format as the REST API. |