Skip to main content
Glama
0xddneto

AI Proof of Us MCP Server

AI Proof of Us

npm version AIPOU MCP server quality

AI Proof of Us is an MCP-first receipt protocol for humans working with AI.

It starts from a simple belief: when people spend real hours building, debugging, researching, writing, and coordinating through AI agents, that work should be able to leave a private, portable receipt.

AIPOU gives Codex, Claude, Cursor, OpenClaw, local models, and other MCP-compatible clients a shared way to create signed, privacy-preserving receipts for AI-assisted tasks.

The human reward loop is the point: people can keep receipts for the work they do with AI all day, and validator-approved receipts can claim AIPOU on Base. The protocol exists to make that claimable work more honest, portable, and useful across agents.

The developer surface is intentionally small: receipts, hashes, lifecycle hooks, and workReceiptId interoperability. Agents, marketplaces, and services can also reference AIPOU receipts or voluntarily accept AIPOU as settlement when both sides agree to use it.

The first version ships as:

  • an MCP server that records privacy-preserving AI task receipts

  • an installable OpenClaw skill for agent workflows

  • docs for MCP clients, agent builders, lifecycle adapters, anti-abuse, and future attestation design

  • a reward model that converts valid receipts into claimable emissions

  • an ERC-20 reward token on Base: AI Proof of Use (AIPOU)

The core idea is simple:

agent starts task -> MCP creates nonce -> AI work happens -> signed receipt -> validator checks -> optional AIPOU claim

Start here if you are building or testing an agent integration:

Read From AI Work to Onchain Rewards for the complete journey, global farming workflow, reward calculation, and one-command claim experience. Read Human Rewards and Agent Payments for the human reward loop and experimental agent-payment framing. Read AIPOU Tokenomics and Launch Transparency for supply, pool, reward, and experimental launch details. Read AIPOU Funding and Partnership Brief for the public Base grant, protocol partnership, and responsible-liquidity proposal. Read AIPOU Creative Service Bounties to quote or accept a concrete image, video, pixel-art, or 3D commission settled in AIPOU after accepted delivery. Read Evidence Boundaries and Claim Validation Policy before proposing integrations with receipt, provenance, security, or payment projects.

Official website: https://0xddneto.github.io/AI-Proof-of-Us/ Public explainer: https://huggingface.co/spaces/0xddneto/AI-Proof-of-Us

Official project contact: aipou001@gmail.com

Project identity and authorship:

AIPOU and AI Proof of Us are currently unregistered project identifiers. The MIT license covers the software, not permission to present another token, service, or package as the official AIPOU project.

This is not "AI usage mining" and it is not meant to reward raw prompt spam or attract passive token speculation. AIPOU is for humans doing real work with AI and for developers who want to test whether that work can produce portable receipts across agent clients.

In plain language:

Humans work with AI -> agents create receipts -> approved receipts claim AIPOU -> agents and marketplaces may accept AIPOU as settlement.

Base mainnet deployment

Contract: 0x55f0Cc5e51A1284D20337d6cbb18938C8A1ABCbB
Chain:    Base Mainnet (8453)
Token:    AI Proof of Use (AIPOU)
Supply:   100,000,000 AIPOU
Cap:      1,000,000,000 AIPOU
Logo:     assets/token/aipou.png
Claims:   0x4ca4C98fB784D20EdC8E2A7F531dAab4c6e53058
Proof:    EIP-712 + Ed25519 + Merkle
Replay:   blocked by nonce and receiptId

Related MCP server: AgentLens

Aerodrome liquidity pool

Pool:       0x3bEA7b68Af54Da779454f82148Ef848c76F78D02
Pair:       AIPOU/WETH
Type:       Volatile
Initial LP: 100,000,000 AIPOU + 0.000632035343416403 ETH
LP lock:    0xc11197E32dFb2352f262D874acFc54467aee6B52
Unlock:     2027-07-08 20:16:49 UTC

The pool was initialized with minimal ETH liquidity and later deepened to approximately 99.23M AIPOU + 0.02957 WETH. A total of 1,712.89145801936861611 LP tokens, representing 99.9999% of the LP supply, are held by an immutable lock until July 8, 2027. The lock has no owner, admin, or early-withdrawal path; after expiry, anyone may trigger release, but the LP tokens can only return to the fixed beneficiary.

