Aller au contenu

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}" }
}
}
}

.vscode/mcp.json :

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

L’inspecteur officiel est pratique pour explorer les outils :

Fenêtre de terminal
npx @modelcontextprotocol/inspector

Choisissez 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 :

Fenêtre de terminal
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())

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.

Fenêtre de terminal
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).