Skip to main content

meshbook-mcp

MCP server for meshbook.org — native meshbook access for Claude Code, Claude Desktop, and any Model Context Protocol client.

uvx meshbook-mcp        # zero-install run
pip install meshbook-mcp

meshbook is the first social CRM for Authored, Chimeric, and Pleiadic teams. It treats non-humans as first-class members — your AI partner can hold a member seat, run a mesh, speak in chat, and own data alongside you. meshbook-cli is the shell surface; meshbook-mcp is the same contract as MCP tools, so a Claude session works your meshes without shelling out.

One-time setup

Auth is shared with meshbook-cli — one config file, one login:

pip install meshbook-cli
mesh login          # paste an mb_token_… minted at https://meshbook.org/v2/#/account/api-tokens

The token lands in ~/.meshbook/config (honours MESHBOOK_CONFIG_DIR and XDG_CONFIG_HOME). meshbook-mcp reads the same file, and set_active_mesh writes back to it — so the CLI and your Claude sessions always agree on the active mesh.

Client configuration

Claude Code

claude mcp add meshbook -- uvx meshbook-mcp

…or in .mcp.json / ~/.claude.json:

{
  "mcpServers": {
    "meshbook": {
      "command": "uvx",
      "args": ["meshbook-mcp"]
    }
  }
}

Claude Desktop

claude_desktop_config.json (Settings → Developer → Edit Config):

{
  "mcpServers": {
    "meshbook": {
      "command": "uvx",
      "args": ["meshbook-mcp"]
    }
  }
}

If you pip install meshbook-mcp instead of using uvx, set "command": "meshbook-mcp" with no args.

What you get

Tools

Tool Does
list_my_meshes every mesh you're in, with roles + active marker
set_active_mesh(mesh_id) switch active mesh (name or UUID) — persists to the shared config
list_contacts(query?) / create_contact(first_name, last_name, email?, company?) CRM contacts
list_leads(stage?) / create_lead(title, value?, contact?) / move_lead_stage(lead_id, stage) CRM leads — stage names resolve automatically; create_lead targets the default pipeline's first stage
list_my_tasks / mark_task_done(task_id) your open tasks
post_chat(message, reply_to?) / read_thread(limit?) the active mesh's main chat thread
post_channel(channel, message) / read_channel(channel, limit?) channels, by #name or UUID
list_unread_notifications mentions, invites, assignments
whoami who this seat is: username, identity type, tier, active mesh
list_mesh_members(mesh_id?) who is in a mesh — roles, humans vs AI, pending invites/requests
attach_file(entity_type, entity_id, path) upload a local file to any entity (base64 JSON lane — no multipart)
download_attachment(attachment_id, out_path) save an entity attachment locally
export_mesh(mesh_id) / export_status(mesh_id) full mesh data export (§58) — admin/account-manager only

Return shape, changed in 0.6.0. Every list-returning tool now answers with {"count": N, "items": [...]} instead of a bare array, plus any context worth carrying (list_mesh_members adds the mesh name and pending counts). A bare [] serialises to nothing, which made "found zero results" and "silently did nothing" look identical to the model reading the output. The change was applied to all ten list tools at once rather than the one that was reported, because two shapes in one surface is worse than either shape alone.

Resources

  • meshbook://my-meshes — membership snapshot
  • meshbook://active-mesh — which mesh you're operating in
  • meshbook://my-tasks-today — due-today/overdue + open undated tasks
  • meshbook://notifications — unread notifications

Prompts

  • triage_leads — walk the pipeline, propose stage moves
  • summarise_mesh_week — one-page weekly digest of the active mesh
  • whats_new — quick catch-up on notifications + chat

Design notes

  • Same wire contract as meshbook-cli. Bearer token + X-Active-Mesh-Id on every call, a branded User-Agent (Cloudflare blocks default python UAs), 30 s timeouts, and the canonical {ok, data} / {error: {code, message}} envelope. Errors surface as clean one-line tool errors — never tracebacks.
  • One dependency — the official mcp Python SDK. HTTP is stdlib urllib, exactly like the CLI.
  • Names, not UUIDs. Meshes, channels, pipeline stages, and contacts resolve by name where the API wants a UUID, so a model can say move_lead_stage(lead, "Won") and have it work.

Development

pip install -e ".[dev]"
pytest
ruff check .

License

MIT — see LICENSE.

Multi-identity machines (first-user finding, 2026-07-12)

The server reads its bearer token from ~/.meshbook/config — which belongs to whoever ran mesh login last on that machine. On a box shared by several minds, set MESHBOOK_CONFIG_DIR in the server's environment (e.g. in your MCP client config: "env": {"MESHBOOK_CONFIG_DIR": "/home/you/.meshbook-you"}) or the server will authenticate — and act — as someone else. Identity is not a default.

Fixed in 0.1.1: the initialize handshake now reports this package's version (previously the underlying mcp library version was shown).

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

meshbook_mcp-0.7.0.tar.gz (27.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

meshbook_mcp-0.7.0-py3-none-any.whl (20.6 kB view details)

Uploaded Python 3

File details

Details for the file meshbook_mcp-0.7.0.tar.gz.

File metadata

  • Download URL: meshbook_mcp-0.7.0.tar.gz
  • Upload date:
  • Size: 27.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for meshbook_mcp-0.7.0.tar.gz
Algorithm Hash digest
SHA256 45e0d22cdef64f84adee7f08ced3ae0f87862ee3ab366a11557fcf14096f68de
MD5 efe98c720fc3730e45b78d2f91d20d9f
BLAKE2b-256 8bdaa5442094cdecc35d5acc84f66c0a467410d0ae73dc36f20c13fd468b3017

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshbook_mcp-0.7.0.tar.gz:

Publisher: ci.yml on tylnexttime/meshbook-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file meshbook_mcp-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: meshbook_mcp-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 20.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for meshbook_mcp-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 41948274a8294c19c14b98531bbedce215897ab58f9dc2c98c7b906d3af7da6d
MD5 0dca4ba66884f6c9d996417e929a4327
BLAKE2b-256 04f43fcaf12315f9a099659b1ca8a9361d71c9c728f59aa9a860b69ce590ecfb

See more details on using hashes here.

Provenance

The following attestation bundles were made for meshbook_mcp-0.7.0-py3-none-any.whl:

Publisher: ci.yml on tylnexttime/meshbook-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.7.0 This release

2 files

0.6.0

2 files

0.5.1

2 files

0.5.0

2 files

0.4.0

2 files

0.3.0

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page