Skip to main content
Glama

M2M Sentinel SDK & MCP Server

Official multi-language client library, Model Context Protocol (MCP) server, and Coinbase AgentKit ActionProvider for M2M Sentinel β€” deterministic EVM bytecode capability observations and common-proxy resolution for autonomous applications operating on Base. Callers own transaction policy.

npm version PyPI version License: MIT Smithery


⚑ 1. Model Context Protocol (MCP) Server

Connect M2M Sentinel directly to Claude Desktop, Cursor, Windsurf, or any MCP-compliant LLM agent.

Option A: 1-Click via Smithery

npx -y @smithery/cli mcp add M2M-Sentinel/m2m-sentinel-sdk --client claude

Option B: Local Stdio (claude_desktop_config.json)

{
  "mcpServers": {
    "m2m-sentinel": {
      "command": "npx",
      "args": ["-y", "m2m-sentinel-sdk"],
      "env": {
        "M2M_SENTINEL_API_KEY": ""
      }
    }
  }
}

Option C: Remote Streamable HTTP

  • Current MCP endpoint: https://api.m2msentinel.com/mcp

  • Legacy HTTP+SSE compatibility: https://api.m2msentinel.com/sse with messages at https://api.m2msentinel.com/messages


Related MCP server: agentradar

πŸ€– 2. Coinbase AgentKit Integration

import { AgentKit } from "@coinbase/agentkit";
import { m2mSentinelActionProvider } from "m2m-sentinel-sdk";

const agentKit = await AgentKit.from({
  walletProvider,
  actionProviders: [
    m2mSentinelActionProvider({
      apiKey: process.env.M2M_SENTINEL_API_KEY
    })
  ]
});

πŸ“¦ 3. JavaScript / TypeScript Client

npm install m2m-sentinel-sdk
const { M2MSentinelClient } = require('m2m-sentinel-sdk');

const client = new M2MSentinelClient();

async function main() {
  const audit = await client.auditContract('0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913');
  console.log('Proxy Detected:', audit.audit.proxyResolution.isProxy);
  console.log('Proxy Target:', audit.audit.proxyResolution.targetAddress);
  console.log('Capabilities:', audit.audit.verdict.executableCapabilities);
  console.log('Evidence:', audit.audit.dissection.capabilities);
}

main().catch(console.error);

πŸ›‘οΈ Base Account wallet_sendCalls Guard

The public SDK includes guardWalletSendCalls, a customer-side execution-identity boundary for Base Account / EIP-5792 batches. It preflights the anchor call and evaluates its caller policy before scheduling any remaining call, then pins remaining calls to the first trusted block identity in waves of at most four. Each settled wave is validated and policy-checked in ascending request-index order before a later wave starts; a failure or rejection stops later scheduling. The original detached request is forwarded only after all checks pass. It does not sign, broadcast, custody funds, infer inner UserOperation semantics, or make a safety claim. See examples/base_account_paymaster_guard.js for a no-network fixture.


🐍 4. Python Client

pip install m2m-sentinel
from m2m_sentinel import M2MSentinelClient

client = M2MSentinelClient()
audit = client.audit_contract("0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913")
print("Proxy detected:", audit["audit"]["proxyResolution"]["isProxy"])
print("Proxy target:", audit["audit"]["proxyResolution"].get("targetAddress"))
print("Capabilities:", audit["audit"]["verdict"]["executableCapabilities"])
print("Evidence:", audit["audit"]["dissection"]["capabilities"])

Transaction-specific preflight example

The public repository includes a standalone, mock-only transaction boundary example at examples/transaction_preflight.js. From this repository root, run:

node examples/transaction_preflight.js

It observes one caller-supplied Base transaction, passes the observation to a caller-owned policy, and reaches only a mock signing/send callback. It refuses to continue on unverified evidence, unresolved execution, an observation mismatch, or a missing Diamond selector mapping. It never signs or sends a transaction; optional live mode uses only a caller-supplied API-key header and remains the caller's responsibility.


πŸ’³ 5. Autonomous x402 Micropayments (Headless M2M)

import { x402SignerClient } from "m2m-sentinel-sdk";

const client = new x402SignerClient({
  walletSigner: myAgentWallet,
  baseUrl: "https://api.m2msentinel.com"
});

const result = await client.request("/v1/audit/0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913");

πŸ“œ License

MIT License. Copyright (c) 2026 M2M Sentinel.

Available Tools

12 tools
audit_contractD

Alias for m2m_audit_contract.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYes

TDQS

