MCP.Market

B2match (unofficial) MCP server

by barzoj·io.github.barzoj/b2match-mcp·v0.2.1

Unofficial read-only B2match events: agenda, participants, meetings, schedule, conversations

A92/100grade A
What users say
No reviews yet
Be the first
Safety scan
A92/100

full report

Adoption
Growing

0 stars164 downloads/wk

Reviews

Write one

Nobody has reviewed B2match (unofficial) yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

B2match (unofficial) tools (23, 1 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • auth_status

    Show whether a local B2match token is available and, when valid, who it belongs to. Never returns the token. Call this first when an authenticated tool (my_*, list_my_events, conversations, notifications) reports a login error; public tools work without a token.

  • find_meeting_slots

    Find free meeting slots shared by the logged-in viewer and selected participants on one day. Read-only: does not book or request a meeting. Use my_availability for your own free time only.

  • get_agenda

    Fetch the event agenda: sessions and networking blocks with times. Use get_session for one session's details and my_schedule for your personal schedule. Resolves the menu path automatically; pass path to override.

  • get_conversation

    Fetch conversation messages. B2match marks that conversation as read when messagesV2 is fetched, even though this client never sends MarkConversationAsSeen. Disabled unless …=1 and acknowledge_marks_read is true. Use list_conversations for last-message previews. Unknown ids return a not-found error.

  • get_event

    Fetch public event metadata, dates, registration window, login methods, and navigation menu paths. Start here to resolve an event before calling the other event tools; use list_my_events to find events you joined. Works without login.

  • get_opportunity

    Fetch a marketplace opportunity. Use the id or url from list_opportunities (published marketplace ids differ from opportunity ids on my_participation). Resolves the marketplace menu path automatically; pass path to override.

  • get_organisation

    Fetch one organisation page (a participation: organisation details plus its representatives). Use list_organisations to find participation ids; use get_participant for a single person. Resolves the menu path automatically; pass path to override.

  • get_participant

    Fetch one participant's full public profile without sending B2match's profile-view tracking mutation. Use list_participants to search or find ids; use my_participation for your own status.

  • get_session

    Fetch one agenda session with its details and a first page of attendees. Provide session_id, or path to a session URL; path alone is enough. Use list_session_attendees to page through attendees only, get_agenda to find sessions.

  • graphql_readwrite action

    Run a raw B2match GraphQL query. Disabled unless B2MATCH_ALLOW_RAW=1. Rejects mutations, subscriptions, and queries that select messagesV2 or the notifications list unless …=1.

  • list_conversations

    List the logged-in viewer's conversations with last-message previews, paginated. Does not mark conversations as read; prefer it over get_conversation unless full message history is needed.

  • list_my_events

    List events the logged-in viewer has joined, with ids/slugs usable as the event argument elsewhere. Requires login; use get_event for any single public event instead.

  • list_notifications

    Returns unread/unseen notification counters by default. Fetching the notification list resets B2match's unseen counter (unseen goes to 0) even though this client never sends ReadNotification. The unread counter is unchanged. The full list requires …=1 and acknowledge_marks_seen=true.

  • list_opportunities

    List published marketplace opportunities (offers/requests) of an event, paginated. Use get_opportunity for one entry's full details. Resolves the menu path automatically; pass path to override.

  • list_organisations

    List organisation pages (participations) of an event, paginated. Use get_organisation for one page, list_participants for people. Resolves the menu path automatically; pass path to override.

  • list_participants

    List public participants as a compact summary. Set detail=true for the fuller record; use get_participant for one profile.

  • list_session_attendees

    Page through the attendees of one agenda session. Returns only the attendee list with a cursor, not the session details; use get_session for those. Provide session_id or path (from get_agenda).

  • list_speakers

    List the speakers shown on the event's speakers page, paginated. Use list_participants for all registered participants. Resolves the menu path automatically; pass path to override.

  • meeting_recommendations

    Fetch B2match's recommended and newest participants for the logged-in viewer to meet. Use list_participants to search all participants and find_meeting_slots to check shared free time.

  • my_availability

    Fetch the logged-in viewer's own meeting availability. Default is merged free ranges per day; set detail=true for the full timeslot grid. Use find_meeting_slots for slots shared with specific participants.

  • my_meetings

    Fetch the logged-in viewer's meetings and meeting requests, optionally one status bucket. Unfiltered responses include a compact availability summary (merged free ranges per day) unless detail=true. Use my_schedule for the overall timetable and find_meeting_slots to find free times with others.

  • my_participation

    Fetch the logged-in viewer's own participant status, activation, permissions, organisation pages, and opportunities for one event. Use get_participant for someone else's public profile.

  • my_schedule

    Fetch the logged-in viewer's personal event schedule (booked sessions and meetings). Use get_agenda for the full public agenda and my_meetings for meeting requests by status. The PDF agenda URL is omitted unless include_pdf_link is true.

Public scan report

scanner v0.1.10 · 2026-10-24 · same rubric, same numbers if you re-run it

no findings
  • Code scan39 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitylocal package, no credentials required12/15
  • Maintenancelast push 1 days ago15/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Overall 92/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How B2match (unofficial) compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
92/100
higher than 95% of 48,255 servers
Tools
23
the typical server has 7
Tools that change things
4%
typical: 0%. Fewer write tools means less an agent can break
Downloads a week
164
more than 72% of 12,191 servers with a package

What its tools let an agent do: 22 read · 1 change

Install B2match (unofficial) in Claude Code, Cursor or VS Code

Runs npx -y b2match-mcp on your machine. Read the scan report first; the gateway never runs local packages.

claude mcp add b2match-mcp -- npx -y b2match-mcp
Add to Cursor

What the publisher says

From the B2match (unofficial) repository's README, as published. We do not edit it. Read it on GitHub

b2match-mcp

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.

Read-only and privacy guarantees

  • The MCP server sends only GraphQL query operations. Mutations and subscriptions are parsed and rejected before any network call.
  • Known "read-looking" write operations are explicitly blocked, including profile-view, mark-as-read, session-attendance, and bookmark mutations.
  • B2match can still update its own read/seen counters when certain query fields are selected. See Server-side side effects.
  • It never calls Plausible, Sentry, Google Analytics, HubSpot, LinkedIn pixel, or any non-B2match analytics endpoint.
  • It makes no external calls other than https://api.b2match.com/v4/query and the B2match Google login URL opened by the CLI.
  • No telemetry or analytics are collected by this package.
  • Tokens are never printed by tools or status commands.
  • Tokens are stored in the OS keychain when available, otherwise in a 0600 config file.

Install / run

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

MCP client config

Claude Desktop

{
  "mcpServers": {
    "b2match": {
      "command": "npx",
      "args": ["-y", "b2match-mcp"]
    }
  }
}

Cursor

{
  "mcpServers": {
    "b2match": {
      "command": "npx",
      "args": ["-y", "b2match-mcp"]
    }
  }
}

VS Code

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"]
    }
  }
}

Authentication

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.

macOS / Linux login

b2match-mcp login https://www.b2match.com/e/<event-slug>
# or: npx b2match-mcp login https://www.b2match.com/e/<event-slug>

The default command:

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

B2match (unofficial): common questions

Is B2match (unofficial) MCP server safe?
Yes, by our scan: it is graded A (92/100). Read the B2match (unofficial) safety report
How do I install B2match (unofficial)?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does B2match (unofficial) need an API key?
Not as far as the registry entry and our scan can tell: no credentials are declared or required.
Is B2match (unofficial) maintained?
The last commit was 12 days ago (2026-10-23). The latest release is v0.2.1.
How does B2match (unofficial) compare with other MCP servers?
safety score 92/100 (higher than 95% of 48,255 servers); tools 23 (the typical server has 7); tools that change things 4% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.