{"servers":[{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.swisspra/pursers","description":"Coordinate AI-agent work on a local-first, owner-controlled MCP board","title":"Pursers","repository":{"url":"https://github.com/swisspra/Pursers","source":"github"},"version":"5.0.0","packages":[{"registryType":"pypi","identifier":"pursers-central","version":"0.1.0","runtimeHint":"uvx","transport":{"type":"streamable-http","url":"http://127.0.0.1:8766/mcp"},"packageArguments":[{"description":"Private directory for the Central SQLite store and request-state keys","isRequired":true,"format":"filepath","type":"named","name":"--data-root"}],"environmentVariables":[{"description":"Loopback bind host used by the packaged runtime","default":"127.0.0.1","name":"ONBOARD_CENTRAL_HOST"},{"description":"Loopback bind port used by the packaged runtime","format":"number","default":"8766","name":"ONBOARD_CENTRAL_PORT"},{"description":"Private Central data directory; --data-dir/--data-root is the equivalent CLI input","format":"filepath","name":"ONBOARD_CENTRAL_DATA_DIR"},{"description":"Packaged runtime log level","default":"info","name":"ONBOARD_CENTRAL_LOG_LEVEL"},{"description":"Optional comma-separated bare Host names accepted in addition to the bind host","name":"ONBOARD_CENTRAL_ALLOWED_HOSTS"},{"description":"Optional TLS certificate path; requires ONBOARD_CENTRAL_TLS_KEYFILE","format":"filepath","name":"ONBOARD_CENTRAL_TLS_CERTFILE"},{"description":"Optional TLS private-key path; requires ONBOARD_CENTRAL_TLS_CERTFILE","format":"filepath","isSecret":true,"name":"ONBOARD_CENTRAL_TLS_KEYFILE"},{"description":"Central admission policy; Pursers supports invite-only admission","value":"invite","name":"CENTRAL_ADMISSION"},{"description":"Central authentication mode; Pursers supports JWT authentication","value":"jwt","name":"CENTRAL_AUTH_MODE"},{"description":"Path to the issuer public JWKS used to verify seat credentials","isRequired":true,"format":"filepath","name":"CENTRAL_JWKS_PATH"},{"description":"MCP resource URL in audience and resource claims; defaults to the loopback bind URL","name":"CENTRAL_JWT_AUDIENCE"},{"description":"Allowed JWT clock skew in seconds","format":"number","default":"30","name":"CENTRAL_JWT_CLOCK_SKEW"},{"description":"Exact issuer URL in every accepted seat credential","isRequired":true,"name":"CENTRAL_JWT_ISSUER"},{"description":"Maximum concurrent event streams accepted per principal","format":"number","default":"32","name":"CENTRAL_PRINCIPAL_STREAM_CAP"},{"description":"Interval in seconds between expired-lease reaper sweeps","format":"number","default":"30.0","name":"CENTRAL_REAPER_INTERVAL_S"},{"description":"Optional restart-safe request-state keyring path","format":"filepath","isSecret":true,"name":"CENTRAL_REQUEST_STATE_KEY_FILE"},{"description":"String flag: use 1 to expose deprecated coordination tools; use 0 to keep them hidden","format":"string","default":"0","name":"PURSERS_LEGACY_TOOLS"},{"description":"Central storage backend; Pursers supports SQLite","value":"sqlite","name":"STORE_BACKEND"}]}],"_meta":{"io.modelcontextprotocol.registry/publisher-provided":{"releaseNote":"At the beta.3 candidate, copy the b3 product and central versions from tools/release_versions.toml; tools/check_server_json.py fails until both fields match.","versionSource":"tools/release_versions.toml"}}},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-18T16:13:20.614119Z","publishedAt":"2026-09-18T16:13:20.614119Z","updatedAt":"2026-09-18T16:13:20.614119Z","isLatest":true}}}],"metadata":{"count":1}}
