Ownership Attestation Protocol logo

Ownership Attestation Protocol

Enforces explicit task ownership and provenance-tagged completion claims through six MCP tools backed by PostgreSQL.

Install Ownership Attestation Protocol

Pick your client, then add it in one click or paste the config.

SSE (Remote)
Server URL
http://localhost:5000/mcp

Remote servers are added in the app, not the config file: Customize → Connectors → Add custom connector, then paste this URL.

Overview

The ownership-attestation-protocol MCP server enforces explicit task acceptance and provenance-tagged completion claims for agent workflows. It exposes six MCP tools over an HTTP endpoint, stores task history in PostgreSQL, and requires each request to identify an existing actor. Reach for it when delegated work needs auditable ownership, handoffs, and a declared basis for completion claims rather than passive logs alone. It is an early reference implementation, not a complete governance or evaluation platform.

Use cases

  • Track explicit ownership in multi-agent task handoffs
  • Require provenance on agent completion claims
  • Find tasks that remain unaccepted
  • Audit task history and ownership changes

Key features

  • Explicit task acceptance
  • Atomic ownership transfer checks
  • Observed, reviewed, and reported provenance
  • Snapshot-based handoffs
  • Reconstructable task history
  • Unaccepted-task discovery

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 3d ago

Recent health check succeeded.

5/5 checks healthy over the last 29d

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars1Stargazers on the source repository.
Last commit2mo agoMost recent push to the default branch.
Directory activity2 viewsConfig copies, upvotes, and views on AllMCPs.

How Ownership Attestation Protocol works

What the ownership-attestation-protocol MCP server does

The ownership-attestation-protocol MCP server provides a narrow protocol for tracking who has accepted a task and how an actor knows that the task is complete. A newly created task starts without an owner. Assignment, context, or handoff does not establish ownership; the proposed recipient must explicitly accept the task.

Completion claims must include one of three provenance values: observed, reviewed, or reported. An observed claim means the reporting actor performed the work, a reviewed claim means the actor checked evidence, and a reported claim relays information from another source. Calls with a missing or invalid value are rejected.

The implementation also prevents an observed claim from replacing a reported claim on the same task unless the request identifies the evidence checked through sourceReference. Handoffs retain a state snapshot, and task history can be reconstructed from the recorded events.

How it works

Tasks are created in pending_acceptance. accept_task establishes ownership only when the task does not already have a different current owner. The acceptance check is atomic, allowing concurrent requests to contend safely rather than relying on sequential application behavior.

handoff_task transfers responsibility while recording the task state at transfer time. The recipient remains unowned until it calls accept_task. get_task_status returns the task’s injection, acceptances, completion claims and provenance, and handoffs. list_unaccepted_tasks identifies tasks without a current owner, making silent inheritance queryable.

The protocol is intended to complement logs, Git, OpenTelemetry, or durable execution systems. Those systems can record events, content, traces, or execution state, while this protocol focuses specifically on explicit acceptance and the basis for completion claims.

Setup and configuration

Local operation requires Node.js 24, PostgreSQL, and pnpm. Install dependencies with pnpm install, push the database schema, and start the API server with the repository’s workspace commands.

Set DATABASE_URL to the PostgreSQL connection string and MCP_ACCESS_TOKEN to a long random bearer-token value. The MCP endpoint is /mcp; requests require that token in the Authorization header. /api/healthz is exempt for health checks.

Create an actor before using any protocol tool. Actor identity is supplied by an external identity system, and the server does not expose a create_actor tool or route. The repository includes a local seed script for creating an actor during development. Connect an MCP client over HTTP, such as Claude Code, using the bearer token.

Tools and capabilities

The six protocol tools are:

  • create_task: creates a task awaiting acceptance.
  • accept_task: explicitly claims a task, with an atomic ownership check.
  • report_completion: records a completion claim with required provenance.
  • handoff_task: transfers a task and saves a state snapshot.
  • get_task_status: returns the complete recorded history for one task.
  • list_unaccepted_tasks: lists tasks that have no current owner.

The ownership-attestation-protocol MCP server has automated tests for malformed inputs, ownership bypass attempts, and concurrent database transactions. The test suite requires a real PostgreSQL instance and uses a separate loopback test connection by default.

Limitations and notes

The project is described as early and personally tested, with no reported use beyond its author. It makes no broader production-readiness claim. The implementation requires actors to exist before tool calls, and the test runner deliberately ignores DATABASE_URL so it cannot accidentally use a non-loopback database. Partial implementations should not describe themselves as conformant unless they support explicit acceptance, all three provenance categories, reconstructable history, and ownership transfer through handoff.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Ownership Attestation Protocol

ownership-attestation-protocol is an MCP server that connects agent workflows to a PostgreSQL-backed task and attestation protocol. Its main tools create tasks, accept ownership, record provenance-tagged completion claims, hand off tasks, inspect task history, and list tasks without an owner.

Install it with pnpm, configure PostgreSQL and the required environment variables, push the schema, and start the API server. The repository requires Node.js 24 and provides workspace commands for dependency installation, database setup, and local development.

Set MCP_ACCESS_TOKEN and send it as a bearer token in the Authorization header on MCP requests. The server mounts MCP at /mcp, while /api/healthz remains open for health checks.

Create an actor outside the protocol surface or use the repository’s local seed script for development. The server has no create_actor tool or route, and every tool requires an existing actor ID.

Yes. The server is mounted at /mcp, so the client configuration must use that URL and the configured MCP access token.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewOwnership Attestation Protocol AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/ownership-attestation-protocol?style=directory)](https://allmcps.com/mcp/ownership-attestation-protocol)
HTML Embed
<a href="https://allmcps.com/mcp/ownership-attestation-protocol"><img src="https://allmcps.com/api/badge/ownership-attestation-protocol?style=directory" alt="Ownership Attestation Protocol on AllMCPs" /></a>