Skip to main content

tripl-mcp

Standalone MCP server exposing a curated, agent-safe toolset over a running tripl instance. It is a pure HTTP client of the tripl REST API (/api/v1) — it imports no backend code and is not mounted into the FastAPI app.

  • 18 curated tools (15 read, 3 write): plan search, event read/write, event types & fields, variables, branches & diffs, scans, monitors, reconciliation, projects.
  • Read tools carry readOnlyHint; write tools require a tk_w_ API key.
  • Plan-mutating tools require branch_id so an agent never edits the live main plan by accident. Operators can override with TRIPL_MCP_ALLOW_MAIN=1.
  • Branch merge/revert/transition, SSE streams, and photo upload are intentionally not exposed in v1.
  • The HTTP client is not in this package. It lives in the tripl distribution (../cli) and is imported from there, so the CLI and this server share one implementation rather than two that drift.

stdio (Claude Code / Claude Desktop)

No form below needs a checkout of your own, but the first two get tripl — the distribution this package imports its HTTP client from — from different places, and the difference is worth knowing:

  • uvx tripl-mcp installs the release from PyPI and resolves tripl from the index, as an ordinary dependency of the published wheel.
  • The git+…#subdirectory=mcp-server form clones the whole repository, so the sibling cli/ arrives with it and the [tool.uv.sources] table below points tripl at that directory. Server and client are therefore built from one commit, and the form does not care what the index currently serves.

This README describes main, which between releases can be ahead of what PyPI serves. Deliberately no version numbers or tool counts here: they were hand-maintained and went stale the moment a release shipped. uvx tripl-mcp gives you the current release; the git form gives you what has landed but not yet shipped. git log mcp-server/ is the honest diff between them.

From PyPI — the released version:

{
  "mcpServers": {
    "tripl": {
      "command": "uvx",
      "args": ["tripl-mcp"],
      "env": {
        "TRIPL_BASE_URL": "https://tripl.example.com",
        "TRIPL_API_KEY": "tk_r_..."
      }
    }
  }
}

From git — no clone needed, and the way to run what is in this repository:

{
  "mcpServers": {
    "tripl": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/tripl-io/tripl.git#subdirectory=mcp-server",
        "tripl-mcp"
      ],
      "env": {
        "TRIPL_BASE_URL": "https://tripl.example.com",
        "TRIPL_API_KEY": "tk_r_..."
      }
    }
  }
}

From a local checkout:

{
  "command": "uv",
  "args": ["run", "--project", "/path/to/tripl/mcp-server", "tripl-mcp"]
}

Create API keys in the tripl app under Settings → API keys. Use a project-scoped tk_r_ key for read-only agents; reserve tk_w_ keys for agents explicitly allowed to edit the plan.

streamable-http (shared server)

TRIPL_BASE_URL=https://tripl.example.com tripl-mcp --transport streamable-http --port 8765

In this mode the server holds no credentials. Every incoming MCP request must carry Authorization: Bearer tk_...; the header is forwarded verbatim to the tripl API and never stored. Requests without it get a clear tool error.

Environment

Variable Meaning
TRIPL_BASE_URL Base URL of the tripl instance (required)
TRIPL_API_KEY API key for stdio mode (required for stdio)
TRIPL_MCP_ALLOW_MAIN Set to 1 to allow plan writes without branch_id (edits main)

Development

cd mcp-server
uv sync
uv run --group dev pytest -q
uv run --group dev ruff check
uv run --group dev ruff format --check
uv run --group dev mypy src

uv resolves tripl from ../cli via [tool.uv.sources], so an edit there is picked up with no install step — and must be, because tripl_cli.client is this server's transport. Run both suites after touching it, which is what ci.yml's cli and mcp jobs do.

The container image builds from the repository root, not this directory, for the same reason:

docker build -f mcp-server/Dockerfile .   # `docker build ./mcp-server` no longer works

Docs

Full agent workflow guidance lives in the website docs: website/docs/integrate/agent-api-guide.md and website/docs/use-cases/llm-agent.md.

Metadata

Release files for tripl-mcp 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tripl-mcp 0.3.0
File Size Uploaded
tripl_mcp-0.3.0.tar.gz 101.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tripl-mcp 0.3.0
File Interpreter ABI Platform
tripl_mcp-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 138.8 kB

Release files / tripl_mcp-0.3.0.tar.gz

Download URL tripl_mcp-0.3.0.tar.gz
Size 101.5 kB
Tags Source
SHA-256 checksum
How to use checksums
024e7e7bcc087655d0a7cd1e0f86acd43373417e0fce11f5947970ceff942d2d
BLAKE2b-256 checksum
How to use checksums
d75c652f86038c88055dbe0290beedcf0604009e4393d505a9bfc17d67357016
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release files / tripl_mcp-0.3.0-py3-none-any.whl

Download URL tripl_mcp-0.3.0-py3-none-any.whl
Size 37.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
921bda40e83e6a8a9a5dd711e9f333e9a1f3f9c9cd264e8ad2b41c38efff4b8e
BLAKE2b-256 checksum
How to use checksums
b218f01f42fdcfe7601a03482211cf507bf429212e449889eceaa8c157a7ba25
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.

Transparency log

Release history Release notifications | RSS feed

0.3.2

2 release files

0.3.1

2 release files

This release

0.3.0 This release

2 release files

0.2.2

2 release files

0.2.0

2 release files

0.1.0

2 release 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