Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Unofficial read-only B2match events: agenda, participants, meetings, schedule, conversations
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"b2match": {
"command": "npx",
"args": [
"-y",
"b2match-mcp"
]
}
}
}ターミナルでこれを実行します
claude mcp add b2match -- npx -y b2match-mcpプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"b2match": {
"command": "npx",
"args": [
"-y",
"b2match-mcp"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"b2match": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"b2match-mcp"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント barzoj で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.2.1)がレジストリに届いたのは15 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Agent Data Tools: Utilities
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
103 tools: JSON repair, CSV, hashes, cron, dates, units, validators. 25 free calls.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Read-only MCP server for the B2match event and matchmaking platform.
This package is designed to be run locally by the user via npx and stdio MCP transport.
Disclaimer: This project is unofficial and is not affiliated with, endorsed by, or supported by B2match. It uses B2match's undocumented web GraphQL API, so field availability can change without notice. Use it in accordance with B2match's Terms of Service and GDPR. Participant profiles can be other people's personal data — keep exports local, respect each event's visibility rules, and do not harvest or republish personal data.
query operations. Mutations and subscriptions are parsed and rejected before any network call.https://api.b2match.com/v4/query and the B2match Google login URL opened by the CLI.0600 config file.Requires Node.js 22 or newer. On macOS with Apple Silicon, the recommended install path is npx; no native build step is required for the auth storage path.
npx -y b2match-mcp
From a checkout:
npm install
npm run build node dist/cli.js
{
"mcpServers": { "b2match": { "command": "npx", "args": ["-y", "b2match-mcp"] } } }
{
"mcpServers": { "b2match": { "command": "npx", "args": ["-y", "b2match-mcp"] } } }
Add to .vscode/mcp.json or user MCP settings:
{
"servers": { "b2match": { "type": "stdio", "command": "npx", "args": ["-y", "b2match-mcp"] } } }
For local development from this checkout:
{
"mcpServers": { "b2match": { "command": "node", "args": ["/absolute/path/to/b2match-mcp/dist/cli.js"] } } }
Public event data works anonymously. Personal data such as viewer profile, active events, meetings, schedule, conversations, notifications, and availability requires a locally stored B2match session token.
b2match-mcp login https://www.b2match.com/e/<event-slug>
The default command:
127.0.0.1 for that dedicated profile only (not your everyday browser). The port is closed when login finishes or times out.www.b2match.com/e/ ?token=…) or the event session cookie, validates it with a cheap viewer query, stores it, and closes that browser window. Chrome can 404 the post-Google event page before a cookie is set; the URL token is the path that works in that case.Repeat logins are usually one click because the dedicated profile keeps the Google session.
macOS may show a Keychain access prompt the first time the CLI stores or reads the token. Approve access for b2match-mcp/your terminal if you want Keychain storage. If access is denied or Keychain is unavailable, the CLI falls back to a private config file.
Use these only when the dedicated browser flow cannot run:
b2match-mcp login --paste
B2MATCH_TOKEN=' ' b2match-mcp
B2MATCH_TOKEN is used in memory and is not persisted. Do not pass tokens on the command line; that leaks them into shell history.
b2match-mcp status
b2match-mcp logout b2match-mcp logout --all
logout removes the stored B2match token only. logout --all also deletes the dedicated browser profile.
Login uses a dedicated Chromium profile at ~/.config/b2match-mcp/browser-profile (or $B2MATCH_MCP_CONFIG_DIR/browser-profile / $XDG_CONFIG_HOME/b2match-mcp/browser-profile). That profile keeps the Google session, so a later login is usually one click.
To wipe the Google session as well as the stored B2match token:
b2match-mcp logout --all
To delete only the profile and keep the stored token:
rm -rf ~/.config/b2match-mcp/browser-profile
logout without --all keeps the profile so the next login can reuse Google.
/usr/bin/security (b2match-mcp service, default account). After each save the CLI reads the item back; if the secret is missing or wrong it falls back to the private file and prints keychain read-back failed, stored in file.secret-tool / libsecret when installed and unlocked.$B2MATCH_MCP_CONFIG_DIR/auth.json, $XDG_CONFIG_HOME/b2match-mcp/auth.json, or ~/.config/b2match-mcp/auth.json, written with 0600 permissions.b2match-mcp status reports source: "keychain-unreadable" (with a re-login hint) when a Keychain item exists but is empty or unreadable, instead of pretending you are logged out with source: "none".~/.config/b2match-mcp/browser-profile (same config directory).If a token is a JWT, the CLI records its exp claim as expiresAt. B2match also has opaque tokens, in which case lifetime cannot be known locally. A 401 on an authenticated viewer check is reported as invalid/expired and remembered for the process. Public tools then continue anonymously without deleting the stored token.
b2match-mcp login --paste.--paste.--paste.b2match-mcp logout, then login again and approve the prompt; or set B2MATCH_MCP_DISABLE_KEYCHAIN=1 to use the private file fallback.auth.json was found. Run b2match-mcp logout then login again. If a file token still works, status uses source: "file" and sets a warning about the Keychain item instead.b2match-mcp logout, sign in again, and repeat login.Public/anonymous:
get_event - event metadata, dates, registration window, login methods, and navigation. Numeric ids and slugs return the same fields.list_participants - compact participant summaries with pagination and optional search. Set detail=true for the fuller list payload.get_participant - one participant profile, without firing profile-view tracking.list_organisations, get_organisation - organisation/participation pages. Menu paths such as /components/ are resolved automatically.list_opportunities, get_opportunity - marketplace entries. Menu paths are resolved automatically; unknown opportunities return an MCP not-found error.get_agenda, get_session, list_session_attendees, list_speakers.Authenticated:
auth_statuslist_my_eventsmy_participationmy_schedulemy_meetings - meetings by status; unfiltered responses use a compact availability summary unless detail=truemy_availability - merged free ranges per day by default; detail=true for the full timeslot gridfind_meeting_slotsmeeting_recommendationslist_conversations - last-message previews; does not mark conversations as readget_conversation - disabled by default because fetching messages marks the conversation as read; see side effectslist_notifications - unread/unseen counters by default; the full list resets unseenOptional raw query:
graphql_read is registered only when B2MATCH_ALLOW_RAW=1. It still rejects non-query operations and, unless B2MATCH_ALLOW_SIDE_EFFECT_READS=1, queries that select messagesV2 or the notification list.This client never sends B2match mutations such as MarkConversationAsSeen or ReadNotification. B2match can still mutate its own read/seen state when a query selects certain fields:
get_conversation (messagesV2) marks that conversation as read (unread-conversations count decreases).list_notifications with the notifications(...) list field resets the unseen counter (unseen → 0). The unread counter is unchanged. Fetching notificationsCounter alone does not reset unseen.list_conversations (including lastMessageV2) has no known side effects.Gating:
list_notifications returns only unread/unseen counters.get_conversation and the full notification list require B2MATCH_ALLOW_SIDE_EFFECT_READS=1 and an explicit tool argument (acknowledge_marks_read / acknowledge_marks_seen).graphql_read rejects queries that select messagesV2 or the notifications list unless the same env var is set.Use list_conversations when you only need the last message.
Each event-scoped tool accepts a current event URL (https://www.b2match.com/e/ ), a legacy event URL (https:// .b2match.io), a bare slug, or a numeric event id.
Authenticated tools return an MCP error when no token is stored, with instructions to log in. They say the token is invalid or expired only after a stored token receives HTTP 401.
npm install
npm run build npm test
See CONTRIBUTING.md for lint, format, coverage, Conventional Commits, and the read-only guard.
Live smoke test against a public event (opt-in, not run in CI):
B2MATCH_LIVE_SMOKE=1 B2MATCH_SMOKE_EVENT='https://www.b2match.com/e/<event-slug>' npm test -- tests/live-smoke.test.ts
The smoke test is skipped unless both environment variables are set.
Releases are cut by Release Please from Conventional Commits on main. The same workflow (.github/workflows/release-please.yml) publishes with npm publish --provenance --access public when a release is created (OIDC trusted publishing only — no NODE_AUTH_TOKEN). Provenance requires a public repo. Configure npm trusted publishing against workflow release-please.yml. To republish an existing tag: `gh workflow
冒頭だけを表示しています。続きはリポジトリで読めます