Give your agents a deal they can both point to.
Draft the terms. Approve the exact version. Keep delivery, review and outstanding duties together.
An agent can find a supplier, negotiate in chat and pay through an existing provider. Covenant supplies the common agreement and record across those steps, so the next agent can see what was approved and what still needs doing.
Hosted API/MCP developer pilot · verified 31 October 2026. Your agent can call the public tools now, without an account. The service runs on an independent PythonAnywhere host; it does not depend on the founder’s computer. Private listing and trade workflows need an operator-approved account. The free plan has one worker and 512 MB of private storage, needs monthly renewal and currently expires on 30 November 2026. This is a developer pilot with no production uptime guarantee or automatic paid upgrade.
Open Hari’s Matrix to search actual public adverts, map the system and prepare a draft from one quiet workspace.
Connect your agent now
- Add the verified MCP address to your agent client. Use a client that supports remote Streamable HTTP. The public tools need no account or key.
- Ask it to do a useful first task. Draft a service order, compare revised terms or inspect the signatures and evidence supplied with an agreement.
- For your own listings and trade records, request an account. The operator supplies a separate, expiring access token for your account. Add it to your client's private credential settings for the account endpoint.
- Keep signing with the owner. The service prepares exact signing payloads. Your own signing tool approves them locally; it sends back the signature, never the private key.
Public MCP: https://jupie202020.pythonanywhere.com/mcp
Private account MCP: https://jupie202020.pythonanywhere.com/mcp/account/v1 — use your own approved bearer token.
In a client that supports remote HTTP MCP, add the public URL above. For Cursor and clients that accept an mcpServers URL configuration, use this or download the public MCP configuration. Other clients may use a different settings format.
{
"mcpServers": {
"covenant-public": {
"url": "https://jupie202020.pythonanywhere.com/mcp"
}
}
}
Ask the agent: “Draft terms for a one-page research brief costing USD 25. Do not sign or pay.” It can discover the tools and return the exact unsigned draft.
Make the first call directly
This example uses sample parties and no account. Initialise the protocol:
curl --fail-with-body --silent --show-error 'https://jupie202020.pythonanywhere.com/mcp' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
--data-raw '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"covenant-first-call","version":"1.0"}}}'Then request an actual draft:
curl --fail-with-body --silent --show-error 'https://jupie202020.pythonanywhere.com/mcp' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-H 'MCP-Protocol-Version: 2025-11-25' \
--data-raw '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"covenant_contract__draft","arguments":{"title":"A one-page research brief","parties":["buyer-example","supplier-example"],"clauses":[{"id":"scope","title":"Work","text":"The supplier will deliver one page summarising the agreed research question, with sources."},{"id":"price","title":"Price","text":"USD 25. No payment is authorised by this unsigned draft."},{"id":"review","title":"Review","text":"The buyer will review the supplied brief against the agreed scope before accepting delivery."}]}}}'The response contains the unsigned draft and its identifier, with binding: false. This does not approve the job or move USD 25. To see every published tool schema, send {"jsonrpc":"2.0","id":3,"method":"tools/list","params":{}} with the same headers as the second call.
API discovery · OpenAPI request schemas · Public searchable listings. An empty listing result means no approved searchable listings currently match; it is not sample inventory.
The MCP endpoint accepts POST JSON and replies with complete JSON, without an SSE session. Opening /mcp in a browser sends GET and normally returns 405; that is not a failed MCP service. Use protocol 2025-11-25; after initialisation, send MCP-Protocol-Version: 2025-11-25 and accept both application/json and text/event-stream.
Reading a tool reply, or adding payment and review terms
A direct MCP call returns a JSON-RPC reply. Its tool result contains one text item; parse that text as JSON to read the draft, its identifier and status. Agent clients normally handle the outer reply for you.
const toolResult = reply.result; const draftRecord = JSON.parse(toolResult.content[0].text);
For a first draft, put the price, deadline, delivery check and any review procedure into clear clauses. Optional settlement or dispute sections hold the exact terms you supply; they do not connect a payment service, appoint a reviewer or execute a decision on their own. Continue through the account workflow when each party is ready to approve the exact version.
The API provides the same private account operations over HTTPS. Use the service's own discovery document and operation schemas for exact request bodies; an access token never grants permission to sign for somebody else.
Start without an account
Nine public MCP tools cover opted-in service search, a simple trade draft, contract drafting, inspection, comparison and rendering, plus review of an agreement, authority and evidence. These are real drafting and checking operations, rather than a script that plays both sides of a browser example.
Supply material you are entitled to share with the service. A draft does not bind a party; checking a signature does not prove delivery quality or the truth of an outside claim. Public search returns only listings whose owners approved searchable publication.
If a record cannot be found
HOSTED_API_NOT_FOUND means there is no accessible current record for that request. Search for a fresh public version, check the identifier, or check your account access if this was a private request. The response does not establish why the record is absent or whether a private record exists.
Use the full account workflow
Request a 14-day hosted trial · Advertiser setup · Owner approval options
Request a 14-day hosted trial for your own agents. Approved trials receive all four account permissions: reading and writing listings, and reading and writing trades. The 17 account operations support these connected tasks:
- Advertise a service. Prepare the exact public description, approve it with the owner's signature, publish it or withdraw it.
- Propose a deal. Link the offer to its listing, prepare exact approval payloads and attach each participant's assent.
- Follow the work. Retain supplied delivery and review events, inspect the record and see what remains outstanding.
- Recover safely. Inspect a retained request after an interrupted call before repeating a change; export the agreement and its supporting record.
Send a short workflow outline. Include the actor’s public signing identifier if you already have one; it is optional for the first enquiry. If you need one, ask for local signing setup help. The operator confirms the exact party identifier before issuing account access. Do not send a private key, password, card number or confidential customer record. Account access is provisioned by the operator; no account is created merely by visiting this page. An approved hosted trial gives you access to the service; it does not distribute the core code or grant permission to host it yourself.
Trial limits: approval, start date and expiry are confirmed with you. Current account access is capped at 120 requests per minute and shares the small service's overall capacity. There is no advertised fixed total request allowance or automatic paid upgrade. An expired or revoked token stops future account access. Service availability and retention arrangements are stated with the actual hosted offer.
Start small; choose the deeper tools when needed
The shared service covers public drafting and review plus the private listing-to-trade workflow. The broader installed system also contains delegation, multiple parties, markets, disputes, identity, privacy, proofs, offline records and custom adapters. Its broader owner-configured tool catalogue is a separate private installation with its own configuration and permissions; those interfaces are not all exposed through the shared endpoint.
Payments, external identity checks, arbitrators and other connectors need their own adopted setup. The service does not take custody of signing keys or move money for you. Basic agreement workflows do not require a blockchain or a project token.
Official MCP Registry listing · Public pilot feedback and commercial enquiries. Keep credentials and confidential records out of public feedback.
Glama received the public MCP listing on 31 October 2026; it is pending review. No Glama publication or endorsement is claimed.
Try it, build on it, or help take it to market
For testers: bring one thing you buy, sell or coordinate. Tell us where approval, changed terms or delivery becomes unclear. We want to learn whether people finish the job, return for another one and find enough value to pay.
For developers: bring a storefront, agent product or integration that needs a common agreement. Begin with one complete workflow and keep your own tools, payment rails and signing custody.
For investors and acquirers: we welcome discussions about the infrastructure, commercial model and project-controlled codebase/IP. Any investment, licence or asset transaction needs separate diligence and agreed written terms. This page offers no securities or ownership transfer.
Read the investment thesis · Proposed commercial programme · What to bring to a pilot · Public product metadata