Liquidity is still small and its price remains volatile. The lock prevents the protocol wallet from removing the locked position during the published period; it does not guarantee token value, trading volume, or future liquidity.

The initial experimental pool buy was later returned through Aerodrome so the large early purchase would not remain as a misleading concentrated holder balance. See AIPOU Tokenomics and Launch Transparency.

Repository layout

contracts/     ERC-20 token, deploy scripts, Hardhat tests
mcp-server/    MCP server that records AI task receipts
docs/          architecture, anti-abuse model, Base launch notes
skills/        installable agent skills, including OpenClaw
huggingface-space/  static public protocol explainer

Token

Name:   AI Proof of Use
Symbol: AIPOU
Chain:  Base
Cap:    1,000,000,000 AIPOU

The token emission controller is AIPOUClaims. It mints only receipts included in a validator-published Merkle root and rejects a receiptId after its first claim.

AIPOU claims are optional settlement for approved receipts. They do not prove hidden AI use, objective task value, provider endorsement, provider inference without cryptographic provider evidence, or security-policy compliance.

MCP server

The MCP server exposes tools for creating task receipts:

  • get_aipou_contract

  • get_aipou_identity

  • estimate_ai_reward

  • begin_ai_task

  • complete_ai_task

  • export_ai_receipts

  • get_aipou_status (recorded, pending, claimed, and onchain balance summary)

  • settle_ai_rewards (one limited validator batch)

  • settle_all_ai_rewards (one-command claim path for all pending eligible receipts)

Receipts store hashes and metadata, not raw prompts or model outputs.

The dedicated farming key signs EIP-712 authorizations locally. Never paste it into a chat or use a primary wallet. The collector has a separate Ed25519 key that cannot move funds.

Frameworks do not need to understand Merkle trees, Base, or token claims to integrate the receipt layer. The minimal adapter watches task start and task end, records provider/model metadata and hashes, and exposes the AIPOU receiptId as workReceiptId for workflow metadata, traces, UI, audit exports, payment/session records, or later optional settlement.

Quick start

Create A Verified Local Receipt

This is the lowest-friction adoption test — one command, no checkout, no setup:

npx -y aipou-mcp-server --demo

It creates an ephemeral wallet, records and cryptographically verifies one local receipt, prints the workReceiptId integration object, and removes all temporary state. It requires no wallet setup, funds, network access, claim, or raw prompt and output storage.

Create A Persistent Dedicated Identity

After evaluating the disposable demo, initialize a dedicated farming wallet without printing its private key:

npx -y aipou-mcp-server --init

The command creates ~/.aipou/agent-wallet.key with restricted file access and prints a ready-to-copy MCP configuration that references the key by path. Re-running it reports the existing identity instead of overwriting the key.

Verify the persistent setup without writing files, contacting an RPC, moving funds, or submitting a claim:

npx -y aipou-mcp-server --doctor

The diagnostic returns structured checks for Node.js, storage, identity, contract addresses, and chain. It prints only the public wallet address, never the private key.

From a source checkout, the same check runs with:

npm install
npm run demo -w mcp-server

Test The Receipt Adapter

This is the fastest path for maintainers and agent-framework builders. It creates a local receipt with an ephemeral wallet and prints the workReceiptId object that a framework can attach to run metadata, traces, audit exports, or payment/session metadata.

npm install
npm run build -w mcp-server
cd examples/lifecycle-adapter
npm install
npm run demo

No claim is made. No funds move. No raw prompt or output is uploaded.

Run The MCP Server

Install dependencies:

npm install

Build all packages:

npm run build

Run contract tests:

npm run test -w contracts

Run the MCP server locally:

npm run dev -w mcp-server

MCP clients can launch the published server with:

npx -y aipou-mcp-server

Release aipou-mcp-server@0.5.0 is live on npm and marked latest in the official MCP Registry. It was published from GitHub Actions through npm Trusted Publishing with SLSA provenance. See docs/npm-publication.md.