D1.7/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of disclosing behavior. It discloses nothing about side effects, permissions, return values, or operational risks, and merely redirecting to an equally undescribed sibling does not provide transparency.

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

Conciseness3/5

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

The description is very short and front-loaded, with no redundant wording. However, the brevity is achieved by omitting substantive information, so it is not a model of effective conciseness.

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

Completeness1/5

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

For a 1-parameter tool with no annotations and no output schema, the description is extremely incomplete. It does not explain what an audit is, what contract address means, what outcome to expect, or how this tool differs from its siblings.

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

Parameters1/5

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

Schema description coverage is 0% and the description adds no meaning to the required 'address' parameter. The agent is left without any explanation of what the address should be, what format it requires, or how it affects the audit behavior.

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

Purpose2/5

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

The description only says 'Alias for m2m_audit_contract' and does not state what the tool actually does. It names a sibling relation rather than a verb, resource, or outcome, so an agent cannot determine the tool's function from the description alone.

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

Usage Guidelines2/5

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

There is no guidance about when to use audit_contract versus any of its siblings, including m2m_audit_contract itself. The alias implies equivalence but offers no selection criteria, prerequisites, or exclusions.

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

get_capability_scoreB

Return the static capability coverage index and provenance for a Base contract. This is not a safety score.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYes

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It adds useful context by specifying the result is 'static' and includes 'provenance,' implying no dynamic on-chain analysis is performed and that the output is traceable to a source. However, it omits side-effect disclosure, network constraints (Base mainnet vs. testnet), and error behavior for invalid or non-contract addresses.

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 short sentences with the primary action front-loaded and zero filler words. The clarifying second sentence 'This is not a safety score' earns its place by reducing the risk of mis-selection against the audit siblings. Every word contributes meaning.

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 tool is simple (one required parameter), but with no output schema, the description should clarify what the returned index looks like and what 'provenance' means as a data structure. It provides no error-case context and no indication of the output scale or format, leaving an agent to guess at result interpretation. For a single-parameter tool the gaps are moderate rather than severe.

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 0%, so the description must compensate for the undocumented 'address' parameter. The phrase 'for a Base contract' adds the crucial semantic that the address must be a contract on Base, not an EOA or a contract on another chain. It stops short of specifying address format, checksum requirements, or whether the contract must be previously indexed or verified.

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

Purpose4/5

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

The description names a specific verb ('Return') and a specific resource ('static capability coverage index and provenance for a Base contract'), so an agent knows what the tool produces. The negative clause 'This is not a safety score' helps differentiate it from the audit-oriented siblings like audit_contract and m2m_audit_contract. However, 'capability coverage index' is never defined, leaving some ambiguity about what exactly is being measured.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this tool versus any of the eleven siblings. The only directional hint is the negation 'This is not a safety score,' which tells an agent what this tool is not for, but does not say which alternative to pick when a safety score is needed. No conditions, prerequisites, or routing logic are provided.

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

get_dex_metricsC

Alias for m2m_get_dex_liquidity.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.2/5.0
Behavior1/5

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

With no annotations, the description carries the full burden of behavioral disclosure. Calling this tool an alias reveals nothing about side effects, read-only status, rate limits, or data returned. It provides zero behavioral context.

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

Conciseness4/5

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

The description is a single concise sentence with no waste and directly states the alias relationship. However, its brevity contributes to the lack of substantive content, though the dimension rewards efficient expression.

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

Completeness1/5

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

with no annotations, no output schema, and no param explanations, the description must itself provide enough to call the tool correctly. It only points to a sibling noname, without describing what data is returned, how to call it, or any behavioral expectations. This is entirely inadequate on its own.

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 takes zero parameters, and the schema is empty. Per the rubric, a tool with no parameters has a baseline of 4; no further param documentation is needed.

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

Purpose2/5

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

The description only states 'Alias for m2m_get_dex_liquidity.' This identifies a relationship to a sibling tool but does not explain what the tool actually does. An agent must infer the behavior from the sibling's name, which is vague and indirect.

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

Usage Guidelines2/5

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

No guidance is given about when to use this tool versus the canonical sibling. The alias relationship implies interchangeability, but the description does not explicitly state conditions or contexts. There is no mention of alternatives or exclusions.

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

get_gas_feesB

Alias for m2m_get_gas_metrics.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description carries the full disclosure burden, but it only says 'Alias for m2m_get_gas_metrics.' This implies behavioral equivalence to another tool but gives no direct information about side effects, return values, availability, or safety. It is minimally informative but not self-contained.

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 a single short sentence that says exactly what is necessary for an alias tool: which canonical tool it maps to. There is no filler, and the key information is front-loaded.

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?

