Skip to main content
Glama
teslakoile

wishlist-mcp

by teslakoile

wishlist-mcp

wishlist.fit のホスト型 MCP サーバーです。Claude、ChatGPT、または Codex があなたの代わりに wishlist を読み取り・更新できるようにするものです。

https://mcp.wishlist.fit/mcp

app.wishlist.fit/connect から接続します。そこにクライアントごとのセットアップ手順があります。最初に wishlist アカウントが必要です。このサーバーがアカウントを作成することはありません。

これは何か

wishlist REST API の前面に立つ、純粋な OAuth 2.1 リソースサーバーです。データベースもビジネスルールも持ちません。可視性、レート制限、招待の処理はすべて wishlist API 側にあり、このサーバーはユーザー自身のアクセストークンでその API を呼び出すことにより、それらを継承します。

この分離は意図的です。独自のルール・コピーを持つ2つ目のサービスを作る選択肢は、誰が何を見られるかについて2つのサーフェスが静かに食い違う始まりです。

Claude / ChatGPT / Codex
        │  MCP over HTTP, bearer token
        ▼
   this server ──── verifies the token (issuer + audience)
        │
        │  the same token, forwarded
        ▼
   api.wishlist.fit ──── applies visibility, rate limits, invite rules
        │
        ▼
     Postgres

WorkOS AuthKit が認可サーバーです。このサーバーは何も発行せず、同意画面も表示しません。AuthKit が署名したものを検証するだけです。

ツール

14個あります。それぞれ、Web アプリで手動でできるひとつの操作に対応します。パリティが原則です。エージェント専用の特権も、アプリ自身ができない操作もありません。

ツール

種別

wishlist_search_people

読み取り

wishlist_get_gift_guide

読み取り

wishlist_get_profile

読み取り

wishlist_get_wishlist

読み取り

wishlist_get_my_profile

読み取り

wishlist_get_my_wishlist

読み取り

wishlist_list_circle

読み取り

wishlist_preview_invite

読み取り

wishlist_add_item

書き込み

wishlist_update_item

書き込み

wishlist_update_my_profile

書き込み

wishlist_accept_invite

書き込み

wishlist_create_invite

破壊的

wishlist_delete_item

破壊的

wishlist_get_gift_guide は、人のプロフィールとウィッシュリストをまとめて返します。これがないと、ギフトを贈る人の旅程は3往復ラウンドトリップになるため、この関数はこのサーバーに誰もが接続する理由です。

破壊的ツール2つは destructiveHint: true を持つため、取り消せない操作を確認するクライアントは先に確認を求めます。招待を送信すると実際の人間にメールされ、取り消すことはできません。受け入れることは相互的です。招待した人があなたの circle 限定フィールドにアクセスでき、あなたもその人の circle 限定フィールドにアクセスできます。

接続1つですべて

スコープはありません。WorkOS はカスタムスコープを表現できないので、接続はツール一式全体を運びます。書き込み保護は構造的ではなく行動的です。上記の注釈、ツールの説明、API が課すレート制限がそれです。

ローカルで実行する

uv sync
cp .env.example .env      # point it at a local API and the Local WorkOS environment
uv run python -m wishlist_mcp.main
uv run pytest
uv run ruff format --check . && uv run ruff check .

テストは respx で wishlist API をスタブします。テストが確認するのは、このサーバー自身の仕事です。トークンの検証、リクエストの形作り、APIエラーをモデルが対処できる文章に変えることです。ルールは API 側に属し、そこでテストされます。

設定

全変数には接頭辞 WISHLIST_MCP_ が付きます。.env.example を参照してください。

変数

目的

API_BASE_URL

呼び出す wishlist REST API

AUTHKIT_DOMAIN

WorkOS AuthKit の発行者。空ならサーバーは起動を拒否します

RESOURCE_URI

正規のURI。すべてのトークンのオーディエンスがそれと厳密に一致する必要があります

HOST

どのホスト以外でもサーバーは404を返します

API_TIMEOUT

API を待つ時間

RESOURCE_URI は、WorkOS に設定されたリソースインジケーターと/mcp パスを含めて文字単位で一致しなければなりません。ここが合わず、クライアントが接続を拒否する最も多い原因です。

これを変更する前に知っておくべきこと

これらはどれも、一度本番に到達したバグです。

  • get_http_headers()authorization を剥ぎ取ります。 明示的に取り出してください。そうしないと、ツール呼び出しはすべて "no access token" と報告し、一方で initializetools/list は成功します。ツール本体の実行前に応答されるからです。グリーンなハンドシェイクは、ツールが動く証拠にはなりません。

  • MCP アプリはルートにマウントされ、自身のパスを持ちます。 /mcp にマウントすると、Starlette は /mcp/mcp/ にリダイレクトし、各クライアントに渡されるアドレスには最後のスラッシュがないからです。

  • X-Forwarded-Proto は信頼されています。 Cloud Run が TLS を終端するため、そうでないと生成されるURLがすべて http:// になります。上記のリダイレクトと組み合わせると、かつてクライアントがベアラートークンを平文で送ることを意味していました。

  • **FastMCP のライフスパンは、アプリのライフスパンにチェーンされます。

  • **ASGI アプリのマウントそのものはライフスパンを起動しませんから、

  • **他のツール呼び出しは「Task group is not initialized」というエラーになります。

  • ユニットテストは通るのに。 (実装を確認してください)

  • TestClient はデフォルトでリダイレクトを追跡します。 ポイントがパスが直接応答することであれば、follow_redirects=False を渡します。

デプロイ

Cloud Run、asia-southeast1。wishlist の他の部分と同じプロジェクトで、main はプッシュ時にデプロイされます。インフランスは wishlist-infrastructure にあります。

ライセンス

MIT。 LICENSE を参照してください。

-
license - not tested
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer

  • Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.

  • Cloud-hosted MCP server for durable AI memory

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/teslakoile/wishlist-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server