@gitgmbh/pi-trinity-mcp

Pi extension that delegates prompts to agents on a self-hosted Trinity agent platform (https://github.com/Abilityai/trinity) via its MCP endpoint (HTTP+SSE Streamable transport). Config-less auth via env vars. Surfaces a curated subset of the Trinity MCP

Packages

Package details

extension

Install @gitgmbh/pi-trinity-mcp from npm and Pi will load the resources declared by the package manifest.

$ pi install npm:@gitgmbh/pi-trinity-mcp
Package
@gitgmbh/pi-trinity-mcp
Version
0.1.5
Published
Jul 20, 2026
Downloads
141/mo · 141/wk
Author
guido.palacios
License
MIT
Types
extension
Size
25 KB
Dependencies
0 dependencies · 2 peers
Pi manifest JSON
{
  "extensions": [
    "./index.ts"
  ],
  "video": "https://github.com/gitgmbh/pi-trinity-mcp/releases/download/v0.1.4/pi-trinity-mcp-demo.mp4"
}

Security note

Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.

README

@gitgmbh/pi-trinity-mcp

Pi extension that delegates prompts to agents on any self-hosted Trinity MCP platform. No CLI, no MCP server wiring — pure MCP-over-HTTP+SSE.

License: MIT

What this is

Trinity is an open-source platform for deploying, orchestrating, and governing fleets of autonomous AI agents on your own hardware. It exposes a MCP (Model Context Protocol) endpoint at https://<your-trinity-host>/mcp that lists dozens of tools for agent CRUD, scheduled loops, fleet health, event subscriptions, file sharing, voice calling, and more.

This extension wraps a curated subset of those tools as native pi tools, so the model can spin up a delegation conversation without injecting every MCP schema into its context.

Tools surfaced

Tool Underlying MCP tool
trinity_chat chat_with_agent — send a prompt to any agent
trinity_agents_list list_agents — list all deployed agents
trinity_get_agent get_agent — detailed info on one agent
trinity_fleet_health get_fleet_health — fleet-wide health rollup
trinity_get_agent_health get_agent_health — deep health for one agent
trinity_get_agent_logs get_agent_logs — tail container logs

The full MCP surface remains reachable via raw tools/call calls — see "Advanced: raw MCP" below.

Install

pi install npm:@gitgmbh/pi-trinity-mcp

For other installation sources (private registry, git mirror), see the pi packages docs.

Auth

Two env vars — that's all it takes:

export TRINITY_URL="<your-trinity-host>"            # e.g. https://trinity.example.com
export TRINITY_API_KEY="<your-mcp-key>"             # Settings → API Keys in the dashboard

Optionally store them in ~/.pi/agent/settings.json:

{ "trinity": { "url": "<your-trinity-host>", "token": "<your-mcp-key>" } }

Get a key at <your-trinity-host> → Settings → API Keys → Create.

Usage

Once installed, the model can call any of the six tools. A typical delegation:

"Delegate to <your-orchestrator-agent> a plan to migrate stack X"

Or directly:

"Use trinity_chat with agent='<your-ops-agent>' and a message asking for help with Ansible"

A sensible convention is to give your agents role-coded names (e.g. orchestrator, devops, docs, reviewer) — that lets the model pick the right agent without remembering a roster. Discover your current roster with trinity_agents_list.

Pattern: orchestrator + specialists

A common pattern is one orchestrator agent that triages incoming tasks and dispatches to specialists (e.g. a code reviewer, a docs writer, an infrastructure agent, a tester). To use it:

  1. Delegate to the orchestrator first when a task is non-trivial — let it decompose the work.
  2. Talk to a specialist directly when you already know which agent owns the topic.

When NOT to use Trinity

  • Trivial local edits, single-file fixes — local tools are faster and free.
  • Anything needing deep context about your open files / session — Trinity has none of that. Include all needed context in message.
  • Anything that must complete in <5s — delegated runs are network round-trips plus agent runtime.

Advanced: raw MCP

If you need any of the other tools (schedules, event subscriptions, file sharing, voice, etc.), call MCP directly from a pi shell. The transport is Streamable HTTP:

# 1. initialize → capture mcp-session-id
SID=$(curl -sS -i -X POST "$TRINITY_URL/sse" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "Authorization: Bearer $TRINITY_API_KEY" \
  -d '{"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"probe","version":"1"}},"id":1}' \
  | grep -i "^mcp-session-id" | awk '{print $2}' | tr -d '\r\n')

# 2. acknowledge
curl -sS -o /dev/null -X POST "$TRINITY_URL/sse" \
  -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
  -H "Authorization: Bearer $TRINITY_API_KEY" -H "mcp-session-id: $SID" \
  -d '{"jsonrpc":"2.0","method":"notifications/initialized"}'

# 3. call any tool
curl -sS -X POST "$TRINITY_URL/sse" \
  -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
  -H "Authorization: Bearer $TRINITY_API_KEY" -H "mcp-session-id: $SID" \
  -d '{"jsonrpc":"2.0","method":"tools/call","params":{"name":"<tool-name>","arguments":{...}},"id":99}'

Or list everything that's available:

curl -sS -X POST "$TRINITY_URL/sse" \
  -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" \
  -H "Authorization: Bearer $TRINITY_API_KEY" -H "mcp-session-id: $SID" \
  -d '{"jsonrpc":"2.0","method":"tools/list",","id":3}'

Why no CLI

Pi intentionally has no built-in MCP support. This extension is a ~200-line Streamable-HTTP MCP client: it does the initialize handshake, captures mcp-session-id, and dispatches tools/call. Zero prompt overhead for tools you don't use, no extra schema injection, no separate daemon.

How it talks to Trinity

pi (this extension)
  └─ POST {TRINITY_URL}/sse
       ├─ initialize             → captures mcp-session-id
       ├─ notifications/initialized
       └─ tools/call             → SSE-formatted JSON-RPC 2.0 reply

All requests use Authorization: Bearer <TRINITY_API_KEY>.

Development

The extension is a single index.ts file. To iterate locally:

ln -s "$(pwd)" ~/.pi/agent/extensions/pi-trinity-mcp

Pi auto-discovers from ~/.pi/agent/extensions/ during development.

Publish

Maintainers only:

npm version patch     # or minor / major
npm publish --access public --provenance

(--access public is required for scoped packages to be indexable by the pi marketplace.)

License

MIT