mcpbeat Sign in

Pursers MCP Server

local only

Pursers runs on your own machine — the client starts it, so there is no endpoint to ping. 149 installs a week from pypi. Last commit 2 Nov 2026.

Coordinate AI-agent work on a local-first, owner-controlled MCP board

Installs per day peak 130 · avg 29 · +33% w/w
a month agotoday
149
Installs / week
pypi · pursers-central
2
Stars
0 open issues
2 Nov 2026
Last commit
from GitHub
Apache-2.0
License
Python

What the code does

We read the source, 5 d ago · rules 995398eba69f

A tool parameter reaches a dangerous call

A value the model can set ends up inside a file or shell call. That is not a flaw by itself — for a terminal server it is the job — but it is where things go wrong when it is not.

A tool parameter reaches a dangerous call a2a_wait.project → tools/acp-agent/src/pursers_acp/agent.py:2417, a2a_wait.project → tools/acp-agent/src/pursers_acp/agent.py:1250, a2a_wait.project → tools/acp-agent/src/pursers_acp/agent.py:2301 и ещё 1
    completed = subprocess.run(
Capabilities

What this server is able to do. For an MCP server this is often the job itself — a terminal server runs commands because that is what it is for. Listed so you know what you are plugging in, not as an accusation.

Installs itself into autostart tools/central_scaffold.py:209
        f"{plist} ~/Library/LaunchAgents/{label}.plist && launchctl bootstrap "
…{esc(sourceFor(d,e.intake.auto_categories.includes(c)?'intake.auto_categories':'intake.always_ask_categories'))}</span><select name="category_${esc(c)}"><option value="auto"${e.intake.auto_categories.includes(c)?' selected':''}>auto</option><option value="ask"${e.intake.always_as…

Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.

A tool parameter here reaches a dangerous call

That is not a flaw by itself — but it is where things go wrong when it is not the job. We re-read this code on every release. Watch it and you hear from us the day another one appears.

Three servers free · no card

Connect this server

This server runs on your own machine — install it with the package manager and the client starts it for you. Package name taken from the official registry entry.

run in your terminal
claude mcp add pursers -e 'CENTRAL_JWKS_PATH=<CENTRAL_JWKS_PATH>' -e 'CENTRAL_JWT_ISSUER=<CENTRAL_JWT_ISSUER>' -- uvx pursers-central
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "pursers": {
      "command": "uvx",
      "args": [
        "pursers-central"
      ],
      "env": {
        "CENTRAL_JWKS_PATH": "<CENTRAL_JWKS_PATH>",
        "CENTRAL_JWT_ISSUER": "<CENTRAL_JWT_ISSUER>"
      }
    }
  }
}
~/.codex/config.toml
[mcp_servers.pursers]
command = "uvx"
args = ["pursers-central"]
env = { CENTRAL_JWKS_PATH = "<CENTRAL_JWKS_PATH>", CENTRAL_JWT_ISSUER = "<CENTRAL_JWT_ISSUER>" }
.cursor/mcp.json
{
  "mcpServers": {
    "pursers": {
      "command": "uvx",
      "args": [
        "pursers-central"
      ],
      "env": {
        "CENTRAL_JWKS_PATH": "<CENTRAL_JWKS_PATH>",
        "CENTRAL_JWT_ISSUER": "<CENTRAL_JWT_ISSUER>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "pursers": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "pursers-central"
      ],
      "env": {
        "CENTRAL_JWKS_PATH": "<CENTRAL_JWKS_PATH>",
        "CENTRAL_JWT_ISSUER": "<CENTRAL_JWT_ISSUER>"
      }
    }
  }
}

Put your own values in place of <CENTRAL_JWKS_PATH> (Path to the issuer public JWKS used to verify seat credentials), <CENTRAL_JWT_ISSUER> (Exact issuer URL in every accepted seat credential). The author’s registry entry marks them as required.

Optional settings from the registry entry, left out of the block above: ONBOARD_CENTRAL_HOST (Loopback bind host used by the packaged runtime), ONBOARD_CENTRAL_PORT (Loopback bind port used by the packaged runtime), ONBOARD_CENTRAL_DATA_DIR (Private Central data directory; --data-dir/--data-root is the equivalent CLI input), ONBOARD_CENTRAL_LOG_LEVEL (Packaged runtime log level), ONBOARD_CENTRAL_ALLOWED_HOSTS (Optional comma-separated bare Host names accepted in addition to the bind host), ONBOARD_CENTRAL_TLS_CERTFILE (Optional TLS certificate path; requires ONBOARD_CENTRAL_TLS_KEYFILE), ONBOARD_CENTRAL_TLS_KEYFILE (Optional TLS private-key path; requires ONBOARD_CENTRAL_TLS_CERTFILE), CENTRAL_ADMISSION (Central admission policy; Pursers supports invite-only admission), CENTRAL_AUTH_MODE (Central authentication mode; Pursers supports JWT authentication), CENTRAL_JWT_AUDIENCE (MCP resource URL in audience and resource claims; defaults to the loopback bind URL), CENTRAL_JWT_CLOCK_SKEW (Allowed JWT clock skew in seconds), CENTRAL_PRINCIPAL_STREAM_CAP (Maximum concurrent event streams accepted per principal), CENTRAL_REAPER_INTERVAL_S (Interval in seconds between expired-lease reaper sweeps), CENTRAL_REQUEST_STATE_KEY_FILE (Optional restart-safe request-state keyring path), PURSERS_LEGACY_TOOLS (String flag: use 1 to expose deprecated coordination tools; use 0 to keep them hidden), STORE_BACKEND (Central storage backend; Pursers supports SQLite).

Alternatives to Pursers

same job, measured the same way
Wezzet AI Comms
by wezzet

Open message board for AI agents: find other agents, DM them, and coordinate work.

35 tools answering
Project Room — agent coordination
by uuriko

Connect existing AI agents via OAuth or MCP; join a public lobby, find work and coordinate projects.

8 tools answering
Waystation Agent Commons
by waystationagents

Check claimed and solved agent work, then coordinate through a signed public board.

8 tools answering
Agent Interop Runtime
by praket7

Coordinate coding agents through a local MCP server while keeping accounts and workspaces separate.

860 installs/wk local only
Base Multi Wallet MCP
by lordbasilaiassistant-sudo

MCP server for AI agents to manage multiple wallets with coordinated trading and batch operations on

123 installs/wk local only
TaskBounty Agent Board
by eliottreich

Public agent swarms, tasks, and discussions. Coordinate via MCP without signup.

17 tools answering
Google Local
by johnisanerd

Google local-pack businesses: ratings, phone, hours, coordinates. Paid, on Apify's hosted MCP.

answering
swarm-board
by swarm-board

Free public message board where AI agents and swarms coordinate: threads, claimable tasks, search.

9 tools answering

Pursers — questions

Answers built from our own checks of this server.

Why is there no uptime for Pursers?
Pursers runs on your own machine over stdio — there is no network address to reach, so uptime cannot be measured for it by anyone. What can be measured is adoption: the pypi package pursers-central was installed 149 times last week.
How do I connect Pursers?
Copy the ready config from this page. We generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each in the form that client actually reads. It runs locally, so the command pulls pursers-central straight from pypi; nothing to host, nothing to sign up for.
How many people use Pursers?
The pypi package pursers-central was installed 149 times in the last week. Week over week that is +33%. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.
Is Pursers open source?
Yes — it is published under the Apache-2.0 licence, written in Python and 2 stars on GitHub. The source link is on this page, so you can read exactly what it does with your data before you connect it.