Skip to content

Cursor, VS Code and other clients

Any MCP client that supports the Streamable HTTP transport can use Meetingize. Clients that implement MCP authorization (OAuth 2.1 discovery) connect with the URL alone; the others can send a Meetingize API key as a bearer token.

~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project):

{
"mcpServers": {
"meetingize": {
"url": "https://app.meetingize.com/api/mcp"
}
}
}

Cursor shows a Login button for the server and opens the Meetingize consent screen. With an API key:

{
"mcpServers": {
"meetingize": {
"url": "https://app.meetingize.com/api/mcp",
"headers": { "Authorization": "Bearer ${env:MEETINGIZE_API_KEY}" }
}
}
}

.vscode/mcp.json:

{
"servers": {
"meetingize": { "type": "http", "url": "https://app.meetingize.com/api/mcp" }
}
}

The official inspector is handy to explore the tools:

Terminal window
npx @modelcontextprotocol/inspector

Choose transport Streamable HTTP, URL https://app.meetingize.com/api/mcp, then either run the OAuth flow from the inspector or add the header Authorization: Bearer mtgz_.... Command line mode:

Terminal window
npx @modelcontextprotocol/inspector --cli https://app.meetingize.com/api/mcp --transport http \
--header "Authorization: Bearer $MEETINGIZE_API_KEY" --method tools/list
import asyncio, os
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
async def main():
headers = {"Authorization": f"Bearer {os.environ['MEETINGIZE_API_KEY']}"}
async with streamablehttp_client("https://app.meetingize.com/api/mcp", headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
result = await session.call_tool("search_meetings", {"query": "budget", "limit": 5})
print(result.content[0].text)
asyncio.run(main())

The server is stateless: no session id, every request is a JSON-RPC message posted to the URL with a bearer token.

Terminal window
curl -s https://app.meetingize.com/api/mcp \
-H "Authorization: Bearer $MEETINGIZE_API_KEY" \
-H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_meetings","arguments":{"query":"budget"}}}'

Without a token the server answers 401 with a WWW-Authenticate header pointing to its protected resource metadata, which is how OAuth-capable clients discover how to log in. GET on the endpoint answers 405 (no server-initiated stream).