For a zero-parameter alias with no output schema, the description is adequate as a pointer to m2m_get_gas_metrics. However, it does not describe what the tool returns or what behavior the agent should expect, leaving the agent dependent on the canonical tool's documentation.

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 the schema already indicates an empty properties object. The description adds no parameter meaning, but none is needed; the zero-parameter baseline of 4 applies.

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

Purpose4/5

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

The description explicitly states the tool is an alias for m2m_get_gas_metrics, which tells an agent exactly which sibling tool provides the real behavior. This is more informative than a tautology, though it still relies on the canonical tool's definition for the precise get-gas-fees semantics.

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

Usage Guidelines3/5

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

The alias relationship implicitly tells the agent to use this tool interchangeably with m2m_get_gas_metrics. However, it does not explicitly state when to choose this alias over other sibling tools or when not to use it.

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

get_token_priceD

Alias for m2m_get_token_price.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYes

TDQS

D1.7/5.0
Behavior1/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It provides zero context about side effects, read-only behavior, rate limits, or error casesβ€”only an alias reference.

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

Conciseness2/5

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

The description is extremely short, but this is under-specification rather than effective conciseness. The single phrase 'Alias for m2m_get_token_price' does not provide enough substance to be considered well-structured.

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

Completeness2/5

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

For a single-parameter tool with no annotations or output schema, the description is still incomplete. It fails to state the tool's actual function, parameter semantics, or return behavior, and relies entirely on the agent knowing what m2m_get_token_price does.

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

Parameters1/5

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

Schema description coverage is 0% and the description adds no meaning to the 'symbol' parameter. The agent receives no guidance on what values are valid, what the symbol represents, or how it should be formatted.

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

Purpose2/5

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

The description does not state a verb or resource; it only identifies the tool as an alias for m2m_get_token_price. This is close to tautological, forcing the agent to infer purpose from the name or sibling tools.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The alias statement implies equivalence to m2m_get_token_price, but no conditions, exclusions, or alternative routing are described.

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

get_whale_signalsC

Alias for m2m_get_whale_signals.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.4/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Alias for m2m_get_whale_signals' reveals no side effects, safety profile, return behavior, or operational characteristics, making it completely opaque behaviorally.

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

Conciseness3/5

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

The description is extremely short and contains no redundant wording, which supports conciseness. However, it is under-specified to the point of sacrificing clarity, so the brevity is not fully appropriate.

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

Completeness2/5

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

Given no annotations, no output schema, and no behavioral detail, an alias-only description is not complete for an agent trying to understand what the tool returns or how it behaves. It may be sufficient only if the canonical sibling is thoroughly documented elsewhere, but that cannot be assumed from the provided context.

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 the schema coverage is 100%, so parameter semantics are effectively moot. The description does not need to compensate for any parameter documentation gaps.

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

Purpose3/5

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

The description identifies the tool as an alias for m2m_get_whale_signals, which distinguishes it from other siblings by pointing to the canonical endpoint. However, it does not state what the tool actually does beyond the implicit name, leaving the meaning of 'whale signals' undefined.

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

Usage Guidelines2/5

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

No guidance is given about when to use this alias versus m2m_get_whale_signals or any other sibling. The equivalence is implied but never stated as a selection rule, and there is no mention of preferred usage or alternatives.

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

m2m_audit_contractA

Return selected static bytecode capability observations, common proxy resolution, limitations, and provenance for a Base contract. This is factual capability observation, not a safety or exploitability guarantee.

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesBase contract address (0x...)

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and does a good job: it discloses that results are 'selected' and therefore not exhaustive, proxy resolution is only 'common', and it explicitly disclaims safety or exploitability guarantees. It does not discuss rate limits, authentication, or side effects, but the tool is clearly a read-only observation query.

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 compact and front-loaded: the first sentence states the action and output categories, and the second sentence adds a critical caveat. Every clause earns its place with no redundancy or filler.

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 single-parameter tool with no output schema and no annotations, the description communicates what will be returned (capability observations, proxy resolution, limitations, provenance) and what the return does not imply (safety). It omits exact output field names, but the categorical description is sufficient for correct invocation and expectation-setting.

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%: the one parameter, address, is described as a Base contract address with a 0x... format. The tool description adds no new semantic detail about the parameter itself but reinforces the Base contract context. This is the expected baseline when the schema already documents the parameter fully.

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 ('Return') and names a concrete resource: selected static bytecode capability observations, common proxy resolution, limitations, and provenance for a Base contract. It also separates itself from a generic security audit by stating it is not a safety or exploitability guarantee, which distinguishes it from sibling audit_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 gives clear context: it is for Base contracts and provides factual capability observations, not safety verdicts. The explicit 'not a safety or exploitability guarantee' sentence tells the agent when not to rely on it, though it does not name a specific alternative tool.

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

