Cursor, VS Code et autres clients
Tout client MCP prenant en charge le transport Streamable HTTP peut utiliser Meetingize. Les clients qui implémentent l’autorisation MCP (découverte OAuth 2.1) se connectent avec la seule URL ; les autres peuvent envoyer une clé API Meetingize comme jeton bearer.
~/.cursor/mcp.json (tous les projets) ou .cursor/mcp.json (un seul projet) :
{ "mcpServers": { "meetingize": { "url": "https://app.meetingize.com/api/mcp" } }}Cursor affiche un bouton Login pour le serveur et ouvre l’écran de consentement Meetingize. Avec une clé API :
{ "mcpServers": { "meetingize": { "url": "https://app.meetingize.com/api/mcp", "headers": { "Authorization": "Bearer ${env:MEETINGIZE_API_KEY}" } } }}VS Code (mode agent GitHub Copilot)
Section intitulée « VS Code (mode agent GitHub Copilot) ».vscode/mcp.json :
{ "servers": { "meetingize": { "type": "http", "url": "https://app.meetingize.com/api/mcp" } }}MCP Inspector
Section intitulée « MCP Inspector »L’inspecteur officiel est pratique pour explorer les outils :
npx @modelcontextprotocol/inspectorChoisissez le transport Streamable HTTP, l’URL https://app.meetingize.com/api/mcp, puis exécutez soit le
flux OAuth depuis l’inspecteur, soit ajoutez l’en-tête Authorization: Bearer mtgz_.... Mode ligne de commande :
npx @modelcontextprotocol/inspector --cli https://app.meetingize.com/api/mcp --transport http \ --header "Authorization: Bearer $MEETINGIZE_API_KEY" --method tools/listSDK Python
Section intitulée « SDK Python »import asyncio, osfrom mcp import ClientSessionfrom 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())N’importe quel client HTTP
Section intitulée « N’importe quel client HTTP »Le serveur est sans état : pas d’identifiant de session, chaque requête est un message JSON-RPC envoyé à l’URL avec un jeton bearer.
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"}}}'Sans jeton, le serveur répond 401 avec un en-tête WWW-Authenticate pointant vers ses
métadonnées de ressource protégée, ce
qui permet aux clients compatibles OAuth de découvrir comment se connecter. Un GET sur l’endpoint répond 405
(pas de flux initié par le serveur).