Core concepts
MCP server
Let a model read and act on meetings directly, over the Model Context Protocol.
Everything the REST API does is also available as an MCP server, so a model can call it without you writing a tool layer first.
https://api-notetaker.nabrah.ai/mcpTransport is Streamable HTTP, stateless — one POST per JSON-RPC message, with no session to keep alive.
Connecting
Authentication is the same key, in the same header:
{
"mcpServers": {
"nabrah": {
"type": "http",
"url": "https://api-notetaker.nabrah.ai/mcp",
"headers": { "Authorization": "Bearer nt_..." }
}
}
}Which clients work
Any client that lets you set a header — Claude Code, Claude Desktop custom connectors, and most SDK clients — connects with the key above.
A client that insists on full OAuth 2.1 discovery will not, because this server authenticates with a key rather than an authorization server. That is a real limitation rather than an oversight, and worth knowing before you spend an afternoon on it.
The tools
A read-only key is shown only the read tools, and a write tool called with one is refused as though it did not exist. That is deliberate: a model that can see a capability will try it, and a refusal it could not have predicted is worse than a capability that was never offered.
| Tool | Needs |
|---|---|
list_meetings · get_meeting | read |
get_schedule — what is coming, and what will be recorded | read |
list_recordings · get_recording · get_transcript | read |
list_action_items · get_bot | read |
list_calendar_connections | read |
get_organization_usage · get_organization_analytics | read, organization key |
send_bot_to_meeting · stop_bot | full |
set_meeting_recording | full |
complete_action_item | full |
create_calendar_connect_link | full |
What the model is told up front
initialize returns instructions carrying the facts a model would otherwise guess wrong: one live bot per account, a monthly cap, that connecting a calendar needs a person, and how far the calendar reaches. Those cost five lines and prevent a whole class of confidently wrong answers.
One implementation, two ways of asking
Every tool calls the same service function the matching REST route calls. An answer through MCP and an answer over HTTP are the same object — there is no second code path to drift.