m2m_get_dex_liquidityC

Return tracked Base DEX pool reserve and liquidity metrics.

ParametersJSON Schema
NameRequiredDescriptionDefault
pairNo

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. 'Return' implies a read operation, and 'tracked' hints at data scope, but the description does not explain whether the pair parameter is required, how missing or unknown pairs are handled, or what data freshness or authentication constraints apply.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no filler. It loses a point for the ambiguous 'tracked' qualifier, but overall it is compact and easy to parse.

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

Completeness2/5

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

There is no output schema, no annotations, and the description does not cover the parameter format or return shape. For a one-parameter tool this is still below the minimum viable level because the 'pair' input is entirely undocumented.

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

Parameters1/5

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

The only parameter, 'pair', has 0% schema description coverage, and the tool description never mentions it. The agent is left without knowing whether 'pair' is an address, a token symbol pair like 'WETH/USDC', or a pool name.

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

Purpose4/5

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

The description names a concrete verb ('Return'), a specific resource ('tracked Base DEX pool reserve and liquidity metrics'), and a domain (Base DEX pools). It is reasonably clear, though it does not differentiate itself from the sibling 'get_dex_metrics' tool by name.

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

Usage Guidelines2/5

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

There is no guidance about when to use this tool instead of related tools such as get_dex_metrics or m2m_get_token_price. No context, exclusions, or prerequisites are provided, so the agent must infer the appropriate use case from the name alone.

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

m2m_get_gas_metricsB

Return sourced Base gas fee metrics and execution recommendations.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does communicate that this is a read-only 'Return' operation and adds useful context with 'sourced' and 'execution recommendations.' However, it does not clarify what execution recommendations mean, data freshness, or any caveats about the response.

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

Conciseness4/5

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

The description is a single sentence with no wasted words; 'sourced' and 'execution recommendations' add meaningful specificity. It is well-structured and front-loaded, though it could have been expanded with sibling differentiation without becoming verbose.

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?

For a zero-parameter tool, the description is mostly adequate and tells the agent what the tool returns. However, because there is no output schema, the description should explain more about the shape of the response and what 'execution recommendations' actually are. It also leaves the relationship to get_gas_fees unexplained.

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 input schema has no parameters and schema description coverage is effectively 100% because the schema is empty. With zero parameters, the description does not need to document parameter semantics, so the baseline of 4 is appropriate.

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

Purpose4/5

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

The description states a concrete action ('Return') and a specific resource ('sourced Base gas fee metrics and execution recommendations'), so it is not a tautology and clearly indicates what the tool does. However, it does not explicitly distinguish itself from the sibling tool get_gas_fees, leaving some ambiguity about how it differs.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives such as get_gas_fees or m2m_get_token_price. It does not mention any conditions, exclusions, or scenarios where a different tool should be preferred, so an agent has no explicit routing information.

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

m2m_get_service_statusB

Return real-time operational status of M2M Sentinel upstream RPC and persistence rails.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description must carry the full behavioral disclosure burden. It states that it returns real-time status, implying a read operation, but doesn't mention safety, external calls, or potential errors. It also omits details on the return format and the meaning of 'rails,' leaving ambiguity about the tool's behavior.

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?

A single, clear sentence that gets straight to the point. No redundancy or filler, and the core action and target are front-loaded.

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

Completeness2/5

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

The description is minimal and doesn't describe the response format or the meaning of 'rails.' For a status tool without an output schema, an agent needs guidance on what to expect. The terminology may confuse agents unfamiliar with the domain, making it insufficient for a fully informed invocation.

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 takes no parameters, so the description doesn't need to elaborate on input semantics. The empty schema is fully self-explanatory, and the description correctly omits parameter details. Baseline for zero parameters is 4.

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 ('Return') and clearly identifies the resource: real-time operational status of M2M Sentinel upstream RPC and persistence rails. This distinguishes it from sibling tools that retrieve financial metrics (e.g., m2m_get_token_price) by focusing on service health.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. It doesn't mention scenarios such as checking service health or excluding other tools. While the unique purpose reduces the need for differentiation, the description fails to explicitly state when to invoke it.

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

