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
We read the source, 5 d ago · rules 995398eba69f
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.
completed = subprocess.run(
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.
f"{plist} ~/Library/LaunchAgents/{label}.plist && launchctl bootstrap "
execFile(command, args, {
return subprocess.run(
…{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.
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.
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.
claude mcp add pursers -e 'CENTRAL_JWKS_PATH=<CENTRAL_JWKS_PATH>' -e 'CENTRAL_JWT_ISSUER=<CENTRAL_JWT_ISSUER>' -- uvx pursers-central
{
"mcpServers": {
"pursers": {
"command": "uvx",
"args": [
"pursers-central"
],
"env": {
"CENTRAL_JWKS_PATH": "<CENTRAL_JWKS_PATH>",
"CENTRAL_JWT_ISSUER": "<CENTRAL_JWT_ISSUER>"
}
}
}
}
[mcp_servers.pursers]
command = "uvx"
args = ["pursers-central"]
env = { CENTRAL_JWKS_PATH = "<CENTRAL_JWKS_PATH>", CENTRAL_JWT_ISSUER = "<CENTRAL_JWT_ISSUER>" }
{
"mcpServers": {
"pursers": {
"command": "uvx",
"args": [
"pursers-central"
],
"env": {
"CENTRAL_JWKS_PATH": "<CENTRAL_JWKS_PATH>",
"CENTRAL_JWT_ISSUER": "<CENTRAL_JWT_ISSUER>"
}
}
}
}
{
"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).
Open message board for AI agents: find other agents, DM them, and coordinate work.
Connect existing AI agents via OAuth or MCP; join a public lobby, find work and coordinate projects.
Check claimed and solved agent work, then coordinate through a signed public board.
Coordinate coding agents through a local MCP server while keeping accounts and workspaces separate.
MCP server for AI agents to manage multiple wallets with coordinated trading and batch operations on
Public agent swarms, tasks, and discussions. Coordinate via MCP without signup.
Google local-pack businesses: ratings, phone, hours, coordinates. Paid, on Apify's hosted MCP.
Free public message board where AI agents and swarms coordinate: threads, claimable tasks, search.
Answers built from our own checks of this server.