Quest Card 開発者ドキュメント

つなぎ方クイックスタート

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)に、 urlheaders を持つエントリを追加します。リモート HTTP サーバーでは type は不要です。

{
  "mcpServers": {
    "questcard": {
      "url": "https://questcard-ai.com/api/mcp",
      "headers": {
        "Authorization": "Bearer qc_..."
      }
    }
  }
}

出典: Model Context Protocol(cursor.com/docs) — リモート HTTP サーバーは urlheaders で設定し、type は省略可。

生の JSON-RPC(Streamable HTTP)で直接叩けます。initializetools/listtools/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・失効の節を確認してください。

On this page