🎃 Add "Open in MCP Inspector" to the MCP server page
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 55/100
- issue の種類
- 機能追加
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- playwright, typescript
- 領域
- api, documentation, frontend, testing
調査の方向性
Start in packages/frontend/src/app/mcp-server/[id]/page.tsx, reading the aiClients, renderModalContent, endpointUrl, and handleCopy references in the issue; check the Inspector README and v1-to-v2 migration guide for the flags. Add the auth-mode-specific command and link, then test both modes with the specified Playwright e2e spec and npm run test:e2e. Done includes the integration doc linked from the README and recording the tested Inspector version in the PR.
索引モデルが issue の本文から書いたものです。
説明
Part of the October Challenge #846.
Why
MCP Inspector is the standard tool for checking an MCP server by hand: list its tools, call one, look at the raw JSON. Users who want to know whether a problem is AnythingMCP or their AI client currently have to work out the Inspector flags themselves, and one detail trips them up. Inspector v2 only infers the transport from URLs that end in /mcp or /sse. Our per-server URL /mcp/<serverId> matches neither, so npx @modelcontextprotocol/inspector --server-url … stops with "Transport type not specified". A ready-made command on the server page removes that.
Self-hosted vs Cloud
- Self-hosted: enabled in Community and Business. On LAN installs over plain HTTP the command still works; the Inspector runs on the user's machine.
- Cloud (
DEPLOYMENT_MODE=cloud): enabled. The Inspector runs locally and callshttps://cloud.anythingmcp.com/mcp/<id>. The server makes no outbound request, so there is no SSRF risk and nothing cross-tenant. Cloud runsMCP_AUTH_MODE=oauth2(docker-compose.cloud.yml:111), so OAuth is the default there. - Who can use it: anyone who can open the MCP server page (the server must belong to the caller's org;
mcp-servers.controller.ts:100-104). The button builds client-side text and needs no new endpoint.
What to build
- Add an "MCP Inspector" tile to
aiClients(mcp-server/[id]/page.tsx:366-376) with a matchingcase 'inspector'inrenderModalContent(:438). Group it visually as a debugging tool, separate from the AI clients. - The modal shows a copyable command (primary) using the existing
handleCopy(:210, which recordsclient_config_copiedwithclient: 'inspector'):- OAuth (
oauth2/both):npx -y @modelcontextprotocol/inspector@2 --transport http --server-url <endpointUrl>. The Inspector does discovery + dynamic client registration in the browser. Its loopback redirect (http://127.0.0.1:…/oauth/callback) is allowed byredirect-uri.util.ts(http to loopback is accepted). - API key (
legacy/both): the same command plus--header "X-API-Key: $AMCP_MCP_API_KEY". Use a placeholder env var, never a real key, and keep it out of shell history. Link to the API Keys section on the same page. Explain that per-usermcp_…keys work on/mcp/<id>in every auth mode (mcp-combined-auth.guard.ts:64). - Read the mode with
server.info()(lib/api.ts:964), assettings/page.tsx:47-49does. If it isboth, show both variants.
- OAuth (
- Secondary: "Already running the Inspector? Open it with this server". This is a link to
http://localhost:6274/?serverUrl=<encodeURIComponent(endpointUrl)>&transport=http. Inspector v2 accepts these params but only auto-connects with its per-launch token, so the link prefills and does not connect. Say that in the UI. Do not try to passautoConnect. - Pin the major version (
@2): v1 used different deep-link params (transport=streamable-http). Add a one-line warning that the Inspector stores OAuth tokens in the OS keychain or~/.mcp-inspector/secrets.json. - Check every flag against the Inspector README and
docs/v1-to-v2-migration.mdat the version you test, and record that version in the PR.
Where to look
packages/frontend/src/app/mcp-server/[id]/page.tsx:98-102(apiUrl),:270(endpointUrl),:366-376(aiClients),:438-590(renderModalContent, includingclaude-codeat:532as the copy-command pattern andlinkActionat:428).packages/backend/src/auth/redirect-uri.util.ts:23-60: loopback redirect rules.packages/backend/src/auth/mcp-combined-auth.guard.ts:57-100: which headers/mcp/<id>accepts.packages/backend/src/health/health.controller.ts:57-70:mcpAuthMode,oauthEndpoints.
Acceptance criteria
- The command connects and lists tools against a local instance in both
MCP_AUTH_MODE=legacy(with a real key exported) andoauth2(describe the manual steps in the PR). - The command always includes
--transport http, and the URL is the per-server endpoint. - No API key, session token or JWT is ever written into the command or the link.
- Playwright spec under
packages/frontend/tests/e2e/(stub/api/mcp-servers/<id>and/health/server-infolikemcp-server-assignments.spec.ts) opens the tile and checks the command text for each auth mode. Run withcd packages/frontend && npm run test:e2e. - New
docs/integrations/mcp-inspector.md(short: command, OAuth vs key, the transport gotcha), linked from the README "Use it from Claude, ChatGPT…" section.
Out of scope
- Embedding or hosting the Inspector inside AnythingMCP.
- Inspector support for the shared
/mcpendpoint (it exposes only theanythingmcp_*meta-tools on Cloud). - Generating API keys from the modal.
Size
S (a few hours)
How to claim
Comment "I'd like to work on this" and we'll assign you. Rules in #846.
- 主要言語
- TypeScript
- スター
- 856
- フォーク
- 82
- 平均マージ
- 8時間 27分
- マージ済み PR(30日)
- 104
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
HelpCode-ai/anythingmcp のほかの issue
-
good first issue hacktoberfest
難易度 2/5 半日 初心者へのやさしさ 70/100
HelpCode-ai/anythingmcp#996 ·
メンテナーはふだん 1 日以内に返信
-
good first issue hacktoberfest
難易度 2/5 半日 初心者へのやさしさ 72/100
HelpCode-ai/anythingmcp#995 ·
メンテナーはふだん 1 日以内に返信
-
enhancement good first issue hacktoberfest help wanted
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
HelpCode-ai/anythingmcp#982 ·
メンテナーはふだん 1 日以内に返信
-
good first issue hacktoberfest
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
HelpCode-ai/anythingmcp#745 ·
メンテナーはふだん 1 日以内に返信
-
🐣 Good first issue: contribute a new MCP adapter再び着手できるかも @7k777 が 20 日前に担当しましたが、オープン中のプルリクエストはありません。 オープンenhancement good first issue hacktoberfest help wanted
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
HelpCode-ai/anythingmcp#150 · コメント 18 件 ·
メンテナーはふだん 1 日以内に返信
HelpCode-ai/anythingmcp の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 72/100
cline/mcp-marketplace#2932 ·
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
難易度 1/5 1時間未満 初心者へのやさしさ 82/100
lingdojo/kana-dojo#32188 · コメント 1 件 · リアクション 5 件 ·
メンテナーはふだん 1 日以内に返信
-
triage
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
Portkey-AI/gateway#1844 ·
メンテナーはふだん 1 日以内に返信
-
needs triage
難易度 2/5 1〜3時間 初心者へのやさしさ 61/100
rjsf-team/react-jsonschema-form#5495 ·
メンテナーはふだん 2 日以内に返信