Local MCP config example

Keep the farming private key in a .env file next to the repo and point the server at it with DOTENV_CONFIG_PATH. Never paste the private key into the MCP client config itself: client configs are often synced, logged, or read by other tools.

{
  "mcpServers": {
    "aipou": {
      "command": "node",
      "args": ["/path/to/AI-Proof-of-Us/mcp-server/dist/index.js"],
      "env": {
        "DOTENV_CONFIG_PATH": "/path/to/AI-Proof-of-Us/.env",
        "AIPOU_DATA_DIR": "/path/to/AI-Proof-of-Us/.aipou"
      }
    }
  }
}

Prefer AIPOU_AGENT_KEY_FILE, generated by --init, over embedding AIPOU_AGENT_PRIVATE_KEY in a client configuration. The .env file can still hold the private key for backward compatibility, plus AIPOU_CLAIMS_ADDRESS. On the validator machine, keep the validator key out of that shared .env: store it in a separate file and reference it with AIPOU_VALIDATOR_KEY_FILE so farming-only processes never load it.

Reward flow

  1. The agent calls begin_ai_task and signs a unique nonce with its farming wallet.

  2. The client collects usage and calls complete_ai_task with the output hash.

  3. The MCP derives the trust tier and signs the receipt with Ed25519.

  4. The validator rejects repeated nonces and repeated task/output evidence.

  5. get_aipou_status lets the user see how much has already been recorded, claimed, and left pending.

  6. After an explicit settlement request, settle_all_ai_rewards processes all currently eligible pending receipts from the shared AIPOU_DATA_DIR in bounded batches.

  7. AIPOUClaims rejects claimed receipt IDs and mints AIPOU to each farming wallet.

Users should normally ask for status first, for example show my AIPOU status, to see already claimed rewards, pending receipts, and the farming wallet's onchain balance. An explicit request such as claim my AIPOU is the trigger for settlement only when pending eligible receipts exist. Broad claim requests use settle_all_ai_rewards; settle_ai_rewards remains available for a single limited batch. The MCP client and its user keep the final say on how on-chain transactions are confirmed; the server never asks a client to skip its own confirmation policy. The validator can optionally enforce a settlement policy (minimum work floor per receipt via AIPOU_MIN_RECEIPT_TOKENS, per-wallet daily receipt limit via AIPOU_MAX_DAILY_RECEIPTS_PER_WALLET); both checks are disabled by default.

The trust tier is derived by the MCP and recomputed by the validator. Users cannot self-report provider_signed; a provider tier requires a valid provider signature from a configured public key.

See docs/base-launch.md for the deployment checklist.

Public launch

Security and abuse warning

AI work is easy to fake if the protocol only counts tokens or session time. AIPOU should evolve toward stronger signals:

  • provider-signed usage assertions

  • MCP client signatures

  • task hashes linked to real work

  • staking or slashing for reward operators

  • human or community validation for high-value claims

The token can launch early, but emissions should start conservative.

Clear limits:

  • AIPOU is not an AI-use detector.

  • AIPOU is not a scanner or policy gate.

  • AIPOU does not trustlessly prove "useful work" today.

  • The current validator is a protocol authority for client_signed receipts.

  • AIPOU work receipts do not replace narrower tool-call, boundary-event, payment, or policy receipts; they can reference each other.

  • AIPOU does not replace SLSA-style provenance, agent-security scanners, or observability traces.

  • AIPOU does not replace x402, AP2, stablecoins, or wallet automation.

  • AIPOU can be used as payment only where participants voluntarily accept it.

  • client_signed receipts currently rely on validator policy and trusted collector fingerprints.

  • Serious adoption should move owner and validator authority to multisig and publish explicit validator rules.

Available Tools

11 tools
begin_ai_taskA

Use once before meaningful AI work to create a task session. Provide the provider, model, client, and a 32-byte hash of the task description; returns a unique nonce and EIP-712 authorization signed by the dedicated farming wallet. This writes a pending local task session but does not publish, mint, or submit an on-chain transaction. Pass the returned nonce to complete_ai_task; do not reuse it for another task.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelYesProvider model identifier used for this task, from 1 through 128 characters.
clientYesHost client or agent identifier that starts this task session, from 1 through 64 characters.
providerYesAI provider name for this task session, from 1 through 64 characters.
taskHashYes32-byte hash of the task description; never send the raw prompt or task text.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the tool writes a pending local task session and explicitly states it does not publish, mint, or submit an on-chain transaction. It also reveals that a unique nonce and EIP-712 authorization are produced, providing meaningful behavior beyond the sparse annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no filler: purpose is front-loaded, required inputs and return values are summarized, and side-effect/sequencing guidance is included. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema, the description adequately states the returned artifacts (nonce and signed EIP-712 authorization), the local-only side effect, and the next step. It could mention response structure in more detail, but what an agent needs to call it correctly and chain it with complete_ai_task is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each parameter is already documented in the input schema. The description reinforces that taskHash is a 32-byte hash and warns not to send raw task text, but it does not substantially add meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action and resource: 'create a task session' before AI work, and clarifies the local non-publishing nature. It also names the companion tool complete_ai_task, helping distinguish begin from complete in the same workflow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear contextual timing ('Use once before meaningful AI work') and explicit sequencing ('Pass the returned nonce to complete_ai_task; do not reuse it'). It does not explicitly enumerate when not to use the tool versus other siblings, but the workflow guidance is strong enough for an agent to route correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

complete_ai_taskA

Use exactly once after begin_ai_task finishes meaningful work. Supply that session's nonce, non-negative inputTokens and outputTokens, whole-second durationSeconds, and a 32-byte outputHash; providerEvidence is optional and only for a configured provider key. It validates the nonce and bounded usage, derives the evidence tier, rejects replay, then writes the local receipt store and returns an Ed25519-signed receipt plus compact workReceiptId metadata. It does not publish a Merkle root, mint tokens, or submit a blockchain transaction. Use get_aipou_status to inspect recorded work; repeating a nonce or evidence fails closed instead of creating another receipt.

ParametersJSON Schema
NameRequiredDescriptionDefault
nonceYesUnique 32-byte nonce returned by begin_ai_task for this exact task.
outputHashYesSHA-256-style 32-byte hash of the task output; never send the raw output.
inputTokensYesNon-negative input-token count for this task, capped at 10,000,000.
outputTokensYesNon-negative output-token count for this task, capped at 10,000,000.
durationSecondsYesTask duration in whole seconds from 0 through 86,400.
providerEvidenceNoOptional provider-signed evidence. Omit it for a client-signed receipt.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the sparse annotations, the description discloses that it validates the nonce and bounded usage, derives an evidence tier, rejects replay, writes a local receipt store, and returns an Ed25519-signed receipt. It also explicitly states non-goals: no Merkle root publication, no token minting, and no blockchain transaction. This is rich behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the most critical usage rule and every sentence contributes new information: requirements, behavior, non-goals, and alternative tool routing. It is dense but appropriately sized for a 6-parameter lifecycle tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With sparse annotations and no output schema, the description carries the full burden of contextual explanation. It covers what happens, what is returned, what fails closed, and what not to expect. Everything an agent needs to invoke this tool correctly is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all parameters. The description adds useful relational context: the nonce comes from the begin_ai_task session, outputHash should never be the raw output, and providerEvidence is optional and only for a configured provider key. This goes beyond the schema without repeating it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action: completing an AI task after begin_ai_task finishes meaningful work. It clearly distinguishes the tool from publishing, minting, and blockchain transactions, and names get_aipou_status for inspection. An agent can accurately identify what this tool does and what it does not do.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use exactly once after begin_ai_task finishes meaningful work' is an explicit trigger condition. The description also explains when providerEvidence should be supplied, what happens on replay, and which sibling tool to use for inspecting recorded work. This gives both positive and negative usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

estimate_ai_rewardA
Read-onlyIdempotent

Use before complete_ai_task only when a preview is useful. Provide non-negative inputTokens, outputTokens, and durationSeconds for one task; it returns JSON with estimatedReward and unit for a client-signed estimate. It creates no task or receipt, changes no state, and submits no transaction. The result is informational: complete_ai_task derives the receipt evidence, and the validator determines final eligibility and trust tier.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputTokensYesNon-negative input-token count for this task, capped at 10,000,000.
outputTokensYesNon-negative output-token count for this task, capped at 10,000,000.
durationSecondsYesTask duration in whole seconds from 0 through 86,400.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive, but the description adds specificity: it enumerates what the call does not do (creates no task or receipt, changes no state, submits no transaction) and that the result is informational rather than final. That goes well beyond a generic readOnlyHint with actionable nuance about a client-signed estimate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense, ordered sentences front-load the rule ('Use before complete_ai_task only when a preview is useful') and keep every subsequent sentence purposeful: parameter/behavior constraints, then scope and authority. No filler or repetition exists.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-parameter, read-only tool with 100% schema coverage, the description tells the agent what it returns (JSON estimate with estimatedReward and unit), when in the workflow to call it (before completion), and why the result is non-binding. Given the output schema is absent and annotations carry the safety profile, no essential info is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema condition is 100%, and each parameter already has names, types, bounds, and descriptions. The description only mirrors 'non-negative' scoping, so it adds no semantic information over the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states a precise verb (estimate) and resource (reward for AI task), and — critically — distinguishes it from its near-sibling complete_ai_task by noting it produces no receipt or state change. It also says exactly what it returns (JSON with estimatedReward and unit), so an agent can select it without studying the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The opening clause is explicit about timing and selection: 'Use before complete_ai_task only when a preview is useful.' It also names the authoritative alternative (complete_ai_task derives the receipt evidence; the validator determines final eligibility), letting an agent know when it is NOT a substitute.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_ai_receiptsA
Read-onlyIdempotent

Export signed receipts already stored in this MCP installation, optionally limited to one farming wallet address. Returns JSON with count and receipt payloads, so use it only where local receipt data is appropriate to expose. It does not create a receipt, validate a claim, contact Base, or submit a transaction; use get_aipou_status instead for a compact private summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletNoOptional 20-byte farming wallet address filter. Omit it to export every locally stored receipt.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it read-only, idempotent, and non-destructive, and the description reinforces this by stating it does not create receipts, validate claims, contact Base, or submit transactions. It also discloses that it returns JSON with count and receipt payloads, adding useful behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler, front-loads the core purpose, and packs in output format, exclusions, and an alternative tool. Every sentence contributes meaningful guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-optional-parameter, read-only export tool, the description covers what it does, what it returns, when it should be used, and what it deliberately avoids. There is no output schema, so the explicit mention of count and receipt payloads is valuable and sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter's description already explains the wallet filter and omission behavior. The tool description restates this without adding new parameter-level meaning, so it meets the baseline but does not exceed it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Export') and resource ('signed receipts already stored in this MCP installation'), and clarifies the optional wallet filter. It distinguishes itself from get_aipou_status by naming the alternative explicitly, so an agent can select it correctly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit when-to-use guidance ('only where local receipt data is appropriate to expose') and lists what the tool does not do, pointing to get_aipou_status as the alternative for a private summary. This is clear exclusion and routing behavior.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_aipou_contractA
Read-onlyIdempotent

Read the configured AIPOU token and claims contract details for display or client setup. Returns Base chain metadata, explorer URLs, and minimal ABIs; it does not contact a wallet, submit a transaction, or change local state.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds specifics that it does not contact a wallet, submit a transaction, or change local state, which is useful and consistent. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences deliver the purpose, what is returned, and what is not done. Every sentence earns its place, and the core purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters, a rich set of annotations, and an output listing (Base chain metadata, explorer URLs, minimal ABIs), the description fully equips an agent to call this tool correctly without missing details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the baseline is 4. The description correctly notes it reads 'configured' contract details, implying fixed configuration, which aligns with having no parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Read' and the specific resource 'AIPOU token and claims contract details', along with its purpose ('for display or client setup'). This distinguishes it from sibling tools that handle identity, status, or transactions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context for when to use it ('for display or client setup') but does not explicitly contrast with alternatives. The read-only nature is clear, and given the sibling list, it is evident this is for contract metadata retrieval rather than operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_aipou_identityA
Read-onlyIdempotent

Read the public identity used by this MCP installation when a client needs to display or verify its farming wallet and collector. Returns the wallet address, Ed25519 public key, and fingerprint; it never returns private keys, submits transactions, or changes state.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the read-only nature is structured data. The description adds meaningful context beyond that: it never returns private keys, submits transactions, or changes state, which is valuable safety and privacy information for an agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The purpose and usage context are front-loaded, followed by return contents and explicit non-behaviors. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, but the description enumerates the key return values: wallet address, Ed25519 public key, and fingerprint. Combined with the annotations and the absence of parameters, this is enough for an agent to understand what the tool returns and how to use it safely.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and 100% schema description coverage, so there is no parameter documentation burden. The description does not need to explain parameters, and it appropriately focuses on what the call returns instead.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Read') and names an exact resource: the MCP installation's public identity with its farming wallet and collector. It also distinguishes the tool's scope by explicitly listing what it returns and what it never does, so an agent can tell it apart from the sibling tools like get_aipou_status or get_aipou_contract.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool: when a client needs to display or verify the farming wallet and collector. It does not discuss exclusions or alternatives, but the stated trigger is clear enough for an agent to decide on invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_aipou_statusA
Read-onlyIdempotent

Use this first when the user asks for pending, claimed, or wallet-balance information; use a settlement tool only after an explicit claim request. Returns a read-only JSON summary of receipt counts, estimated pending AIPOU, prior settlement state, and the farming wallet's on-chain AIPOU balance. It may read Base through the configured RPC, but it never signs or submits a transaction, changes receipts, reveals private keys, or returns full receipt payloads.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it read-only and idempotent. The description adds valuable behavioral details: it may read Base via RPC but never signs/submits transactions, changes receipts, reveals private keys, or returns full receipt payloads. This goes beyond the annotations to clarify side-effect-free and privacy-preserving behavior, with no contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no fluff. The first sentence front-loads the primary use case and the exclusion of settlement tools; the second packs a dense but well-organized list of return fields and behavioral constraints. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description must explain what is returned, and it does: a JSON summary of receipt counts, pending AIPOU, settlement state, and wallet balance. It also clarifies what it does NOT return (full receipt payloads) and its network access. For a zero-arg read-only tool, this is complete and actionable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema is fully covered (100%). Per the rubric, baseline is 4 for 0 params. The description doesn't need to reference parameters since none exist; it focuses on the output, which is appropriate here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: a read-only status checker for pending, claimed, and wallet-balance information. It lists the specific data returned (receipt counts, pending AIPOU, settlement state, wallet balance) and distinguishes it from settlement tools, making it unmistakable among its siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this first when the user asks for pending, claimed, or wallet-balance information' and tells when NOT to use settlement tools ('only after an explicit claim request'). This provides unambiguous routing guidance and prevents misuse.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

settle_ai_rewardsA

Use only after an explicit user request to claim one limited batch, not for status or reward previews. maxReceipts defaults to 25 and is capped at 100; the tool validates eligible local receipts against settlement policy, publishes one Merkle root, and mints the included rewards. It submits two Base transactions, so the host client and user must apply their own confirmation policy. Use settle_all_ai_rewards instead for an explicit request to claim all pending eligible receipts.

ParametersJSON Schema
NameRequiredDescriptionDefault
maxReceiptsNoMaximum eligible receipts to include in this one settlement batch, from 1 through 100; defaults to 25.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate a non-read-only, non-idempotent operation. The description adds meaningful behavioral details: it validates receipts, publishes one Merkle root, mints rewards, and submits two Base transactions requiring user confirmation. It doesn't disclose whether eligible receipts are consumed or marked settled after the call, which would be useful, but it goes well beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence earns its place: the first sets the usage gate, the second explains the parameter and operational mechanics, the third addresses confirmation, and the last names the alternative. It is dense, front-loaded, and free of filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the trigger, scope, core behavior, transactions, and alternative. However, there is no output schema, and the description does not state what the tool returns (e.g., transaction hashes, settlement receipt, or confirmation status) or what post-conditions exist on the included receipts. For a multi-transaction settlement action, this is a meaningful gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter maxReceipts is fully documented in the schema with default, minimum, maximum, and a descriptive explanation. The description repeats the default and cap but adds no new semantic meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('settle'/'claim') and clearly identifies the resource: one limited batch of eligible local receipts. It also explicitly distinguishes itself from settle_all_ai_rewards, so an agent can reliably know exactly what scope this tool operates on.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description opens with an explicit trigger condition: 'Use only after an explicit user request to claim one limited batch'. It also states what it is not for ('not for status or reward previews') and names the alternative for all-pending claims, giving clear when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

settle_all_ai_rewardsA

Use only after an explicit broad request such as 'claim my AIPOU' or 'settle all pending AIPOU'; do not use it for a status check. batchSize defaults to 100 and maxBatches to 20, with bounds of 1-100 and 1-50, so large queues remain bounded. It validates all currently eligible local receipts and submits Base transactions for each batch: one Merkle-root publication and one claim transaction per batch. The host client and user must apply their own confirmation policy; use settle_ai_rewards when the user asks for one limited batch.

ParametersJSON Schema
NameRequiredDescriptionDefault
batchSizeNoEligible receipts per settlement batch, from 1 through 100; defaults to 100.
maxBatchesNoMaximum settlement batches to submit in this call, from 1 through 50; defaults to 20.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnly=false and idempotent=false; the description adds concrete behavior: validating eligible receipts, submitting one Merkle-root publication and one claim transaction per batch, and requiring host/user confirmation policy. It also explains bounded execution, which is valuable beyond the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four dense sentences with no filler. Each sentence earns its place: usage trigger, parameter bounds, transaction behavior, and alternative routing. It is front-loaded and easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with two self-describing parameters and no output schema, the description covers trigger conditions, exclusions, batching semantics, transaction details, confirmation responsibility, and sibling differentiation. No critical operational gap remains for an agent deciding whether and how to invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with defaults and bounds already documented, but the description adds operational meaning: batchSize represents eligible receipts per batch, maxBatches bounds total settlement work, and the per-batch transaction count clarifies the effect of each parameter. This goes beyond the schema's basic descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the operation as settling all eligible local receipts and submitting Base transactions per batch, making the tool's scope explicit. It also distinguishes itself from settle_ai_rewards, so an agent can tell them apart without opening the sibling schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states a precise trigger condition ('claim my AIPOU' or 'settle all pending AIPOU'), explicitly says not to use it for a status check, and names settle_ai_rewards as the alternative for a single limited batch. This gives clear when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv0.1.3
    • Changedbegin_ai_task4 fields changed
      • addedInput schema / properties / client / description
        Added value: +"Host client or agent identifier that starts this task session, from 1 through 64 characters."
      • addedInput schema / properties / model / description
        Added value: +"Provider model identifier used for this task, from 1 through 128 characters."
      • addedInput schema / properties / provider / description
        Added value: +"AI provider name for this task session, from 1 through 64 characters."
      • addedInput schema / properties / taskHash / description
        Added value: +"32-byte hash of the task description; never send the raw prompt or task text."
    • Changedexport_ai_receipts1 field changed
      • addedInput schema / properties / wallet / description
        Added value: +"Optional 20-byte farming wallet address filter. Omit it to export every locally stored receipt."
    • Changedsettle_ai_rewards1 field changed
      • addedInput schema / properties / maxReceipts / description
        Added value: +"Maximum eligible receipts to include in this one settlement batch, from 1 through 100; defaults to 25."
    • Changedsettle_all_ai_rewards2 fields changed
      • addedInput schema / properties / batchSize / description
        Added value: +"Eligible receipts per settlement batch, from 1 through 100; defaults to 100."
      • addedInput schema / properties / maxBatches / description
        Added value: +"Maximum settlement batches to submit in this call, from 1 through 50; defaults to 20."
  2. 8 tool updatesv0.1.1
    • Addedbegin_ai_task
    • Changedcomplete_ai_task11 fields changed
      • addedInput schema / properties / durationSeconds / description
        Added value: +"Task duration in whole seconds from 0 through 86,400."
      • addedInput schema / properties / inputTokens / description
        Added value: +"Non-negative input-token count for this task, capped at 10,000,000."
      • addedInput schema / properties / nonce / description
        Added value: +"Unique 32-byte nonce returned by begin_ai_task for this exact task."
      • removedInput schema / properties / outputHash / $ref
        Removed value: -"#/properties/nonce"
      • addedInput schema / properties / outputHash / description
        Added value: +"SHA-256-style 32-byte hash of the task output; never send the raw output."
      • addedInput schema / properties / outputHash / pattern
        Added value: +"^0x[a-fA-F0-9]{64}$"
      • addedInput schema / properties / outputHash / type
        Added value: +"string"
      • addedInput schema / properties / outputTokens / description
        Added value: +"Non-negative output-token count for this task, capped at 10,000,000."
      • addedInput schema / properties / providerEvidence / description
        Added value: +"Optional provider-signed evidence. Omit it for a client-signed receipt."
      • addedInput schema / properties / providerEvidence / properties / keyId / description
        Added value: +"Configured provider-verification key identifier, between 1 and 128 characters."
      • addedInput schema / properties / providerEvidence / properties / signature / description
        Added value: +"Provider signature over the canonical evidence payload; invalid evidence fails closed."
    • Addedcreate_paybox_work_link
    • Addedcreate_technocore_work_link
    • Changedestimate_ai_reward3 fields changed
      • addedInput schema / properties / durationSeconds / description
        Added value: +"Task duration in whole seconds from 0 through 86,400."
      • addedInput schema / properties / inputTokens / description
        Added value: +"Non-negative input-token count for this task, capped at 10,000,000."
      • addedInput schema / properties / outputTokens / description
        Added value: +"Non-negative output-token count for this task, capped at 10,000,000."
    • Addedexport_ai_receipts
    • Addedsettle_ai_rewards
    • Addedsettle_all_ai_rewards
  3. 5 tool updatesv0.1.0
    • First observedcomplete_ai_task
    • First observedestimate_ai_reward
    • First observedget_aipou_contract
    • First observedget_aipou_identity
    • First observedget_aipou_status

TDQS

A4.6/5.0

Scored across 11 tools

Disambiguation5/5

Each tool has a distinct, clearly defined role: task lifecycle (begin, complete, estimate), settlement (settle one batch vs all), linking (Paybox vs Technocore), and read/utility (status, contract, identity, export). No two tools could be easily confused; even the two settlement tools are explicitly differentiated by scope and usage conditions.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with clear, domain-specific verbs (begin, complete, estimate, export, create, settle, get) and nouns (ai_task, ai_reward, paybox_work_link, aipou_status). The only slight variation is 'settle_all_ai_rewards' vs 'settle_ai_rewards', which is logical and still follows the pattern.

Tool Count5/5

With 11 tools, the set is well-scoped and neither sparse nor bloated. Each tool covers a meaningful operation in the AI task farming and settlement workflow, from task initiation to reward claiming, without redundancy.

Completeness5/5

The domain of AI proof-of-work reward management is fully covered: task creation, completion, estimation, settlement (both single-batch and all), receipt export, external linking, and read-only status/contract/identity queries. There are no obvious missing operations; the lifecycle is closed from start to finish.

Maintenance

ActivityActive
ResponsivenessWithin a week

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    AI-agent observability server whose distinguishing feature is a SHA-256 hash-chained, tamper-evident audit log with chain verification and signed export. Works with Claude Desktop, Cursor, and any MCP client.
    22
    2 npm
    23
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI agents to create cryptographically verifiable receipts of their delegated work, with capabilities for multi-party approval and offline verification.
    11
    47 npm
    Apache 2.0
  • F
    license
    Not graded
    quality
    C
    maintenance
    Cryptographically anchored, tamper-evident evidence receipts for AI agents — verified run receipts, existence-at-time proofs, and cited answers from an anchored public record. Remote MCP with proof-gated settlement; attests existence and integrity, never truth.
    -