trackmcp
Back to directory
sara-star-quant

presence-mcp

View on GitHub

Exposes the presence Claude Code plugin's living project model and outcome telemetry as MCP resources for Claude Desktop and Cursor.

1 stars PythonOthers Updated Aug 5, 2026
claude-codeclaude-code-pluginmcpmcp-registrymcp-servermodel-context-protocolpresence

Documentation

presence-mcp

PyPI
Python versions
License: Apache 2.0
CI
MCP Registry

> PyPI launcher that exposes presence's living project model and outcome telemetry as MCP resources for Claude Desktop, Cursor, Continue, and other MCP-aware clients.

`presence` is a Claude Code plugin. It already ships a stdio MCP server at `lib/cli.py mcp` and exposes two read-only resources per repository (see What you get). This package is the PyPI shim that lets that server be listed in the official MCP Registry and invoked with a single command name in every per-client config, instead of an absolute path that varies per machine.

The launcher itself speaks no MCP. It locates a local presence install and forwards stdio to `python lib/cli.py mcp`. About 40 lines of Python, stdlib only.

Quick start

bash
pip install presence-mcp

Then point any MCP client at the `presence-mcp` command. For Claude Desktop, that's:

json
{
  "mcpServers": {
    "presence": {
      "command": "presence-mcp"
    }
  }
}

Full per-client config for Cursor and Continue below. Requires Python 3.12+ and a local presence install.

What you get

Two read-only MCP resources, one per repository you've worked on:

URIContentMIME type
`presence:///model`Living `model.md` (Markdown)`text/markdown`
`presence:///telemetry`Recent commit / revert / verification claims (JSON array)`application/json`

`` is a 12-char SHA-256 prefix of the repo. The server resolves the current repo from the launcher's working directory; see Working-directory caveat. Resource schema and protocol details: presence's `docs/mcp.md`.

Per-client configuration

The same `presence-mcp` command works in every client.

Claude Desktop

`~/Library/Application Support/Claude/claude_desktop_config.json` (macOS), or the equivalent on Windows / Linux:

json
{
  "mcpServers": {
    "presence": {
      "command": "presence-mcp"
    }
  }
}

Cursor

`.cursor/mcp.json` in the project root, or the global Cursor MCP settings:

json
{
  "mcpServers": {
    "presence": {
      "command": "presence-mcp"
    }
  }
}

Continue

`~/.continue/config.json`:

json
{
  "mcpServers": [
    {
      "name": "presence",
      "command": "presence-mcp"
    }
  ]
}

Verify the install

The launcher accepts JSON-RPC on stdin. Pasting `{"jsonrpc":"2.0","id":1,"method":"initialize"}` and pressing Enter should yield an `initialize` response. You can also invoke it as `python -m presence_mcp` if a console script isn't convenient.

Environment variables

VariablePurpose
`PRESENCE_MCP_CLI`Absolute path to presence's `lib/cli.py`. Overrides the default `~/.claude/plugins/presence/lib/cli.py` lookup. If set but the path is missing, the launcher errors out instead of falling back, so typos surface.
`PRESENCE_MCP_PYTHON`Python interpreter to run presence with. Defaults to `sys.executable` of the launcher itself. Useful when presence is installed under a different Python (for example, a project venv).

If `presence-mcp` reports it could not locate presence, install presence at the standard Claude Code plugin path, or set `PRESENCE_MCP_CLI`.

Working-directory caveat

presence's MCP server resolves the current repo from the launcher's working directory via `git rev-parse --show-toplevel`. MCP clients that launch the server from a fixed directory will only see one repo. To switch repos, either launch a separate instance per project (set `cwd` in the client's per-server config), or restart the server from the target project root.

Compatibility

  • Python: 3.12 or newer. CI matrix covers 3.12 / 3.13 / 3.14.
  • presence: tested with `>= 0.6.0`. Older versions back to v0.4.1 (where the MCP server first shipped) may still work but are not exercised by CI.
  • Platforms: Linux and macOS exercised in CI. Windows is untested in v0.1.0. The launcher uses `subprocess.run` which is cross-platform, but the default presence install path (`~/.claude/plugins/presence/lib/cli.py`) needs a real Windows install to confirm. Report issues if you try it.

This launcher is protocol-agnostic: it does not rev when presence ships new MCP resources. It only revs when its own resolution logic, CLI surface, or `server.json` content changes.

Where to file issues

  • Launcher bugs (path detection, install errors, CLI argument forwarding): issues on this repo.
  • Resource-content bugs (what `presence://*/model` returns, telemetry schema, working-directory behavior, anything about the protocol itself): issues on the presence repo.

Disambiguation

presence's MCP server advertises `serverInfo.name = "presence-mcp"` in its `initialize` response. That's the server's MCP identity. This package is the PyPI launcher. The names match by intent.

  • PyPI: https://pypi.org/project/presence-mcp/
  • MCP Registry: https://registry.modelcontextprotocol.io/v0/servers?search=presence-mcp (`io.github.sara-star-quant/presence-mcp`)
  • Upstream (presence): https://github.com/sara-star-quant/presence

License

Apache-2.0. See LICENSE and NOTICE.

Frequently asked questions

What is presence-mcp?

presence-mcp is Exposes the presence Claude Code plugin's living project model and outcome telemetry as MCP resources for Claude Desktop and Cursor.

How do I install presence-mcp?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is presence-mcp open source?

Yes — it is hosted on GitHub at https://github.com/sara-star-quant/presence-mcp and has 1 stars.

Related MCP tools

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP