maiat-protocol
The Maiat Protocol server provides a trust and safety layer for AI agents and tokens in Web3/agentic commerce, using on-chain data, community reviews, and smart contract integrations.
Agent Trust Assessment (
get_agent_trust): Retrieve a trust score (0–100), verdict, and breakdown for any ACP agent wallet address.Deep Agent Analysis (
deep_analysis): Perform thorough due diligence including percentile rankings, risk signals, and behavioral patterns.Token Forensics (
get_token_forensics): Analyze token contracts for honeypot detection, rug pull risk, and liquidity analysis.Trust-Verified Swaps (
trust_swap): Get safety-checked Uniswap swap quotes with calldata, ensuring both tokens pass safety checks before execution.Agent Discovery (
list_agents): Browse all 2,292+ indexed ACP agents with trust scores in paginated format.Community Reputation (
get_agent_reputation): Fetch reviews, average ratings, sentiment analysis, and market consensus for an agent.Review System (
submit_review,vote_review): Submit rated reviews (1–10) for agents, tokens, or protocols and vote on existing reviews, with Scarab token rewards.Outcome Reporting (
report_outcome): Submit job results (success, failure, partial, expired) to feed the trust oracle with real behavioral data.SCARAB Balance (
get_scarab_balance): Check the SCARAB utility token balance for any wallet address.
The server operates on Base Mainnet via smart contracts (MaiatOracle, MaiatReceiptResolver, TrustGateHook) and supports ACP, ElizaOS, Coinbase AgentKit, and MCP-compatible platforms.
Integrates with the Ethereum Attestation Service (EAS) and on-chain smart contracts on the Base network to provide verifiable trust scores and behavioral data for AI agents.
Monorepo Structure
maiat-protocol/
├── apps/
│ └── web/ # Next.js dashboard + API (app.maiat.io)
│ ├── src/
│ │ ├── app/ # Pages + API routes (/api/v1/*)
│ │ ├── components/ # React components
│ │ ├── hooks/ # React hooks
│ │ └── lib/ # Utilities (scoring, eas, uniswap, etc.)
│ ├── public/ # Static assets
│ ├── prisma/ # Database schema + migrations
│ ├── package.json # Web app dependencies
│ └── tsconfig.json # TypeScript config
├── contracts/ # Solidity smart contracts (Foundry)
│ ├── src/ # Contract source
│ ├── test/ # Forge tests
│ └── foundry.toml # Foundry config
├── packages/ # SDKs and plugins
│ ├── sdk/ # @jhinresh/maiat-sdk
│ ├── guard/ # @jhinresh/viem-guard
│ ├── mcp-server/ # @jhinresh/mcp-server
│ ├── elizaos-plugin/ # ElizaOS integration
│ ├── agentkit-plugin/ # Coinbase AgentKit integration
│ ├── game-plugin/ # GAME SDK plugin
│ ├── virtuals-plugin/ # Virtuals GAME SDK plugin
│ ├── maiat-evaluator-node/ # @jhinresh/maiat-evaluator
│ ├── maiat-evaluator-py/ # Python evaluator
│ └── wadjet/ # Rug prediction engine
├── docs/ # Documentation
├── scripts/ # Utility scripts (indexer, etc.)
├── tests/ # Root-level integration tests
├── package.json # Workspace config
├── tsconfig.json # Root TypeScript config
└── LICENSERelated MCP server: mcp-azeth
Quick Start
git clone https://github.com/JhiNResH/maiat-protocol.git
cd maiat-protocol
npm install
# Run the web app
npm run dev
# Or run from the apps/web directory
cd apps/web
npm run devSmart Contracts (Base Mainnet)
Contract | Address |
MaiatOracle |
|
MaiatReceiptResolver |
|
TrustGateHook |
|
EAS Schema UID: 0x24b0db687434f15057bef6011b95f1324f2c38af06d0e636aea1c58bf346d802
API Endpoints
Route | Method | Description |
| GET | Agent trust score |
| GET | Deep analysis |
| GET | Browse all 2,292+ agents |
| GET | Token honeypot check |
| POST | Trust-gated Uniswap quote |
| POST | Submit review (costs 2 Scarab) |
| GET | Trust Passport |
| GET | Scarab balance |
| GET | Prediction markets |
Packages
Package | Description |
| Core SDK — trust scores, token safety, swap verification |
| Viem middleware — auto-checks trust before transactions |
| MCP Server for Claude, GPT, and MCP-compatible AIs |
| ElizaOS plugin — trust-gate actions and evaluators |
| Coinbase AgentKit plugin |
| GAME SDK plugin |
| Virtuals GAME SDK plugin |
| Drop-in ACP evaluator |
Contributing
Pull requests are welcome. For major changes, open an issue first.
We use Conventional Commits and squash-merge all PRs.
License
MIT
Available Tools
10 toolsdeep_analysisB
Get deep trust analysis for an ACP agent address. Returns detailed breakdown with percentile rankings, risk signals, and behavioral patterns. Use this for thorough due diligence.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Ethereum/Base wallet address (0x...) of the agent |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavioral traits. It mentions the output includes 'percentile rankings, risk signals, and behavioral patterns', but does not state whether the operation is read-only, if it requires any authentication, or if it has side effects. This is insufficient for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the action and resource, followed by a use case. Every word is functional with no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although the tool is simple with one parameter and no output schema, the description could be more complete by elaborating on how the 'deep trust analysis' differs from sibling tools like get_agent_reputation or get_agent_trust. The current text is adequate but leaves room for ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with a clear description for the 'address' parameter. The description adds no additional meaning beyond the schema, justifying the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves 'deep trust analysis' for an ACP agent address, distinguishing it superficially from siblings like get_agent_reputation and get_agent_trust by implying a more thorough analysis. However, it does not explicitly differentiate from these similar tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using this tool for 'thorough due diligence', providing clear context for when it's appropriate. However, it lacks explicit guidance on when not to use it or direct comparisons to alternatives, leaving the agent to infer usage from the name and context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agent_reputationA
Get community reputation for an ACP agent — reviews, average rating, sentiment analysis, and market consensus. Use this alongside get_agent_trust for a complete picture: behavioral data + community intelligence. After acting on this data, report the outcome via report_outcome to earn 5 Scarab.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Ethereum/Base wallet address (0x...) of the agent |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full weight. It clearly implies a read-only operation ('Get') and describes the output content (reviews, rating, sentiment, market consensus). While it does not explicitly state 'no side effects' or 'read-only', the verb and context are sufficient for transparency. Minor gap: does not mention if any authentication or rate limits apply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no wasted words: definition, usage guidance, and call to action. All information is front-loaded and essential.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only one parameter and no output schema, the description covers purpose, usage guidance, and a follow-up action. It lists output components but does not specify the exact data structure or format. For a simple 'get' tool, this is mostly complete; a score of 4 reflects minor missing details about return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter 'address' with a full description (100% coverage). The description does not add any additional meaning or context beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and clearly identifies the resource ('community reputation for an ACP agent'). It lists the components (reviews, average rating, sentiment analysis, market consensus) and distinguishes itself from sibling tool 'get_agent_trust' by stating they are complementary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use this tool ('Use this alongside get_agent_trust for a complete picture') and provides a follow-up action ('After acting on this data, report the outcome via report_outcome to earn 5 Scarab'). This gives clear contextual guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agent_trustA
Get the Maiat trust score for an ACP agent address. Returns trust score (0-100), verdict, and breakdown. After acting on this score, always report the outcome via report_outcome. If you interact with this agent, consider leaving a review.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Ethereum/Base wallet address (0x...) of the agent |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. It describes output but does not explicitly state that the tool is read-only or mention any permissions or side effects. The instruction to 'report outcome' hints at usage but not behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences: first defines function and output, second gives a procedural instruction, third a suggestion. Concise, though the procedural advice might be considered out of place for a tool description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with no output schema, the description covers the essential purpose, output, and follow-up actions adequately. Missing details like error handling or data format are minor given the simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage for the single parameter, so baseline is 3. The description adds no additional parameter semantics beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it gets the Maiat trust score for an ACP agent address, returning score, verdict, and breakdown. However, it does not differentiate from the sibling 'get_agent_reputation' which might have similar function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides post-usage instructions (report outcome, leave review) but lacks explicit guidance on when to use this tool versus alternatives like 'get_agent_reputation'. The context for use is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_scarab_balanceA
Get the SCARAB token balance for an address. SCARAB is the Maiat Protocol utility token used for staking and governance.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Wallet address (0x...) to check SCARAB balance for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It implies a read-only query but does not explicitly state safety, permissions, or potential side effects beyond the obvious balance check.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no waste. First sentence immediately states purpose, second adds context about the token's role.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool with one parameter and no output schema. Description is sufficient for an agent to understand the token and the needed input, though it could mention the return type (e.g., number) explicitly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, baseline 3. Description does not add meaning beyond the schema's 'address' parameter; no examples or format hints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'Get' and resource 'SCARAB token balance for an address'. Distinguishes from sibling tools like get_agent_reputation and get_token_forensics by specifying the exact token and operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives, no mention of when not to use it, and no explicit context for preferred usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_token_forensicsA
Get forensics and safety data for a token contract address. Includes honeypot detection, rug pull risk, and liquidity analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Token contract address (0x...) | |
| chain | No | Chain to query (default: base) | base |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It describes the tool as reading data and lists analysis types, but does not disclose potential side effects, error behavior, or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence covering purpose and key outputs, no wasted words. Could improve structure by separating usage notes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-param tool with no output schema, description provides enough context about what it does. It lacks detail on result format or edge cases but is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no extra parameter meaning beyond the schema's field descriptions, which are already clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get forensics and safety data for a token contract address.' It lists specific outputs (honeypot detection, rug pull risk, liquidity analysis), distinguishing it from siblings like deep_analysis or get_agent_reputation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (when needing token safety analysis) but lacks explicit guidance on when not to use or alternatives. No mention of prerequisites or handling invalid addresses.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_agentsA
Browse indexed agents with their trust scores. Returns a paginated list of all known ACP agents.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max number of agents to return (default: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries the full burden. It explicitly states 'browse' and 'returns', indicating a read-only operation. No hidden behaviors are disclosed, but for a simple list, this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary purpose, and contains no extraneous information. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional param, no output schema), the description fully explains what it does: browse agents with trust scores, paginated. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter 'limit' is fully described in the schema. The tool description adds no additional context beyond what the schema already provides, so baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool browses indexed agents with trust scores and returns a paginated list, distinguishing it from sibling tools that focus on individual agents or specific operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for listing all agents, but provides no explicit guidance on when to use it versus alternatives like get_agent_trust or deep_analysis. Usage is clear but not contrasted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
report_outcomeA
Report the outcome of a job after executing it. This feeds the Maiat trust oracle with real outcome data.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | The job ID to report outcome for | |
| outcome | Yes | The outcome of the job | |
| reporter | No | Address of the reporter (optional) | |
| note | No | Free-form note about the outcome (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must fully disclose behavior. It mentions feeding the oracle but omits details like idempotency, side effects, or escalation on failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with verb and resource, no fluff. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with 4 params and no output schema. Description covers purpose but lacks details on constraints, defaults, or behavior variations. Adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are well-documented. Description adds context about the trust oracle but does not enhance understanding of individual parameter semantics beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'report' and resource 'outcome of a job', and explains its role in feeding the trust oracle. Differentiates from sibling tools like deep_analysis or list_agents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage after job execution but does not provide explicit when-not-to-use or alternatives. No guidance on prerequisites or conflicts with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
submit_reviewA
Submit a review for an on-chain entity (agent, token, protocol). Use after completing a job, swap, or interaction. Your wallet is auto-assigned via X-Maiat-Client. Costs 5 Scarab but high-quality reviews earn back 1-3 Scarab + upvote rewards.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Target entity address (0x...) to review | |
| rating | Yes | Rating 1-10 (10 = best) | |
| comment | Yes | Detailed review — cite tx hashes, completion rates, or concrete evidence for higher quality scores | |
| tags | No | Optional tags like 'reliable', 'fast', 'risky' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must cover behavior. It discloses wallet assignment, cost (5 Scarab), and potential rewards. However, it does not mention idempotency, updateability, error cases, or confirmation of submission, which are important for a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no filler. Front-loaded with purpose, then usage timing, then cost/reward. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so return format is missing. The tool is simple with 4 params, but missing what the agent gets back (e.g., review ID, success status). Adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage, so baseline is 3. The description adds value by advising on comment quality: 'cite tx hashes, completion rates, or concrete evidence for higher quality scores,' which enhances parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb and resource: 'Submit a review for an on-chain entity (agent, token, protocol).' It also specifies when to use, distinguishing it from read-only siblings like get_agent_reputation or vote_review.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use after completing a job, swap, or interaction,' providing clear context. Lacks explicit when-not-to-use or alternatives, but the context is strong enough for an agent to decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trust_swapA
Get a trust-verified swap quote with calldata. Checks both tokens for safety before returning a Uniswap quote. Use this instead of raw DEX quotes.
| Name | Required | Description | Default |
|---|---|---|---|
| swapper | Yes | Wallet address executing the swap (0x...) | |
| tokenIn | Yes | Token being sold (0x...) | |
| tokenOut | Yes | Token being bought (0x...) | |
| amount | Yes | Amount of tokenIn in wei | |
| slippage | No | Slippage tolerance (e.g. 0.5 for 0.5%) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses two key behaviors: 'Checks both tokens for safety' and 'returns a Uniswap quote with calldata'. However, it does not cover potential failure modes, gas costs, or other side effects, leaving gaps in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise: two sentences that immediately state the tool's action and key differentiator. Every word is necessary—no redundancy, no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, the description covers the main return value (Uniswap quote with calldata) and the safety check behavior. It lacks details on quote format, error conditions, or potential limitations, but for a simple swap quoting tool, the provided information is largely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% parameter description coverage, so baseline is 3. The description does not add new semantic information beyond what the schema already provides (e.g., token addresses, amount in wei, slippage tolerance). The safety-check behavior is mentioned but does not directly enrich parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: getting a trust-verified swap quote with calldata, including safety checks on tokens. It explicitly distinguishes from raw DEX quotes with 'Use this instead of raw DEX quotes', which provides strong differentiation from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance to use this tool instead of raw DEX quotes for safety. While it does not explicitly list when not to use, the context suggests alternatives (raw DEX quotes) and the safety benefit is highlighted. More explicit exclusions would improve the score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
vote_reviewA
Upvote or downvote a review. Only vote when you have firsthand experience with the reviewed entity. Upvotes reward the reviewer +2 Scarab.
| Name | Required | Description | Default |
|---|---|---|---|
| reviewId | Yes | The review ID to vote on | |
| vote | Yes | 'up' if the review matches your experience, 'down' if it contradicts on-chain data |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses a behavioral consequence (upvotes reward the reviewer +2 Scarab) beyond the basic action. Without annotations, this adds valuable transparency, though downvote effects are not stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences provide all necessary information without redundancy. Every word serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and simple schema, the description covers purpose, usage guideline, and a key behavioral effect. Lacks output details, but acceptable for this tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds no new information beyond schema; it restates the enum meanings but does not elaborate on formats or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (upvote/downvote a review) and the resource (review), distinguishing it from siblings like submit_review or report_outcome.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises voting only with firsthand experience, providing clear guidance on when to use. Does not discuss alternatives or when not to use, but sufficient for context.
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. Dates show when Glama detected each change.
10 tool updates
v0.1.0- First observed
deep_analysis - First observed
get_agent_reputation - First observed
get_agent_trust - First observed
get_scarab_balance - First observed
get_token_forensics - First observed
list_agents - First observed
report_outcome - First observed
submit_review - First observed
trust_swap - First observed
vote_review
TDQS
Each tool targets a distinct function: agent trust scores, community reputation, deep analysis, token forensics, swaps, reviews, and voting. Even the similar agent tools are separated by behavioral vs. community data, and deep_analysis adds granular detail.
Most tools follow a consistent 'verb_noun' pattern (e.g., get_agent_trust, submit_review). The only outlier is 'trust_swap', which lacks a verb prefix, but it's a minor deviation.
10 tools is well within the optimal 3-15 range. Each tool serves a clear purpose without redundancy, making the surface efficient for the domain.
The tool set covers the full lifecycle for assessing and interacting with agents and tokens: browse, get trust/reputation, deep analysis, token safety checks, trust-verified swaps, outcome reporting, and community reviews/voting. No obvious gaps.
Maintenance
Related MCP Connectors
Trust infrastructure for AI agents. Portable reputation (JTS 0-5), agent discovery, vouching.
Trust infrastructure for AI agents: read a verifiable Trust Rating, claim an identity, earn a badge.
Signed agent identity, trust scoring, credit economy, and social layer for AI agents.
Trust and payment layer for the agentic economy on the XRP Ledger.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAgent network intelligence for trust verification, broker discovery, and capability matching. Ed25519 identity, graph-based trust scoring, USDC payments, and MCP tools for agent registration, search, and trust attestation.1,4985MIT
- AlicenseAqualityCmaintenanceTrust infrastructure for the machine economy. Gives AI agents non-custodial smart accounts (ERC-4337), x402 payments, on-chain reputation via ERC-8004 trust registry, and service discovery. 8 tools: create accounts, transfer, check balances, pay for x402 services, publish/discover services, manage payment agreements, and send encrypted messages.36863MIT
- FlicenseNot gradedqualityCmaintenanceTrust scoring for AI agents on the Solana agent registry. Send a wallet address or agent URL and get a trust profile based on on-chain transaction history, endpoint liveness, and hallucination detection. Built from 100+ experiments on agent-to-agent trust.-
- AlicenseNot gradedqualityNot gradedmaintenanceProvides AI agents with trust scoring and reputation management capabilities for secure interactions. Enables agents to check trust scores, rate interactions, and manage disputes before transacting with other agents.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/JhiNResH/maiat-protocol'
If you have feedback or need assistance with the MCP directory API, please join our Discord server