OpenAgenda MCP
A Model Context Protocol server for the OpenAgenda API — run sandboxed code against your agendas, authenticated with your OpenAgenda account.
Claude Code
claude mcp add --transport http openagenda https://mcp.openagenda.com/mcp
Then run /mcp and authenticate in your browser.
Claude Desktop & claude.ai
Settings → Connectors → Add custom connector → paste https://mcp.openagenda.com/mcp.
Cursor
{
"mcpServers": {
"openagenda": { "url": "https://mcp.openagenda.com/mcp" }
}
}
In ~/.cursor/mcp.json (or your project's .cursor/mcp.json).
VS Code
Install in VS Code VS Code Insiders
code --add-mcp '{"name":"openagenda","type":"http","url":"https://mcp.openagenda.com/mcp"}'
LM Studio
Opens LM Studio and runs the OAuth flow in your browser on first connect.
Any other client
The protocol endpoint is POST https://mcp.openagenda.com/mcp (Streamable HTTP), protected by OAuth 2.1 — your OpenAgenda account, browser consent on first connection. Discovery: protected resource metadata.
Self-host / local
The server is open source and on npm: OA_API_KEY=… npx -y @openagenda/mcp speaks MCP over stdio against the public API with your API key. Source, docs and threat model: github.com/OpenAgenda/oa-public · npm.
Claude Desktop, one-click — the local path, packaged: Download openagenda.mcpb
Double-click it (or drag it into Settings); Desktop runs the npx server above and prompts for your API key. Prefer no key? Use the hosted connector above instead.
Build with the API
Beyond chat: the same operations ship as a typed SDK on npm, @openagenda/api-client, so you can build your own site or tool. Code that an agent prototypes through this server's execute tool runs unchanged in your app — only the one-time client setup differs:
npm i @openagenda/api-client
import { OpenAgenda, client } from '@openagenda/api-client';
client.setConfig({ baseUrl: 'https://api.openagenda.com/v3', auth: 'oa_pk_…' });
const oa = new OpenAgenda();
const { data, error } = await oa.agendas.events.list({ path: { agendaUid }, query: { relative: ['upcoming'] } });
Use a read-only publishable key (oa_pk_…, safe in browsers) for reads, a secret key (oa_sk_…, server-only) for writes. npm.