poke-interconnect
Exposes a /metrics endpoint in Prometheus text format, providing counters for envelopes received/sent and policy denials, plus handler latency histograms for monitoring the PIP node.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@poke-interconnectsend a message to peer Alice about the project deadline"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
poke-interconnect — Poke Interconnect Protocol (PIP) v1
PIP lets independent Poke instances discover each other's capabilities and exchange signed, consented, idempotent messages and data. One envelope format, one policy engine, and one security model are shared by two transports: an HTTP/JSON API and an MCP server.
The full normative spec lives in docs/PROTOCOL.md.
Install name: poke-interconnect; import name: pip_protocol; CLI: pip-node.
Architecture
Peer A Peer B
┌──────────────────┐ ┌──────────────────┐
│ pip-node / SDK │ │ pip-node / SDK │
│ ┌────────────┐ │ │ ┌────────────┐ │
│ │ Node │ │ envelope │ │ Node │ │
│ │ sign/verify│ ├─────────►│ │ verify → │ │
│ │ policy │ │ receipt │ │ policy → │ │
│ │ redaction │ │◄─────────┤ │ handler │ │
│ └─────┬──────┘ │ │ └─────┬──────┘ │
│ HTTP / MCP │ │ HTTP / MCP │
└──────────────────┘ └──────────────────┘
Ed25519 identity · pip:<base32(sha256(pubkey))[:26]>Related MCP server: dsh-agent-mailbox
Quickstart
uv venv .venv && uv pip install -e .[dev] # or: pip install poke-interconnect
# 1. generate an instance key (mode 0600)
pip-node keygen --out ./data/instance.key
# 2. configure peers and consent
cp config/policy.example.yaml config/policy.yaml # edit peers/scopes/consents
cp config/.env.example .env # optional
# 3. serve
PIP_PRIVATE_KEY_FILE=./data/instance.key PIP_POLICY_FILE=./config/policy.yaml \
pip-node serve-http # HTTP on 127.0.0.1:8642
pip-node serve-mcp --transport stdio # MCP over stdio
pip-node serve-mcp --transport streamable-http # MCP over HTTPOther CLI commands: pip-node identity, pip-node sign, pip-node send
(see pip-node --help). Try the in-process demo:
python examples/two_nodes_demo.py.
MCP client config
See config/mcp-client.example.json:
{ "mcpServers": { "poke": {
"command": "pip-node",
"args": ["serve-mcp", "--transport", "stdio"],
"env": { "PIP_PRIVATE_KEY_FILE": "./data/instance.key" } } } }HTTP API (§8)
Endpoint | Auth | Description |
| none | signed handshake envelope (identity + capabilities) |
| none |
|
| signature (+bearer) | envelope → signed |
| bearer if set | Prometheus text format |
PIP_HTTP_BEARER_TOKEN is an optional defense-in-depth gate; it never
replaces the envelope signature. X-PIP-Request-Id is echoed/generated,
X-PIP-Trace-Id propagated to logs.
MCP (§9)
Tools: pip_handshake, pip_send_message, pip_exchange_data,
pip_get_receipt, pip_list_capabilities (public). Every tool takes a signed
envelope dict; failures return a signed error envelope in the result
(never a raw exception).
Resources: pip://identity, pip://capabilities, pip://policy/scopes.
Prompts: pip_compose_message(to, subject, intent),
pip_request_data(dataset, purpose).
Configuration (§12)
Variable | Default | Notes |
|
| mode 0600; key material never in env |
|
| |
|
| YAML or JSON |
|
| or |
|
| loopback by default |
|
| streamable-http MCP port |
| unset | advertised endpoints |
| unset | optional transport gate |
|
| |
|
| |
|
| JSON structured logs |
Deployment
Container image, compose stack, TLS proxy examples, and a systemd unit live in
Dockerfile, docker-compose.yml, docker/, and deploy/. See
docs/DEPLOYMENT.md; quick path:
./deploy/deploy.sh up.
Security model (summary)
Ed25519 signatures over canonical JSON ("PIPv1\n" + canonical_json(env-sig));
peers pinned by public key with rotation grace; nonce + time-window replay
protection; idempotency keys for effectively-once delivery; scope + consent
authorization; outbound redaction before signing; size caps and per-peer token
bucket rate limits. See §13 threat model and docs/SECURITY.md.
Delivery semantics
At-least-once from the sender (client retries with the same
idempotency_key), effectively-once at the receiver. pip.delivery.Outbox
persists pending envelopes with exponential backoff (base 2s, cap 300s, 8
attempts → dead).
Observability
Prometheus counters envelopes_received_total{type,outcome},
envelopes_sent_total, policy_denials_total{code}; histogram
handler_seconds. Structured JSON logs, one line per envelope/request — never
payload bodies, keys, or tokens.
Development
uv pip install -e .[dev]
ruff check . && ruff format --check . && mypy src && pytest -qLimitations (v1)
Transport confidentiality is delegated to TLS (terminate at a reverse proxy); no metadata privacy; no Sybil resistance / peer reputation.
License
MIT — see LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Discover MCP servers and A2A agents; verify, message, post, follow, react, and receive webhooks.
AI agent messaging with durable inboxes, contacts and tasks. Connect through MCP with OAuth.
1Public MCP for agent verification, work discovery and governed interoperability.
Agent-native MCP for governed commerce, x402 payments, paid capabilities, and verifiable receipts.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to message each other by @nickname via an MCP server, with contacts, presence, and durable delivery across local and remote agents.3Apache 2.0
- AlicenseNot gradedqualityAmaintenanceEnables durable agent-to-agent messaging across any MCP client, DSH session, or A2A agent, with threads, receipts, search, broadcast, attachments, presence, SSE streaming, signing, and wake-on-message.300 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables MCP clients to discover and create agents, durably submit messages with verifiable replies, and search source-linked local memory. Exposes eight authenticated tools with owner-approved OAuth, transcript-backed verification, and explicit control over history import and embedding.MIT
- AlicenseNot gradedqualityBmaintenanceEnables agents to discover peers and published agents without credentials, register a wallet-approved scoped identity, send requests, replies, events and payment proposals, and read and acknowledge durable inbox messages. Also supports linking messaging to a directory agent owned by the verified wallet.MIT