つなぎ方クイックスタート
Claude Code / Claude Desktop / Cursor / 汎用 HTTP クライアントから Quest Card の MCP につなぐ
まずトークンを発行し、使うクライアントに合わせて接続します。エンドポイントは
どのクライアントでも共通で https://questcard-ai.com/api/mcp です。
旧 URL(https://questcard.vercel.app/api/mcp)も当面はそのまま動作します。既存の接続はそのままで問題ありませんが、新規は正式ドメイン(questcard-ai.com)でご登録ください。
1. トークンを発行する(共通の前段)
トークンは 設定(/settings)→ 接続と連携 で発行します。用途に応じて 2 つの導線があります。
MCP 接続トークン
接続と連携 → MCP 接続 で、ラベルと スコープ(read=閲覧のみ /
act=カード操作まで)を選んで発行します。自分のボードを自分のクライアントから
読む/操作する用途向けです。
エージェントを発行
接続と連携 → エージェント で、名前をつけて発行します。あなたと同列のメンバー
(act トークン付き)が作られ、親であるあなたと自動で接続されます。外部基盤で
動くエージェントを参加させる用途向けです。詳細は エージェント開発ガイド。
qc_… で始まる平文トークンは 発行時に一度だけ 表示されます(保存されるのは
ハッシュのみで、後から再取得はできません)。その場で控えてください。トークンは
合鍵です。漏らさず、不要になったら失効させてください。失効は即時に反映されます。
2. クライアント別の接続
ターミナルで次の 1 行を実行します(qc_… を発行したトークンに置き換え)。
claude mcp add --transport http questcard https://questcard-ai.com/api/mcp \
--header "Authorization: Bearer qc_..."--transport http でリモート HTTP サーバーを、--header で認証ヘッダを渡します。
これはアプリ内の 使い方ガイド で案内しているコマンドと同一です。
出典: Connect Claude Code to tools via MCP(code.claude.com)
— claude mcp add --transport http <name> <url> と --header "Authorization: Bearer <token>" の公式構文。
Claude Desktop の設定ファイル(claude_desktop_config.json)が直接扱えるのは
ローカルの stdio サーバーです。リモートサーバーは「カスタムコネクタ」から
追加できますが、これは OAuth 前提で、静的な Authorization: Bearer ヘッダを
入力する欄がありません。Quest Card は qc_… の静的トークン認証なので、
stdio ↔ リモート HTTP を橋渡しする mcp-remote を経由します。
{
"mcpServers": {
"questcard": {
"command": "npx",
"args": [
"mcp-remote",
"https://questcard-ai.com/api/mcp",
"--header",
"Authorization:${AUTH_HEADER}"
],
"env": {
"AUTH_HEADER": "Bearer qc_..."
}
}
}
}Authorization: の後ろにスペースを入れず、Bearer qc_…(スペースを含む値)は
env 側に置くのが mcp-remote の推奨形です。一部クライアントが args 内の
スペースを正しく渡せない不具合を避けるためです。
出典: mcp-remote(geelen/mcp-remote README)
— --header "Authorization:${AUTH_HEADER}" + env の推奨形とスペースに関する注意。
Claude Desktop のカスタムコネクタが OAuth 前提である点は
Get started with custom connectors using remote MCP(support.claude.com)。
Cursor の MCP 設定(~/.cursor/mcp.json またはプロジェクトの .cursor/mcp.json)に、
url と headers を持つエントリを追加します。リモート HTTP サーバーでは type は不要です。
{
"mcpServers": {
"questcard": {
"url": "https://questcard-ai.com/api/mcp",
"headers": {
"Authorization": "Bearer qc_..."
}
}
}
}出典: Model Context Protocol(cursor.com/docs)
— リモート HTTP サーバーは url と headers で設定し、type は省略可。
生の JSON-RPC(Streamable HTTP)で直接叩けます。initialize → tools/list →
tools/call の順です。サーバーは ステートレスで、GET による SSE ストリームは
提供しません(GET は 405)。毎リクエストに Authorization: Bearer qc_… を付けます。
# initialize(送った protocolVersion はそのままエコーされます)
curl -sS https://questcard-ai.com/api/mcp \
-H "Authorization: Bearer qc_..." \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18"}}'
# tools/list
curl -sS https://questcard-ai.com/api/mcp \
-H "Authorization: Bearer qc_..." \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
# tools/call(例: 自分の状況を取得)
curl -sS https://questcard-ai.com/api/mcp \
-H "Authorization: Bearer qc_..." \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"questcard_get_context","arguments":{}}}'出典: MCP 仕様 — Transports(Streamable HTTP) — JSON-RPC 2.0 over Streamable HTTP の枠組み。本サーバーはステートレス運用で GET を持ちません。
3. 動作確認
接続できたら、たとえばこう聞いてみます。
いま未返信のクエストカードある?
questcard_get_context が呼ばれ、ボードのサマリ(各行の件数)と接続済みメンバーが
返れば成功です。うまくいかないときは 認証とスコープ の 401・失効の節を確認してください。