m2m_get_token_priceA

Return sourced Base DEX token price observation for allowlisted assets (e.g. USDC, WETH).

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolYesToken symbol (USDC, WETH)

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description does the work: it discloses that prices are 'sourced,' that the result is an 'observation,' and that only 'allowlisted assets' are supported. However, it does not mention failure behavior for non-allowlisted symbols, price freshness, return format, or any rate-limit restrictions, leaving some behavioral uncertainty.

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 a single, well-structured sentence that front-loads the key facts: what is returned, where prices come from, and the asset limitation. There is no redundant or vague 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?

For a one-parameter read-only tool, the description covers the main invocation details and asset scope. However, there is no output schema and no explicit clarification of how m2m_get_token_price differs from the sibling get_token_price, nor what shape the returned price observation takes. These gaps prevent a higher score.

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 symbol parameter already includes examples (USDC, WETH). The description adds useful context by noting the assets must be allowlisted and the price is from Base DEX, but it does not add details such as case sensitivity or formatting beyond what the schema provides.

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 clear action ('Return'), a specific resource ('sourced Base DEX token price observation'), and a scope ('allowlisted assets') with concrete examples. Mentioning 'Base DEX' and 'allowlisted' differentiates it from the generic sibling get_token_price.

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 clear context: this tool is for price observations of allowlisted tokens on Base DEX, with USDC and WETH as examples. It does not explicitly state when not to use it or name an alternative, but the Base DEX and allowlist qualifiers make the intended use obvious.

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

m2m_get_whale_signalsC

Return tracked Base whale transfer signals.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral transparency. It indicates a read-only action ('Return') but does not disclose data source, freshness, pagination, limits, or any potential side effects.

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 a single concise sentence with no unnecessary words or repetition. It is front-loaded with the action and core object.

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

Completeness2/5

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

Even for a simple read operation, the description omits crucial context such as what fields a signal contains, how 'tracked' is defined, and how the 'limit' parameter behaves. Without an output schema, this leaves the caller guessing about the response.

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

Parameters1/5

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

The only parameter 'limit' is described only as a number in the schema, with no explanation of its meaning or effect. The description does not mention it at all, leaving the parameter's semantics entirely unclear.

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 a specific verb ('Return') and a specific resource ('tracked Base whale transfer signals'), making the tool's purpose unambiguous. It is also easily distinguished from sibling tools like gas metrics or token price.

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

Usage Guidelines2/5

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

The description gives no explicit guidance on when to use this tool versus alternatives. It only states what the tool does, not in which scenarios it should be preferred or avoided.

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. 12 tool updatesv1.2.5
    • First observedaudit_contract
    • First observedget_capability_score
    • First observedget_dex_metrics
    • First observedget_gas_fees
    • First observedget_token_price
    • First observedget_whale_signals
    • First observedm2m_audit_contract
    • First observedm2m_get_dex_liquidity
    • First observedm2m_get_gas_metrics
    • First observedm2m_get_service_status
    • First observedm2m_get_token_price
    • First observedm2m_get_whale_signals

TDQS

C2.7/5.0

Scored across 12 tools

Disambiguation2/5

The core m2m_ tools are distinct, but six aliases duplicate half the surface, and get_capability_score overlaps with m2m_audit_contract, making selection ambiguous. An agent could easily be unsure whether to call the m2m_ version or its alias, or whether capability_score replaces audit.

Naming Consistency3/5

The primary m2m_get_* pattern is consistent and readable, but the aliases break it with names like get_gas_fees, get_dex_metrics, and audit_contract. The mixed prefixed and non-prefixed naming is still understandable but lacks a single predictable convention.

Tool Count4/5

Twelve tools is within an acceptable range, but six of them are aliases, leaving only seven unique operations. The count feels slightly inflated by redundancy rather than genuinely well-scoped.

Completeness4/5

The tool set covers the core Sentinel domains: contract audit observations, gas, price, DEX liquidity, whale signals, and service status. Minor gaps exist, such as batch or historical variants, but the primary monitoring and audit surface is reasonably complete.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    basescope is a read-only onchain safety layer for AI agents: it answers "is this token/contract/approval safe?" on Base and EVM chains (honeypot/rug checks, risky-approval detection, verified-source lookup, balances, ENS/Basenames, gas, prices), with no private keys and no required API keys.
    13
    7 npm
    1
    MIT