← Back to search
com.blockscout/mcp-server

com.blockscout/mcp-server

MCP server for Blockscout

Status
Healthy
Score
75.3
Transport
streamable-http
Tools
16

Production readiness

Verdict
Needs remediation
Current validation evidence shows operational or discovery gaps that should be fixed first.
Critical alerts
0
Production verdicts degrade quickly when critical alerts are active.

Evidence confidence

Confidence score
65.0
Based on 20 recent validations, 26 captured checks, and validation age of 605.5 hours.
Live checks captured
26
More direct checks increase trust in the current verdict.
Validation age
605.5h
Lower age means fresher evidence.

Recommended for

Claude Desktop
Claude Desktop is marked compatible with score 100.
Smithery
Smithery is marked compatible with score 80.
Generic Streamable HTTP
Generic Streamable HTTP is marked compatible with score 100.

Client readiness verdicts

Ready for ChatGPT custom connector
Partial
OpenAI connectors expect OAuth for remote server auth.; Dynamic client registration materially improves connector setup.
Confidence: medium (65.0)
Evidence provenance
Winner: live_validation
Supporting sources: live_validation, history, server_card
Disagreements: none
  • initializeOK
  • tools_listOK
  • transport_compliance_probeWarning
  • step_up_auth_probeMissing
  • connector_replay_probeOK — Frozen tool snapshots must survive refresh.
  • request_association_probeMissing — Roots, sampling, and elicitation should stay request-scoped.
Ready for Claude remote MCP
Ready
No major blockers detected.
Confidence: medium (65.0)
Evidence provenance
Winner: live_validation
Supporting sources: live_validation, history, server_card
Disagreements: none
  • initializeOK
  • tools_listOK
  • transport_compliance_probeWarning
Unsafe for write actions
Yes
High-risk write, exec, or destructive tools need stronger auth and confirmation semantics.
Confidence: medium (65.0)
Evidence provenance
Winner: live_validation
Supporting sources: live_validation, history
Disagreements: none
  • action_safety_probeError
Snapshot churn risk
Low
No material tool-surface churn detected in the latest comparison.
Confidence: medium (65.0)
Evidence provenance
Winner: history
Supporting sources: history, live_validation
Disagreements: none
  • tool_snapshot_probeOK
  • connector_replay_probeOK

Why not ready by client

ChatGPT custom connector
Partial
Remediation checklist
  • No explicit blockers recorded.
Claude remote MCP
Ready
Remediation checklist
  • No explicit blockers recorded.
Write-safe publishing
Blocked
Remediation checklist
  • No explicit blockers recorded.

Verdict traces

Production verdict
Needs remediation
Current validation evidence shows operational or discovery gaps that should be fixed first.
Confidence: medium (65.0)
Winning source: live_validation
Triggering alerts
  • validation_stale • medium • Validation evidence is stale
Client verdict trace table
VerdictStatusChecksWinning sourceConflicts
openai_connectors Partial initialize, tools_list, transport_compliance_probe, step_up_auth_probe, connector_replay_probe, request_association_probe live_validation none
claude_desktop Ready initialize, tools_list, transport_compliance_probe live_validation none
unsafe_for_write_actions Yes action_safety_probe live_validation none
snapshot_churn_risk Low tool_snapshot_probe, connector_replay_probe history none

Publishability policy profiles

ChatGPT custom connector publishability
Caution
OpenAI connectors expect OAuth for remote server auth.; Dynamic client registration materially improves connector setup.
  • Search Fetch Only: No
  • Write Actions Present: Yes
  • Oauth Configured: No
  • Admin Refresh Required: No
  • Safe For Company Knowledge: No
  • Safe For Messages Api Remote Mcp: No
Claude remote MCP publishability
Ready
Transport, discovery, and remote-MCP assumptions are satisfied.
  • Search Fetch Only: No
  • Write Actions Present: Yes
  • Oauth Configured: No
  • Admin Refresh Required: No
  • Safe For Company Knowledge: No
  • Safe For Messages Api Remote Mcp: No

Compatibility fixtures

ChatGPT custom connector fixture
Degraded
OpenAI connectors expect OAuth for remote server auth.; Dynamic client registration materially improves connector setup.
  • remote_http_endpoint: Passes
  • oauth_discovery: Degraded
  • frozen_tool_snapshot_refresh: Passes
  • request_association: Passes
Anthropic remote MCP fixture
Passes
Remote MCP transport and discovery assumptions are satisfied.
  • remote_transport: Passes
  • tool_discovery: Passes
  • auth_connect: Passes
  • safe_write_review: Degraded

Authenticated validation sessions

Latest profile
remote_mcp
Authenticated session used
Public score isolation
Preview endpoint
/v1/verify
CI preview endpoint
/v1/ci/preview

Public server reputation

Validation success 7d
n/a
Validation success 30d
1.0
Mean time to recover
n/a
Breaking diffs 30d
0
Registry drift frequency 30d
0
Snapshot changes 30d
0

Incident & change feed

TimestampEventDetails
Apr 09, 2026 12:26:01 AM UTC Latest validation: healthy Score 75.3 with status healthy.

Capabilities

Use-case taxonomy
development database search web

Security posture

Tools analyzed
16
High-risk tools
1
Destructive tools
0
Exec tools
1
Egress tools
1
Secret tools
8
Bulk-access tools
5
Risk distribution
low:4, medium:11, critical:1

Tool capability & risk inventory

ToolCapabilitiesRiskFindingsNotes
__unlock_blockchain_analysis__ secrets Medium secret material access No explicit safeguard hints detected.
get_block_info read network Medium none No explicit safeguard hints detected.
get_block_number read Low none No explicit safeguard hints detected.
get_address_by_ens_name read Low none No explicit safeguard hints detected.
get_transactions_by_address read write secrets export Medium bulk data access secret material access Safeguards hinted in metadata.
get_token_transfers_by_address read secrets export Medium bulk data access secret material access Safeguards hinted in metadata.
lookup_token_by_symbol read secrets Medium secret material access No explicit safeguard hints detected.
get_contract_abi read Low none No explicit safeguard hints detected.
inspect_contract_code read filesystem Low none No explicit safeguard hints detected.
read_contract read write Medium none No explicit safeguard hints detected.
get_address_info read secrets Medium secret material access No explicit safeguard hints detected.
get_tokens_by_address read secrets export Medium bulk data access secret material access Safeguards hinted in metadata.
nft_tokens_by_address read network secrets export Medium bulk data access secret material access Safeguards hinted in metadata.
get_transaction_info read write network secrets Medium secret material access No explicit safeguard hints detected.
get_chains_list read network Medium none No explicit safeguard hints detected.
direct_api_call read write exec network filesystem export Critical command execution arbitrary network egress bulk data access freeform input surface filesystem mutation Safeguards hinted in metadata.

Write-action governance

Governance status
Error
Safe to publish
Auth boundary
public_or_unclear
Blast radius
High
High-risk tools
1
Confirmation signals
none
Safeguard count
5

Status detail: 1 high-risk tool(s), 1 exec-capable tool(s) are exposed without a clear auth boundary; 5 safeguard(s) and 0 confirmation signal(s) detected.

ToolRiskFlagsSafeguards
direct_api_call Critical command execution arbitrary network egress bulk data access freeform input surface filesystem mutation yes

Action-controls diff

Snapshot changed
no
Disabled-by-default candidates
none
Manual review candidates
none
New actions
ActionRiskFlags
No newly added actions.
Changed actions
ActionChange typesRisk
No materially changed actions.

Why this score?

Access & Protocol
32/44
Connectivity, auth, and transport expectations for common clients.
Interface Quality
38/56
How well the tool/resource interface communicates and behaves under automation.
Security Posture
27/36
How safely the exposed tool surface handles destructive actions, egress, execution, secrets, and risky inputs.
Reliability & Trust
23/24
Operational stability, consistency, and trustworthiness over time.
Discovery & Governance
21.5/28
How well the server is documented, listed, and governed in public registries.
Adoption & Market
6/8
Adoption clues and public evidence that the server is intended for external use.

Algorithmic score breakdown

Auth Operability
2/4
Measures whether auth discovery and protected access behave predictably for clients.
Error Contract Quality
0/4
Grades machine-readable error structure, status alignment, and remediation hints.
Rate-Limit Semantics
2/4
Checks whether quota/throttle responses are deterministic and automation-friendly.
Schema Completeness
3/4
Completeness of tool descriptions, parameter docs, examples, and schema shape.
Backward Compatibility
4/4
Stability score across tool schema/name drift relative to prior validations.
SLO Health
3/4
Availability, latency, and burst-failure profile across recent validation history.
Security Hygiene
3/4
HTTPS posture, endpoint hygiene, and response-surface hardening checks.
Task Success
4/4
Can an agent reliably initialize, enumerate tools, and execute core MCP flows?
Trust Confidence
4/4
Confidence-adjusted reliability score that penalizes low evidence volume.
Abuse/Noise Resilience
4/4
How well the server preserves core behavior in the presence of noisy traffic patterns.
Prompt Contract
2/4
Quality of prompt metadata, argument shape, and prompt discoverability for clients.
Resource Contract
2/4
How completely resources and resource templates describe URIs, types, and usage shape.
Discovery Metadata
3/4
Homepage, docs, icon, repository, support, and license coverage for directory consumers.
Registry Consistency
2/4
Agreement between stored registry metadata, live server-card data, and current validation output.
Installability
4/4
How cleanly a real client can connect, initialize, enumerate tools, and proceed through auth.
Session Semantics
4/4
Determinism and state behavior across repeated MCP calls, including sticky-session surprises.
Tool Surface Design
4/4
Naming clarity, schema ergonomics, and parameter complexity across the tool surface.
Result Shape Stability
4/4
Stability of declared output schemas across validations, with penalties for drift or missing shapes.
OAuth Interop
3/4
Depth and client compatibility of OAuth/OIDC metadata beyond the minimal protected-resource check.
Recovery Semantics
0/4
Whether failures include actionable machine-readable next steps such as retry or upgrade guidance.
Maintenance Signal
4/4
Versioning, update recency, and historical validation cadence that indicate active stewardship.
Adoption Signal
3/4
Directory presence and distribution clues that suggest the server is intended for external use.
Freshness Confidence
4/4
Confidence that recent validations are current enough and dense enough to trust operationally.
Transport Fidelity
4/4
Whether declared transport metadata matches the observed endpoint behavior and response formats.
Spec Recency
2/4
How close the server’s claimed MCP protocol version is to the latest known public revision.
Session Resume
3/4
Whether Streamable HTTP session identifiers and resumed requests behave cleanly for real clients.
Step-Up Auth
3/4
Whether OAuth metadata and WWW-Authenticate challenges support granular, incremental consent instead of broad upfront scopes.
Transport Compliance
2/4
Checks session headers, protocol-version enforcement, session teardown, and expired-session behavior.
Utility Coverage
2/4
Signals support for completions, pagination, and task-oriented utility surfaces that larger clients increasingly expect.
Advanced Capability Coverage
3/4
Coverage of newer MCP surfaces like roots, sampling, elicitation, structured output, and related metadata.
Connector Publishability
3/4
How ready the server looks for client catalogs and managed connector programs.
Tool Snapshot Churn
4/4
Stability of the tool surface across recent validations, including add/remove and output-shape drift.
Connector Replay
4/4
Whether a previously published frozen connector snapshot would remain backward compatible after the latest tool refresh.
Request Association
3/4
Whether roots, sampling, and elicitation appear tied to active client requests instead of arriving unsolicited on idle sessions.
Interactive Flow Safety
3/4
Whether prompts and docs steer users toward safe auth flows instead of pasting secrets directly.
Action Safety
2/4
Risk-weighted view of destructive, exec, egress, and confirmation semantics across the tool surface.
Official Registry Presence
4/4
Whether the server appears directly or indirectly in the official MCP registry.
Provenance Divergence
4/4
How closely official registry metadata, the live server card, and public repo/package signals agree with each other.
Safety Transparency
2/4
Clarity of docs, auth disclosure, support links, and other trust signals visible to integrators.
Tool Capability Clarity
4/4
How clearly the tool surface communicates whether each action reads, writes, deletes, executes, or exports data.
Destructive Operation Safety
3/4
Penalizes delete/revoke/destroy style tools unless auth and safeguards reduce blast radius.
Egress / SSRF Resilience
3/4
Assesses arbitrary URL fetch, crawl, webhook, and remote-request exposure on the tool surface.
Execution / Sandbox Safety
2/4
Evaluates shell, code, script, and command-execution exposure and whether that surface appears contained.
Data Exfiltration Resilience
4/4
Assesses export, dump, backup, and bulk-read behavior against the surrounding auth and safeguard signals.
Least Privilege Scope
2/4
Rewards scoped auth metadata and penalizes broad or missing scopes around privileged tools.
Secret Handling Hygiene
4/4
Assesses secret-bearing tools, token leakage risk, and whether the public surface avoids obvious secret exposure.
Supply Chain Signal
2.5/4
Public metadata signal for repository, changelog, license, versioning, and recency that supports supply-chain trust.
Input Sanitization Safety
3/4
Penalizes risky freeform string inputs when schemas do not constrain URLs, code, paths, queries, or templates.
Tool Namespace Clarity
4/4
Measures naming uniqueness and ambiguity across the tool namespace to reduce collision and confusion risk.

Compatibility profiles

OpenAI Connectors
77.8
partial
OpenAI connectors expect OAuth for remote server auth.; Dynamic client registration materially improves connector setup.
Connector URL: https://mcp.blockscout.com/mcp
# No OAuth metadata detected.
# Server: com.blockscout/mcp-server
Claude Desktop
100.0
compatible
No major blockers detected.
{
  "mcpServers": {
    "mcp-server": {
      "command": "npx",
      "args": ["mcp-remote", "https://mcp.blockscout.com/mcp"]
    }
  }
}
Smithery
80.0
compatible
Machine-readable failure semantics should be present.
smithery mcp add "https://mcp.blockscout.com/mcp"
Generic Streamable HTTP
100.0
compatible
No major blockers detected.
curl -sS https://mcp.blockscout.com/mcp -H 'content-type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"mcp-verify","version":"0.1.0"}}}'

Actionable remediation

SeverityRemediationWhy it mattersRecommended action
High Add confirmation and dry-run semantics for risky actions High-risk write, delete, exec, or egress tools should communicate safeguards clearly. Inspect the latest validation evidence and resolve the client-visible regression.
Playbook
  • Inspect the latest validation evidence.
  • Resolve the highest-severity client-facing gap first.
  • Revalidate and confirm the score and verdict improve.
High Align session and protocol behavior with Streamable HTTP expectations Clients increasingly rely on MCP-Protocol-Version, session teardown, and expired-session semantics. Align MCP-Protocol-Version, MCP-Session-Id, DELETE teardown, and expired-session handling with the transport spec.
Playbook
  • Return `Mcp-Session-Id` and `Mcp-Protocol-Version` headers consistently on streamable HTTP responses.
  • Honor `DELETE` session teardown and return `404` when a deleted session is reused.
  • Reject invalid protocol-version headers with `400 Bad Request`.
High Associate roots, sampling, and elicitation with active client requests Modern MCP guidance expects roots, sampling, and elicitation traffic to be tied to an active client request instead of arriving unsolicited on idle sessions. Inspect the latest validation evidence and resolve the client-visible regression.
Playbook
  • Inspect the latest validation evidence.
  • Resolve the highest-severity client-facing gap first.
  • Revalidate and confirm the score and verdict improve.
High Expose /.well-known/oauth-protected-resource Without a protected-resource document, OAuth clients cannot discover auth requirements reliably. Serve /.well-known/oauth-protected-resource and point it at your authorization server metadata.
Playbook
  • Serve `/.well-known/oauth-protected-resource` from the same host as the MCP endpoint.
  • Point it at the authorization server metadata URL.
  • Confirm clients receive consistent auth hints before tool execution.
High Publish OAuth authorization-server metadata Clients need authorization-server metadata to discover issuer, endpoints, and DCR support. Publish /.well-known/oauth-authorization-server from your issuer and include registration_endpoint when supported.
Playbook
  • Publish `/.well-known/oauth-authorization-server` from the issuer.
  • Add `registration_endpoint` if DCR is supported.
  • Verify issuer, authorization, token, and jwks metadata are all reachable.
High Publish a complete server card Missing or incomplete server-card metadata weakens discovery, documentation, and trust signals. Serve /.well-known/mcp/server-card.json and include tools, prompts/resources, homepage, and support links.
Playbook
  • Publish `/.well-known/mcp/server-card.json`.
  • Include homepage, repository, support, tools, prompts/resources, and auth metadata.
  • Revalidate the server after publishing the card.
High Stop asking users to paste secrets directly Public MCP servers should prefer OAuth or browser-based auth guidance over in-band secret collection. Inspect the latest validation evidence and resolve the client-visible regression.
Playbook
  • Inspect the latest validation evidence.
  • Resolve the highest-severity client-facing gap first.
  • Revalidate and confirm the score and verdict improve.
Medium Adopt a current MCP protocol revision Older protocol revisions reduce compatibility with newer clients and registry programs. Inspect the latest validation evidence and resolve the client-visible regression.
Playbook
  • Inspect the latest validation evidence.
  • Resolve the highest-severity client-facing gap first.
  • Revalidate and confirm the score and verdict improve.
Medium Close connector-publishing gaps Connector catalogs care about protocol recency, session behavior, auth clarity, and tool-surface stability. Inspect the latest validation evidence and resolve the client-visible regression.
Playbook
  • Inspect the latest validation evidence.
  • Resolve the highest-severity client-facing gap first.
  • Revalidate and confirm the score and verdict improve.
Medium Document minimal scopes and return cleaner auth challenges Modern clients expect granular scopes and step-up auth signals such as WWW-Authenticate scope hints. Return granular scopes and WWW-Authenticate challenge hints instead of forcing overly broad auth upfront.
Playbook
  • Advertise the narrowest viable scopes in OAuth metadata.
  • Return `WWW-Authenticate` challenges with scope or insufficient-scope hints when additional consent is needed.
  • Revalidate with both public discovery and auth-required flows.
Medium Publish OpenID configuration OIDC metadata improves token validation and client compatibility. Expose /.well-known/openid-configuration with issuer, jwks_uri, and supported grants.
Playbook
  • Inspect the latest validation evidence.
  • Resolve the highest-severity client-facing gap first.
  • Revalidate and confirm the score and verdict improve.
Medium Respond to validation evidence is stale Latest validation is 605.5 hours old. Trigger a fresh validation run or increase scheduler priority for this server.
Playbook
  • Queue a new validation run now.
  • Inspect whether the scheduler priority should be raised for this server.
  • Do not rely on stale evidence for production decisions.
Medium Support resumable HTTP sessions cleanly Modern MCP clients increasingly expect resumable session behavior on streamable HTTP transports. Inspect the latest validation evidence and resolve the client-visible regression.
Playbook
  • Inspect the latest validation evidence.
  • Resolve the highest-severity client-facing gap first.
  • Revalidate and confirm the score and verdict improve.
Low Expose modern utility surfaces like completions, pagination, or tasks Utility coverage improves interoperability with larger clients and long-lived agent workflows. Expose completions, pagination, and task metadata where supported so larger clients can plan and resume work safely.
Playbook
  • Advertise `completions`, pagination cursors, and `tasks` only when they are actually supported.
  • Return `nextCursor` on large list operations when pagination is available.
  • Document task support and whether it requires step-up auth.
Low Publish newer MCP capability signals Roots, sampling, elicitation, structured outputs, and related metadata improve client understanding and ranking. Inspect the latest validation evidence and resolve the client-visible regression.
Playbook
  • Inspect the latest validation evidence.
  • Resolve the highest-severity client-facing gap first.
  • Revalidate and confirm the score and verdict improve.

Point loss breakdown

ComponentCurrentPoints missing
Recovery Semantics 0/4 -4.0
Error Contract 0/4 -4.0
Utility Coverage 2/4 -2.0
Transport Compliance 2/4 -2.0
Spec Recency 2/4 -2.0
Safety Transparency 2/4 -2.0
Resource Contract 2/4 -2.0
Registry Consistency 2/4 -2.0
Rate Limit Semantics 2/4 -2.0
Prompt Contract 2/4 -2.0
Least Privilege Scope 2/4 -2.0
Execution Sandbox Safety 2/4 -2.0

Validation diff

Score delta
0
Summary changed
no
Tool delta
0
Prompt delta
0
Auth mode changed
no
Write surface expanded
no
Protocol regressed
no
Registry drift changed
no

Regressed checks: none

Improved checks: none

ComponentPreviousLatestDelta
No component deltas between the latest two runs.

Tool snapshot diff & changelog

Snapshot changed
no
Added tools
none
Removed tools
none
Required-argument changes
ToolAdded required argsRemoved required args
No required-argument changes detected.
Output-schema drift
ToolPrevious propertiesLatest properties
No output-schema drift detected.

Connector replay

Status
OK
Backward compatible
Would break after refresh
Added tools
none
Removed tools
none
Additive output changes
none
Required-argument replay breaks
ToolAdded required argsRemoved required args
No required-argument replay breaks detected.
Output-schema replay breaks
ToolRemoved propertiesAdded properties
No output-schema replay breaks detected.

Transport compliance drilldown

Probe status
Warning
Transport
streamable-http
Session header
no
Protocol header
no
Bad protocol response
400
DELETE teardown
n/a
Expired session retry
n/a
Last-Event-ID visible
no

Issues: missing_session_id, missing_protocol_header

Request association

Status
Missing
Advertised capabilities
none
Observed idle methods
none
Violating methods
none
Probe HTTP status
n/a
Issues
none

Utility coverage

Probe status
Missing
Completions
not detected
Completion probe target: none
Pagination
not detected
No nextCursor evidence.
Tasks
Missing
Advertised: no

Benchmark tasks

Benchmark taskStatusEvidence
Discover tools Passes
  • initializeOK
  • tools_listOK
Read-only fetch flow Degraded
  • resource_readMissing
  • read_only_tool_surfaceOK
OAuth-required connect Degraded
  • oauth_protected_resourceError
  • step_up_auth_probeMissing
Safe write flow with confirmation Likely to fail
  • action_safety_probeError

Registry & provenance divergence

Probe status
OK
Direct official match
yes
Drift fields
none
FieldRegistryLive server card
Titlen/an/a
Versionn/an/a
Homepagen/an/a

Active alerts

Aliases & registry graph

IdentifierSourceCanonicalScore
com.blockscout/mcp-server official_registry yes 75.26
blockscout/mcp-server smithery_registry no 45.62

Alias consolidation

Canonical identifier
com.blockscout/mcp-server
Duplicate aliases
1
Registry sources
official_registry smithery_registry
Source disagreements
FieldWhat differsObserved values
Registry source Multiple registries or registry sync paths claim this same canonical server. official_registry smithery_registry
Registry identifier Different registry-specific identifiers resolve to the same canonical server record here. com.blockscout/mcp-server smithery_registry:ca071d62-e937-40e0-a596-2d2d153d9399

Install snippets

Openai Connectors
Connector URL: https://mcp.blockscout.com/mcp
# No OAuth metadata detected.
# Server: com.blockscout/mcp-server
Claude Desktop
{
  "mcpServers": {
    "mcp-server": {
      "command": "npx",
      "args": ["mcp-remote", "https://mcp.blockscout.com/mcp"]
    }
  }
}
Smithery
smithery mcp add "https://mcp.blockscout.com/mcp"
Generic Http
curl -sS https://mcp.blockscout.com/mcp -H 'content-type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"mcp-verify","version":"0.1.0"}}}'

Agent access & tool surface

Live server tools
__unlock_blockchain_analysis__ get_block_info get_block_number get_address_by_ens_name get_transactions_by_address get_token_transfers_by_address lookup_token_by_symbol get_contract_abi
Observed from the latest live validation against https://mcp.blockscout.com/mcp. This is the target server surface, not Verify's own inspection tools.
Live capability counts
16 tools • 0 prompts • 0 resources
Counts come from the latest tools/list, prompts/list, and resources/list checks.
Inspect with Verify
search_servers recommend_servers get_server_report compare_servers
Use Verify itself to search, recommend, compare, and fetch the full report for com.blockscout/mcp-server.
Direct machine links

Claims & monitoring

Server ownership

No verified maintainer claim recorded.

Watch subscriptions
0
Teams: none

Alert routing

Active watches
0
Generic webhooks
0
Slack routes
0
Teams routes
0
Email routes
0
WatchTeamChannelsMinimum severity
No active watch destinations.

Maintainer analytics

Validation Run Count
20
Average Latency Ms
2922.35
Healthy Run Ratio Recent
1.0
Registry Presence Count
2
Active Alert Count
1
Watcher Count
0
Verified Claim
False
Taxonomy Tags
development, database, search, web
Score Trend
75.26, 75.26, 75.26, 75.26, 75.26, 75.26, 75.26, 75.26, 75.26, 75.26
Remediation Count
15
High Risk Tool Count
1
Destructive Tool Count
0
Exec Tool Count
1

Maintainer response quality

Score
16.67
Verified claim
Support contact
Changelog present
Incident notes present
Tool changes documented
Annotation history
Annotation count
0

Maintainer annotations

No maintainer annotations have been recorded yet.

Maintainer rebuttals & expected behavior

No maintainer rebuttals or expected-behavior overrides are recorded yet.

Latest validation evidence

Latest summary
Healthy
Validation profile
remote_mcp
Started
Apr 09, 2026 12:25:58 AM UTC
Latency
2966.7 ms

Failures

Checks

CheckStatusLatencyEvidence
action_safety_probe Error n/a 1 high-risk, 1 exec-capable tool(s); no clear auth boundary; safeguards=5; confirmation=none.
advanced_capabilities_probe Warning n/a Only 3 capability signal(s): prompts, resources, structured outputs.
connector_publishability_probe Warning n/a Publishability blockers: action safety, server card.
connector_replay_probe OK n/a Backward compatible with no breaking tool-surface changes.
determinism_probe OK 424.5 ms Check completed
initialize OK 289.7 ms Protocol 2025-03-26
interactive_flow_probe Missing n/a Check completed
oauth_authorization_server Missing n/a no authorization server
oauth_protected_resource Error 156.0 ms Client error '404 Not Found' for url 'https://mcp.blockscout.com/.well-known/oauth-protected-resource' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404
official_registry_probe OK n/a Check completed
openid_configuration Missing n/a no authorization server
probe_noise_resilience OK 181.7 ms Fetched https://mcp.blockscout.com/robots.txt
prompt_get Missing n/a not advertised
prompts_list OK 169.4 ms 0 prompt(s) exposed
protocol_version_probe Warning n/a Claims 2025-03-26; 2 release(s) behind 2025-11-25.
provenance_divergence_probe OK n/a Check completed
request_association_probe Missing n/a No request-association capabilities were advertised.
resource_read Missing n/a not advertised
resources_list OK 206.3 ms 0 resource item(s) exposed
server_card Error 198.7 ms Client error '404 Not Found' for url 'https://mcp.blockscout.com/.well-known/mcp/server-card.json' For more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404
session_resume_probe Warning n/a no session id
step_up_auth_probe Missing n/a No OAuth or incremental-scope signals detected.
tool_snapshot_probe OK n/a Check completed
tools_list OK 442.8 ms 16 tool(s) exposed
transport_compliance_probe Warning 164.8 ms Issues: missing session id, missing protocol header (bad protocol=400).
utility_coverage_probe Missing 154.7 ms No completions evidence; no pagination evidence; tasks missing.

Raw evidence view

Show raw JSON evidence
{
  "checks": {
    "action_safety_probe": {
      "details": {
        "auth_present": false,
        "confirmation_signals": [],
        "safeguard_count": 5,
        "summary": {
          "bulk_access_tools": 5,
          "capability_distribution": {
            "exec": 1,
            "export": 5,
            "filesystem": 2,
            "network": 5,
            "read": 15,
            "secrets": 8,
            "write": 4
          },
          "destructive_tools": 0,
          "egress_tools": 1,
          "exec_tools": 1,
          "high_risk_tools": 1,
          "risk_distribution": {
            "critical": 1,
            "high": 0,
            "low": 4,
            "medium": 11
          },
          "secret_tools": 8,
          "tool_count": 16
        }
      },
      "latency_ms": null,
      "status": "error"
    },
    "advanced_capabilities_probe": {
      "details": {
        "capabilities": {
          "completions": false,
          "elicitation": false,
          "prompts": true,
          "resource_links": false,
          "resources": true,
          "roots": false,
          "sampling": false,
          "structured_outputs": true
        },
        "enabled": [
          "prompts",
          "resources",
          "structured_outputs"
        ],
        "enabled_count": 3,
        "initialize_capability_keys": [
          "experimental",
          "prompts",
          "resources",
          "tools"
        ]
      },
      "latency_ms": null,
      "status": "warning"
    },
    "connector_publishability_probe": {
      "details": {
        "blockers": [
          "action_safety",
          "server_card"
        ],
        "criteria": {
          "action_safety": false,
          "auth_flow": true,
          "connector_replay": true,
          "initialize": true,
          "protocol_version": true,
          "remote_transport": true,
          "request_association": true,
          "server_card": false,
          "session_resume": true,
          "step_up_auth": true,
          "tool_surface": true,
          "tools_list": true,
          "transport_compliance": true
        },
        "high_risk_tools": 1,
        "tool_count": 16,
        "transport": "streamable-http"
      },
      "latency_ms": null,
      "status": "warning"
    },
    "connector_replay_probe": {
      "details": {
        "added_tools": [],
        "additive_output_changes": [],
        "backward_compatible": true,
        "output_breaks": [],
        "removed_tools": [],
        "required_arg_breaks": [],
        "would_break_after_refresh": false
      },
      "latency_ms": null,
      "status": "ok"
    },
    "determinism_probe": {
      "details": {
        "attempts": 2,
        "baseline_signature": "0cadb38a3479646f32194f91af371e35d7fd25c1942b5f21543f86cfe241276c",
        "errors": [],
        "matches": 2,
        "stable_ratio": 1.0,
        "successful": 2
      },
      "latency_ms": 424.51,
      "status": "ok"
    },
    "initialize": {
      "details": {
        "headers": {
          "content-type": "text/event-stream",
          "strict-transport-security": "max-age=31536000; includeSubDomains"
        },
        "http_status": 200,
        "payload": {
          "id": 1,
          "jsonrpc": "2.0",
          "result": {
            "capabilities": {
              "experimental": {},
              "prompts": {
                "listChanged": false
              },
              "resources": {
                "listChanged": false,
                "subscribe": false
              },
              "tools": {
                "listChanged": false
              }
            },
            "instructions": "\nBlockscout MCP server version: 0.15.0\n\n<error_handling_rules>\nIf you receive an error \"500 Internal Server Error\" for any tool, retry calling this tool up to 3 times \nuntil successful.\n</error_handling_rules>\n\n<chain_id_guidance>\n<rules>\nAll Blockscout API tools require a chain_id parameter:\n- If the chain ID to be used in the tools is not clear, use the tool `get_chains_list` to get chain IDs \nof all known chains.\n- If no chain is specified in the user's prompt, assume \"Ethereum Mainnet\" (chain_id: 1) as the default.\n</rules>\n<recommended_chains>\nHere is the list of IDs of most popular chains:\n  * Ethereum: 1\n  * Polygon PoS: 137\n  * Base: 8453\n  * Arbitrum One Nitro: 42161\n  * OP Mainnet: 10\n  * ZkSync Era: 324\n  * Gnosis: 100\n  * Celo: 42220\n  * Scroll: 534352\n</recommended_chains>\n</chain_id_guidance>\n\n<pagination_rules>\nPAGINATION HANDLING: When any tool response includes a 'pagination' field, this means there are additional \npages of data available. You MUST use the exact tool call provided in 'pagination.next_call' to fetch the \nnext page. The 'pagination.next_call' contains the complete tool name and all required parameters (including \nthe cursor) for the next page request.\n\nIf the user asks for comprehensive data or 'all' results, and you receive a paginated response, continue \ncalling the pagination tool calls until you have gathered all available data or reached a reasonable limit.\n</pagination_rules>\n\n<time_based_query_rules>\nTIME-BASED QUERIES: When users ask for blockchain data with time constraints (before/after/between \nspecific dates), start with transaction-level tools that support time filtering (`get_transactions_by_address`, \n`get_token_transfers_by_address`) rather than trying to filter other data types directly. Use `age_from` and \n`age_to` parameters to filter transactions by time, then retrieve associated data (logs, token transfers, etc.) \nfrom those specific transactions.\n</time_based_query_rules>\n\n<binary_search_rules>\nBINARY SEARCH FOR HISTORICAL BLOCKCHAIN DATA: Never paginate for temporal boundaries. Use binary search \nwith `age_from`/`age_to` parameters to efficiently locate specific time periods or events in blockchain history.\n\n## Pattern:\n```\nget_transactions_by_address(age_from: START, age_to: MID)\n\u251c\u2500\u2500 Results found \u2192 search earlier half: [START, MID]  \n\u2514\u2500\u2500 No results \u2192 search later half: [MID, END]\n```\n\n## Example: First transaction for vitalik.eth\n```\n1. get_transactions_by_address(age_from: \"2015-07-30\", age_to: \"2015-12-31\") \u2192 \u2713 \n2. get_transactions_by_address(age_from: \"2015-07-30\", age_to: \"2015-09-12\") \u2192 \u2717\n3. get_transactions_by_address(age_from: \"2015-09-12\", age_to: \"2015-10-03\") \u2192 \u2713\n4. get_transactions_by_address(age_from: \"2015-09-27\", age_to: \"2015-09-30\") \u2192 \u2713 \n   Found: 2015-09-28T08:24:43Z\n5. get_transactions_by_address(age_from: \"2015-07-30\", age_to: \"2015-09-28T08:24:42\") \u2192 \u2717\n   Confirmed: This is the first transaction.\n```\n\n**Result: 5 API calls instead of potentially hundreds of pagination calls.**\n</binary_search_rules>\n\n<portfolio_analysis_rules>\nPORTFOLIO BALANCE ANALYSIS: When asked to analyze a portfolio, net worth, or total assets for any address, you\nMUST check BOTH native-coin data AND ERC-20 token data. Call `get_address_info` (native coin) AND\n`get_tokens_by_address` (ERC-20 holdings) before answering. When ranking or selecting top tokens by USD value,\nyou MUST include the native coin balance (from `get_address_info`) as a candidate alongside ERC-20 holdings.\nChecking only one results in an incomplete and incorrect analysis.\n</portfolio_analysis_rules>\n\n<funds_movement_rules>\nFUNDS MOVEMENT ANALYSIS: When asked about funds movement, recent transfers, or transaction activity for any\naddress, you MUST check BOTH native-coin transfers AND ERC-20 token transfers. Call\n`get_transactions_by_address` (native coin transfers) AND `get_token_transfers_by_address` (ERC-20 transfers)\nbefore answering. Do not assume that \"transactions\" implies native coin only. Checking only one results in an\nincomplete and incorrect analysis.\n</funds_movement_rules>\n\n<data_ordering_and_resumption_rules>\nDATA ORDERING AND ANCHOR RESUMPTION: Time-ordered tools (transactions, token transfers, logs) return items in\nDESCENDING order (newest first). When resuming from an anchor item, use the anchor's block as the time boundary\nand client-side filter.\nNever skip the anchor's block.\n\nOrdering Keys (DESC):\n- get_transactions_by_address: (block_number, transaction_index, internal_transaction_index)\n- get_token_transfers_by_address: (block_number, transaction_index, token_transfer_batch_index, token_transfer_index)\n- direct_api_call (logs): (block_number, index)  # index is global within block\n\nResume Pattern:\n\u2022 For EARLIER items: age_to=anchor_block_timestamp, keep where ordering_key < anchor_key\n\u2022 For LATER items: age_from=anchor_block_timestamp, keep where ordering_key > anchor_key\n\nExample: Found transfer at (block=1000, tx_idx=5, transfer_idx=3). To find earlier transfers:\n  Query: age_to=timestamp_of_block_1000\n  Filter: keep only (block<1000) OR (block=1000 AND tx_idx<5) OR (block=1000 AND tx_idx=5 AND transfer_idx<3)\n\nCritical Notes:\n- Always compare the COMPLETE ordering key, not just block_number.\n- If the anchor is in the boundary block, filter within that block to avoid duplicates or gaps.\n</data_ordering_and_resumption_rules>\n\n<direct_call_endpoint_list>\nADVANCED API USAGE: For specialized or chain-specific data not covered by other tools,\nyou can use `direct_api_call`. This tool can call a curated list of raw Blockscout API endpoints.\n\n<common>\n<group name=\"Stats\">\n\"/stats-service/api/v1/counters\" - \"Get consolidated historical and recent-window counters\u2014totals and 24h/30m rollups for blockchain activity (transactions, accounts, contracts, verified contracts, ERC-4337 user ops), plus average block time and fee aggregates\"\n\"/api/v2/stats\" - \"Get real-time network status and market context\u2014current gas price tiers with last-update and next-update timing, network utilization, today's transactions, average block time 'now', and coin price/market cap.\"\n</group>\n<group name=\"User Operations\">\n\"/api/v2/proxy/account-abstraction/operations/{user_operation_hash}\" - \"Get details for a specific User Operation by its hash.\"\n</group>\n<group name=\"Transactions\">\n\"/api/v2/transactions/{transaction_hash}/logs\" - \"Get event logs for a specific transaction by its hash.\"\n</group>\n<group name=\"Tokens & NFTs\">\n\"/api/v2/tokens/{token_contract_address}/instances\" - \"Get all NFT instances for a given token contract address.\"\n\"/api/v2/tokens/{token_contract_address}/holders\" - \"Get a list of holders for a given token.\"\n\"/api/v2/tokens/{token_contract_address}/instances/{instance_id}\" - \"Get details for a specific NFT instance.\"\n\"/api/v2/tokens/{token_contract_address}/instances/{instance_id}/transfers\" - \"Get transfer history for a specific NFT instance.\"\n</group>\n</common>\n\n<specific>\n<chain_family name=\"Ethereum Mainnet and Gnosis\">\n\"/api/v2/addresses/{account_address}/beacon/deposits\" - \"Get Beacon Chain deposits for a specific address.\"\n\"/api/v2/blocks/{block_number}/beacon/deposits\" - \"Get Beacon Chain deposits for a specific block.\"\n\"/api/v2/addresses/{account_address}/withdrawals\" - \"Get Beacon Chain withdrawals for a specific address.\"\n\"/api/v2/blocks/{block_number}/withdrawals\" - \"Get Beacon Chain withdrawals for a specific block.\"\n</chain_family>\n<chain_family name=\"Arbitrum\">\n\"/api/v2/main-page/arbitrum/batches/latest-number\" - \"Get the latest committed batch number for Arbitrum.\"\n\"/api/v2/arbitrum/batches/{batch_number}\" - \"Get information for a specific Arbitrum batch.\"\n\"/api/v2/arbitrum/messages/to-rollup\" - \"Get L1 to L2 messages for Arbitrum.\"\n\"/api/v2/arbitrum/messages/from-rollup\" - \"Get L2 to L1 messages for Arbitrum.\"\n\"/api/v2/arbitrum/messages/withdrawals/{transaction_hash}\" - \"Get L2 to L1 messages for a specific transaction hash on Arbitrum.\"\n</chain_family>\n<chain_family name=\"Optimism\">\n\"/api/v2/optimism/batches\" - \"Get the latest committed batches for Optimism.\"\n\"/api/v2/optimism/batches/{batch_number}\" - \"Get information for a specific Optimism batch.\"\n\"/api/v2/optimism/games\" - \"Get dispute games for Optimism.\"\n\"/api/v2/optimism/deposits\" - \"Get L1 to L2 messages (deposits) for Optimism.\"\n\"/api/v2/optimism/withdrawals\" - \"Get L2 to L1 messages (withdrawals) for Optimism.\"\n</chain_family>\n<chain_family name=\"Celo\">\n\"/api/v2/celo/epochs\" - \"Get the latest finalized epochs for Celo.\"\n\"/api/v2/celo/epochs/{epoch_number}\" - \"Get information for a specific Celo epoch.\"\n\"/api/v2/celo/epochs/{epoch_number}/election-rewards/group\" - \"Get validator group rewards for a specific Celo epoch.\"\n\"/api/v2/celo/epochs/{epoch_number}/election-rewards/validator\" - \"Get validator rewards for a specific Celo epoch.\"\n\"/api/v2/celo/epochs/{epoch_number}/election-rewards/voter\" - \"Get voter rewards for a specific Celo epoch.\"\n</chain_family>\n<chain_family name=\"zkSync\">\n\"/api/v2/main-page/zksync/batches/latest-number\" - \"Get the latest committed batch number for zkSync.\"\n\"/api/v2/zksync/batches/{batch_number}\" - \"Get information for a specific zkSync batch.\"\n</chain_family>\n<chain_family name=\"zkEVM\">\n\"/api/v2/zkevm/batches/confirmed\" - \"Get the latest confirmed batches for zkEVM.\"\n\"/api/v2/zkevm/batches/{batch_number}\" - \"Get information for a specific zkEVM batch.\"\n\"/api/v2/zkevm/deposits\" - \"Get deposits for zkEVM.\"\n\"/api/v2/zkevm/withdrawals\" - \"Get withdrawals for zkEVM.\"\n</chain_family>\n<chain_family name=\"Scroll\">\n\"/api/v2/scroll/batches\" - \"Get the latest committed batches for Scroll.\"\n\"/api/v2/scroll/batches/{batch_number}\" - \"Get information for a specific Scroll batch.\"\n\"/api/v2/blocks/scroll-batch/{batch_number}\" - \"Get blocks for a specific Scroll batch.\"\n\"/api/v2/scroll/deposits\" - \"Get L1 to L2 messages (deposits) for Scroll.\"\n\"/api/v2/scroll/withdrawals\" - \"Get L2 to L1 messages (withdrawals) for Scroll.\"\n</chain_family>\n<chain_family name=\"Shibarium\">\n\"/api/v2/shibarium/deposits\" - \"Get L1 to L2 messages (deposits) for Shibarium.\"\n\"/api/v2/shibarium/withdrawals\" - \"Get L2 to L1 messages (withdrawals) for Shibarium.\"\n</chain_family>\n<chain_family name=\"Stability\">\n\"/api/v2/validators/stability\" - \"Get the list of validators for Stability.\"\n</chain_family>\n<chain_family name=\"Zilliqa\">\n\"/api/v2/validators/zilliqa\" - \"Get the list of validators for Zilliqa.\"\n\"/api/v2/validators/zilliqa/{validator_public_key}\" - \"Get information for a specific Zilliqa validator.\"\n</chain_family>\n<chain_family name=\"Redstone\">\n\"/api/v2/mud/worlds\" - \"Get a list of MUD worlds for Redstone.\"\n\"/api/v2/mud/worlds/{contract_address}/tables\" - \"Get tables for a specific MUD world on Redstone.\"\n\"/api/v2/mud/worlds/{contract_address}/tables/{table_id}/records\" - \"Get records for a specific MUD world table on Redstone.\"\n\"/api/v2/mud/worlds/{contract_address}/tables/{table_id}/records/{record_id}\" - \"Get a specific record from a MUD world table on Redstone.\"\n</chain_family>\n</specific>\n</direct_call_endpoint_list>\n",
            "protocolVersion": "2025-03-26",
            "serverInfo": {
              "name": "blockscout-mcp-server",
              "version": "1.26.0"
            }
          }
        },
        "url": "https://mcp.blockscout.com/mcp"
      },
      "latency_ms": 289.73,
      "status": "ok"
    },
    "interactive_flow_probe": {
      "details": {
        "oauth_supported": false,
        "prompt_available": false,
        "risk_hits": [],
        "safe_hits": []
      },
      "latency_ms": null,
      "status": "missing"
    },
    "oauth_authorization_server": {
      "details": {
        "reason": "no_authorization_server"
      },
      "latency_ms": null,
      "status": "missing"
    },
    "oauth_protected_resource": {
      "details": {
        "error": "Client error '404 Not Found' for url 'https://mcp.blockscout.com/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
        "url": "https://mcp.blockscout.com/.well-known/oauth-protected-resource"
      },
      "latency_ms": 155.96,
      "status": "error"
    },
    "official_registry_probe": {
      "details": {
        "direct_match": true,
        "official_peer_count": 1,
        "registry_identifier": "com.blockscout/mcp-server",
        "registry_source": "official_registry"
      },
      "latency_ms": null,
      "status": "ok"
    },
    "openid_configuration": {
      "details": {
        "reason": "no_authorization_server"
      },
      "latency_ms": null,
      "status": "missing"
    },
    "probe_noise_resilience": {
      "details": {
        "headers": {
          "content-type": "text/plain; charset=utf-8",
          "strict-transport-security": "max-age=31536000; includeSubDomains"
        },
        "http_status": 404,
        "url": "https://mcp.blockscout.com/robots.txt"
      },
      "latency_ms": 181.72,
      "status": "ok"
    },
    "prompt_get": {
      "details": {
        "reason": "not_advertised"
      },
      "latency_ms": null,
      "status": "missing"
    },
    "prompts_list": {
      "details": {
        "headers": {
          "content-type": "text/event-stream",
          "strict-transport-security": "max-age=31536000; includeSubDomains"
        },
        "http_status": 200,
        "payload": {
          "id": 3,
          "jsonrpc": "2.0",
          "result": {
            "prompts": []
          }
        },
        "url": "https://mcp.blockscout.com/mcp"
      },
      "latency_ms": 169.38,
      "status": "ok"
    },
    "protocol_version_probe": {
      "details": {
        "claimed_version": "2025-03-26",
        "lag_days": 244,
        "latest_known_version": "2025-11-25",
        "releases_behind": 2,
        "validator_protocol_version": "2025-03-26"
      },
      "latency_ms": null,
      "status": "warning"
    },
    "provenance_divergence_probe": {
      "details": {
        "direct_official_match": true,
        "drift_fields": [],
        "metadata_document_count": 2,
        "registry_homepage": null,
        "registry_repository": null,
        "registry_title": null,
        "registry_version": null,
        "server_card_homepage": null,
        "server_card_repository": null,
        "server_card_title": null,
        "server_card_version": null
      },
      "latency_ms": null,
      "status": "ok"
    },
    "request_association_probe": {
      "details": {
        "reason": "no_request_association_capabilities_advertised"
      },
      "latency_ms": null,
      "status": "missing"
    },
    "resource_read": {
      "details": {
        "reason": "not_advertised"
      },
      "latency_ms": null,
      "status": "missing"
    },
    "resources_list": {
      "details": {
        "headers": {
          "content-type": "text/event-stream",
          "strict-transport-security": "max-age=31536000; includeSubDomains"
        },
        "http_status": 200,
        "payload": {
          "id": 5,
          "jsonrpc": "2.0",
          "result": {
            "resources": []
          }
        },
        "url": "https://mcp.blockscout.com/mcp"
      },
      "latency_ms": 206.35,
      "status": "ok"
    },
    "server_card": {
      "details": {
        "error": "Client error '404 Not Found' for url 'https://mcp.blockscout.com/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
        "url": "https://mcp.blockscout.com/.well-known/mcp/server-card.json"
      },
      "latency_ms": 198.72,
      "status": "error"
    },
    "session_resume_probe": {
      "details": {
        "protocol_version": "2025-03-26",
        "reason": "no_session_id",
        "resume_expected": true,
        "transport": "streamable-http"
      },
      "latency_ms": null,
      "status": "warning"
    },
    "step_up_auth_probe": {
      "details": {
        "auth_required_checks": [],
        "broad_scopes": [],
        "challenge_headers": [],
        "minimal_scope_documented": false,
        "oauth_present": false,
        "scope_specificity_ratio": 0.0,
        "step_up_signals": [],
        "supported_scopes": []
      },
      "latency_ms": null,
      "status": "missing"
    },
    "tool_snapshot_probe": {
      "details": {
        "added": [],
        "changed_outputs": [],
        "current_tool_count": 16,
        "previous_tool_count": 16,
        "removed": [],
        "similarity": 1.0
      },
      "latency_ms": null,
      "status": "ok"
    },
    "tools_list": {
      "details": {
        "headers": {
          "content-type": "text/event-stream",
          "strict-transport-security": "max-age=31536000; includeSubDomains"
        },
        "http_status": 200,
        "payload": {
          "id": 2,
          "jsonrpc": "2.0",
          "result": {
            "tools": [
              {
                "_meta": {
                  "openai/toolInvocation/invoked": "Blockchain analysis ready",
                  "openai/toolInvocation/invoking": "Initializing blockchain analysis..."
                },
                "annotations": {
                  "destructiveHint": false,
                  "openWorldHint": true,
                  "readOnlyHint": true
                },
                "description": "Unlocks access to other MCP tools.\n\n    All tools remain locked with a \"Session Not Initialized\" error until this\n    function is successfully called. Skipping this explicit initialization step\n    will cause all subsequent tool calls to fail.\n\n    MANDATORY FOR AI AGENTS: The returned instructions contain ESSENTIAL rules\n    that MUST govern ALL blockchain data interactions. Failure to integrate these\n    rules will result in incorrect data retrieval, tool failures and invalid\n    responses. Always apply these guidelines when planning queries, processing\n    responses or recommending blockchain actions.\n\n    COMPREHENSIVE DATA SOURCES: Provides an extensive catalog of specialized\n    blockchain endpoints to unlock sophisticated, multi-dimensional blockchain\n    investigations across all supported networks.\n    ",
                "inputSchema": {
                  "properties": {},
                  "title": "__unlock_blockchain_analysis__Arguments",
                  "type": "object"
                },
                "name": "__unlock_blockchain_analysis__",
                "outputSchema": {
                  "$defs": {
                    "ChainIdGuidance": {
                      "description": "A structured representation of chain ID guidance combining rules and recommendations.",
                      "properties": {
                        "recommended_chains": {
                          "description": "A list of popular chains with their names and IDs, useful for quick lookups.",
                          "items": {
                            "$ref": "#/$defs/ChainInfo"
                          },
                          "title": "Recommended Chains",
                          "type": "array"
                        },
                        "rules": {
                          "description": "Rules for chain ID selection and usage.",
                          "title": "Rules",
                          "type": "string"
                        }
                      },
                      "required": [
                        "rules",
                        "recommended_chains"
                      ],
                      "title": "ChainIdGuidance",
                      "type": "object"
                    },
                    "ChainInfo": {
                      "description": "Represents a blockchain with its essential identifiers.",
                      "properties": {
                        "chain_id": {
                          "description": "The unique identifier for the chain.",
                          "title": "Chain Id",
                          "type": "string"
                        },
                        "ecosystem": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "items": {
                                "type": "string"
                              },
                              "type": "array"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The ecosystem the chain belongs to, if applicable (e.g., 'Ethereum').",
                          "title": "Ecosystem"
                        },
                        "is_testnet": {
                          "description": "Indicates if the chain is a testnet.",
                          "title": "Is Testnet",
                          "type": "boolean"
                        },
                        "name": {
                          "description": "The common name of the blockchain (e.g., 'Ethereum').",
                          "title": "Name",
                          "type": "string"
                        },
                        "native_currency": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The native currency symbol of the chain (e.g., 'ETH').",
                          "title": "Native Currency"
                        },
                        "settlement_layer_chain_id": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "default": null,
                          "description": "The L1 chain ID where this rollup settles, if applicable.",
                          "title": "Settlement Layer Chain Id"
                        }
                      },
                      "required": [
                        "name",
                        "chain_id",
                        "is_testnet",
                        "native_currency",
                        "ecosystem"
                      ],
                      "title": "ChainInfo",
                      "type": "object"
                    },
                    "DirectApiCommonGroup": {
                      "description": "Represents a group of common endpoints available on all chains.",
                      "properties": {
                        "endpoints": {
                          "description": "List of endpoints in this group.",
                          "items": {
                            "$ref": "#/$defs/DirectApiEndpoint"
                          },
                          "title": "Endpoints",
                          "type": "array"
                        },
                        "group": {
                          "description": "The functional group name (e.g., 'Stats', 'Tokens & NFTs').",
                          "title": "Group",
                          "type": "string"
                        }
                      },
                      "required": [
                        "group",
                        "endpoints"
                      ],
                      "title": "DirectApiCommonGroup",
                      "type": "object"
                    },
                    "DirectApiEndpoint": {
                      "description": "Represents a single direct API endpoint.",
                      "properties": {
                        "description": {
                          "description": "A description of what this endpoint returns.",
                          "title": "Description",
                          "type": "string"
                        },
                        "path": {
                          "description": "The API endpoint path (e.g., '/api/v2/stats').",
                          "title": "Path",
                          "type": "string"
                        }
                      },
                      "required": [
                        "path",
                        "description"
                      ],
                      "title": "DirectApiEndpoint",
                      "type": "object"
                    },
                    "DirectApiEndpointList": {
                      "description": "Contains the complete curated list of endpoints for direct_api_call tool.",
                      "properties": {
                        "common": {
                          "description": "Endpoint groups available on all supported chains.",
                          "items": {
                            "$ref": "#/$defs/DirectApiCommonGroup"
                          },
                          "title": "Common",
                          "type": "array"
                        },
                        "specific": {
                          "description": "Endpoint groups specific to certain chain families.",
                          "items": {
                            "$ref": "#/$defs/DirectApiSpecificGroup"
                          },
                          "title": "Specific",
                          "type": "array"
                        }
                      },
                      "required": [
                        "common",
                        "specific"
                      ],
                      "title": "DirectApiEndpointList",
                      "type": "object"
                    },
                    "DirectApiSpecificGroup": {
                      "description": "Represents a group of endpoints specific to certain chain families.",
                      "properties": {
                        "chain_family": {
                          "description": "The chain family this group applies to (e.g., 'Arbitrum', 'Optimism').",
                          "title": "Chain Family",
                          "type": "string"
                        },
                        "endpoints": {
                          "description": "List of chain-specific endpoints.",
                          "items": {
                            "$ref": "#/$defs/DirectApiEndpoint"
                          },
                          "title": "Endpoints",
                          "type": "array"
                        }
                      },
                      "required": [
                        "chain_family",
                        "endpoints"
                      ],
                      "title": "DirectApiSpecificGroup",
                      "type": "object"
                    },
                    "InstructionsData": {
                      "description": "A structured representation of the server's operational instructions.",
                      "properties": {
                        "binary_search_rules": {
                          "description": "Rules for using binary search for historical blockchain data.",
                          "title": "Binary Search Rules",
                          "type": "string"
                        },
                        "chain_id_guidance": {
                          "$ref": "#/$defs/ChainIdGuidance",
                          "description": "Comprehensive guidance for chain ID selection and usage."
                        },
                        "data_ordering_and_resumption_rules": {
                          "description": "Rules for understanding data ordering and resuming searches from anchor points.",
                          "title": "Data Ordering And Resumption Rules",
                          "type": "string"
                        },
                        "direct_api_call_rules": {
                          "description": "Rules and guidance for using the direct_api_call tool.",
                          "title": "Direct Api Call Rules",
                          "type": "string"
                        },
                        "direct_api_endpoints": {
                          "$ref": "#/$defs/DirectApiEndpointList",
                          "description": "Curated list of endpoints available for direct API calls."
                        },
                        "error_handling_rules": {
                          "description": "Rules for handling network errors and retries.",
                          "title": "Error Handling Rules",
                          "type": "string"
                        },
                        "funds_movement_rules": {
                          "description": "Rules for analyzing funds movement and transfer activity.",
                          "title": "Funds Movement Rules",
                          "type": "string"
                        },
                        "pagination_rules": {
                          "description": "Rules for handling paginated responses and data retrieval.",
                          "title": "Pagination Rules",
                          "type": "string"
                        },
                        "portfolio_analysis_rules": {
                          "description": "Rules for conducting comprehensive portfolio analysis.",
                          "title": "Portfolio Analysis Rules",
                          "type": "string"
                        },
                        "time_based_query_rules": {
                          "description": "Rules for executing time-based blockchain queries efficiently.",
                          "title": "Time Based Query Rules",
                          "type": "string"
                        },
                        "version": {
                          "description": "The version of the Blockscout MCP server.",
                          "title": "Version",
                          "type": "string"
                        }
                      },
                      "required": [
                        "version",
                        "error_handling_rules",
                        "chain_id_guidance",
                        "pagination_rules",
                        "time_based_query_rules",
                        "binary_search_rules",
                        "portfolio_analysis_rules",
                        "funds_movement_rules",
                        "data_ordering_and_resumption_rules",
                        "direct_api_call_rules",
                        "direct_api_endpoints"
                      ],
                      "title": "InstructionsData",
                      "type": "object"
                    },
                    "NextCallInfo": {
                      "description": "A structured representation of the tool call required to get the next page.",
                      "properties": {
                        "params": {
                          "additionalProperties": true,
                          "description": "A complete dictionary of parameters for the next tool call, including the new cursor.",
                          "title": "Params",
                          "type": "object"
                        },
                        "tool_name": {
                          "description": "The name of the tool to call for the next page.",
                          "title": "Tool Name",
                          "type": "string"
                        }
                      },
                      "required": [
                        "tool_name",
                        "params"
                      ],
                      "title": "NextCallInfo",
                      "type": "object"
                    },
                    "PaginationInfo": {
                      "description": "Contains the structured information needed to retrieve the next page of results.",
                      "properties": {
                        "next_call": {
                          "$ref": "#/$defs/NextCallInfo",
                          "description": "The structured tool call required to fetch the subsequent page."
                        }
                      },
                      "required": [
                        "next_call"
                      ],
                      "title": "PaginationInfo",
                      "type": "object"
                    }
                  },
                  "properties": {
                    "content_text": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Optional human-readable summary used for MCP content responses.",
                      "title": "Content Text"
                    },
                    "data": {
                      "$ref": "#/$defs/InstructionsData",
                      "description": "The main data payload of the tool's response."
                    },
                    "data_description": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of notes explaining the structure, fields, or conventions of the 'data' payload.",
                      "title": "Data Description"
                    },
                    "instructions": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of suggested follow-up actions or instructions for the LLM to plan its next steps.",
                      "title": "Instructions"
                    },
                    "notes": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of important contextual notes, such as warnings about data truncation or data quality issues.",
                      "title": "Notes"
                    },
                    "pagination": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/PaginationInfo"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Pagination information, present only if the 'data' is a single page of a larger result set."
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "title": "ToolResponse[InstructionsData]",
                  "type": "object"
                },
                "title": "Unlock Blockchain Analysis"
              },
              {
                "_meta": {
                  "openai/toolInvocation/invoked": "Block information ready",
                  "openai/toolInvocation/invoking": "Fetching block information..."
                },
                "annotations": {
                  "destructiveHint": false,
                  "openWorldHint": true,
                  "readOnlyHint": true
                },
                "description": "\n    Get block information like timestamp, gas used, burnt fees, transaction count etc.\n    Can optionally include the list of transaction hashes contained in the block. Transaction hashes are omitted by default; request them only when you truly need them, because on high-traffic chains the list may exhaust the context.\n    ",
                "inputSchema": {
                  "properties": {
                    "chain_id": {
                      "description": "The ID of the blockchain",
                      "title": "Chain Id",
                      "type": "string"
                    },
                    "include_transactions": {
                      "anyOf": [
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": false,
                      "description": "If true, includes a list of transaction hashes from the block.",
                      "title": "Include Transactions"
                    },
                    "number_or_hash": {
                      "description": "Block number or hash",
                      "title": "Number Or Hash",
                      "type": "string"
                    }
                  },
                  "required": [
                    "chain_id",
                    "number_or_hash"
                  ],
                  "title": "get_block_infoArguments",
                  "type": "object"
                },
                "name": "get_block_info",
                "outputSchema": {
                  "$defs": {
                    "BlockInfoData": {
                      "additionalProperties": true,
                      "description": "A structured representation of a block's information.",
                      "properties": {
                        "block_details": {
                          "additionalProperties": true,
                          "description": "A dictionary containing the detailed properties of the block.",
                          "title": "Block Details",
                          "type": "object"
                        },
                        "transaction_hashes": {
                          "anyOf": [
                            {
                              "items": {
                                "type": "string"
                              },
                              "type": "array"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "default": null,
                          "description": "A list of transaction hashes included in the block.",
                          "title": "Transaction Hashes"
                        }
                      },
                      "required": [
                        "block_details"
                      ],
                      "title": "BlockInfoData",
                      "type": "object"
                    },
                    "NextCallInfo": {
                      "description": "A structured representation of the tool call required to get the next page.",
                      "properties": {
                        "params": {
                          "additionalProperties": true,
                          "description": "A complete dictionary of parameters for the next tool call, including the new cursor.",
                          "title": "Params",
                          "type": "object"
                        },
                        "tool_name": {
                          "description": "The name of the tool to call for the next page.",
                          "title": "Tool Name",
                          "type": "string"
                        }
                      },
                      "required": [
                        "tool_name",
                        "params"
                      ],
                      "title": "NextCallInfo",
                      "type": "object"
                    },
                    "PaginationInfo": {
                      "description": "Contains the structured information needed to retrieve the next page of results.",
                      "properties": {
                        "next_call": {
                          "$ref": "#/$defs/NextCallInfo",
                          "description": "The structured tool call required to fetch the subsequent page."
                        }
                      },
                      "required": [
                        "next_call"
                      ],
                      "title": "PaginationInfo",
                      "type": "object"
                    }
                  },
                  "properties": {
                    "content_text": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Optional human-readable summary used for MCP content responses.",
                      "title": "Content Text"
                    },
                    "data": {
                      "$ref": "#/$defs/BlockInfoData",
                      "description": "The main data payload of the tool's response."
                    },
                    "data_description": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of notes explaining the structure, fields, or conventions of the 'data' payload.",
                      "title": "Data Description"
                    },
                    "instructions": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of suggested follow-up actions or instructions for the LLM to plan its next steps.",
                      "title": "Instructions"
                    },
                    "notes": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of important contextual notes, such as warnings about data truncation or data quality issues.",
                      "title": "Notes"
                    },
                    "pagination": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/PaginationInfo"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Pagination information, present only if the 'data' is a single page of a larger result set."
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "title": "ToolResponse[BlockInfoData]",
                  "type": "object"
                },
                "title": "Get Block Information"
              },
              {
                "_meta": {
                  "openai/toolInvocation/invoked": "Block number ready",
                  "openai/toolInvocation/invoking": "Fetching latest block number..."
                },
                "annotations": {
                  "destructiveHint": false,
                  "openWorldHint": true,
                  "readOnlyHint": true
                },
                "description": "\n    Retrieves the block number and timestamp for a specific date/time or the latest block.\n    Use when you need a block height for a specific point in time (e.g., \"block at 2024-01-01\")\n    or the current chain tip. If `datetime` is provided, finds the block immediately\n    preceding that time. If omitted, returns the latest indexed block.\n    ",
                "inputSchema": {
                  "properties": {
                    "chain_id": {
                      "description": "The ID of the blockchain",
                      "title": "Chain Id",
                      "type": "string"
                    },
                    "datetime": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "The date and time (ISO 8601 format, e.g. 2025-05-22T23:00:00.00Z) to find the block for. If omitted, returns the latest block.",
                      "title": "Datetime"
                    }
                  },
                  "required": [
                    "chain_id"
                  ],
                  "title": "get_block_numberArguments",
                  "type": "object"
                },
                "name": "get_block_number",
                "outputSchema": {
                  "$defs": {
                    "BlockNumberData": {
                      "description": "Represents the essential data for a resolved block number.",
                      "properties": {
                        "block_number": {
                          "description": "The block number (height) in the blockchain",
                          "title": "Block Number",
                          "type": "integer"
                        },
                        "timestamp": {
                          "description": "The timestamp when the block was mined (ISO format)",
                          "title": "Timestamp",
                          "type": "string"
                        }
                      },
                      "required": [
                        "block_number",
                        "timestamp"
                      ],
                      "title": "BlockNumberData",
                      "type": "object"
                    },
                    "NextCallInfo": {
                      "description": "A structured representation of the tool call required to get the next page.",
                      "properties": {
                        "params": {
                          "additionalProperties": true,
                          "description": "A complete dictionary of parameters for the next tool call, including the new cursor.",
                          "title": "Params",
                          "type": "object"
                        },
                        "tool_name": {
                          "description": "The name of the tool to call for the next page.",
                          "title": "Tool Name",
                          "type": "string"
                        }
                      },
                      "required": [
                        "tool_name",
                        "params"
                      ],
                      "title": "NextCallInfo",
                      "type": "object"
                    },
                    "PaginationInfo": {
                      "description": "Contains the structured information needed to retrieve the next page of results.",
                      "properties": {
                        "next_call": {
                          "$ref": "#/$defs/NextCallInfo",
                          "description": "The structured tool call required to fetch the subsequent page."
                        }
                      },
                      "required": [
                        "next_call"
                      ],
                      "title": "PaginationInfo",
                      "type": "object"
                    }
                  },
                  "properties": {
                    "content_text": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Optional human-readable summary used for MCP content responses.",
                      "title": "Content Text"
                    },
                    "data": {
                      "$ref": "#/$defs/BlockNumberData",
                      "description": "The main data payload of the tool's response."
                    },
                    "data_description": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of notes explaining the structure, fields, or conventions of the 'data' payload.",
                      "title": "Data Description"
                    },
                    "instructions": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of suggested follow-up actions or instructions for the LLM to plan its next steps.",
                      "title": "Instructions"
                    },
                    "notes": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of important contextual notes, such as warnings about data truncation or data quality issues.",
                      "title": "Notes"
                    },
                    "pagination": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/PaginationInfo"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Pagination information, present only if the 'data' is a single page of a larger result set."
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "title": "ToolResponse[BlockNumberData]",
                  "type": "object"
                },
                "title": "Get Block Number"
              },
              {
                "_meta": {
                  "openai/toolInvocation/invoked": "ENS name resolved",
                  "openai/toolInvocation/invoking": "Resolving ENS name..."
                },
                "annotations": {
                  "destructiveHint": false,
                  "openWorldHint": true,
                  "readOnlyHint": true
                },
                "description": "\n    Useful for when you need to convert an ENS domain name (e.g. \"blockscout.eth\")\n    to its corresponding Ethereum address.\n    ",
                "inputSchema": {
                  "properties": {
                    "name": {
                      "description": "ENS domain name to resolve",
                      "title": "Name",
                      "type": "string"
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "title": "get_address_by_ens_nameArguments",
                  "type": "object"
                },
                "name": "get_address_by_ens_name",
                "outputSchema": {
                  "$defs": {
                    "EnsAddressData": {
                      "description": "A structured representation of an ENS name resolution.",
                      "properties": {
                        "resolved_address": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "default": null,
                          "description": "The resolved Ethereum address corresponding to the ENS name, or null if not found.",
                          "title": "Resolved Address"
                        }
                      },
                      "title": "EnsAddressData",
                      "type": "object"
                    },
                    "NextCallInfo": {
                      "description": "A structured representation of the tool call required to get the next page.",
                      "properties": {
                        "params": {
                          "additionalProperties": true,
                          "description": "A complete dictionary of parameters for the next tool call, including the new cursor.",
                          "title": "Params",
                          "type": "object"
                        },
                        "tool_name": {
                          "description": "The name of the tool to call for the next page.",
                          "title": "Tool Name",
                          "type": "string"
                        }
                      },
                      "required": [
                        "tool_name",
                        "params"
                      ],
                      "title": "NextCallInfo",
                      "type": "object"
                    },
                    "PaginationInfo": {
                      "description": "Contains the structured information needed to retrieve the next page of results.",
                      "properties": {
                        "next_call": {
                          "$ref": "#/$defs/NextCallInfo",
                          "description": "The structured tool call required to fetch the subsequent page."
                        }
                      },
                      "required": [
                        "next_call"
                      ],
                      "title": "PaginationInfo",
                      "type": "object"
                    }
                  },
                  "properties": {
                    "content_text": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Optional human-readable summary used for MCP content responses.",
                      "title": "Content Text"
                    },
                    "data": {
                      "$ref": "#/$defs/EnsAddressData",
                      "description": "The main data payload of the tool's response."
                    },
                    "data_description": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of notes explaining the structure, fields, or conventions of the 'data' payload.",
                      "title": "Data Description"
                    },
                    "instructions": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of suggested follow-up actions or instructions for the LLM to plan its next steps.",
                      "title": "Instructions"
                    },
                    "notes": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of important contextual notes, such as warnings about data truncation or data quality issues.",
                      "title": "Notes"
                    },
                    "pagination": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/PaginationInfo"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Pagination information, present only if the 'data' is a single page of a larger result set."
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "title": "ToolResponse[EnsAddressData]",
                  "type": "object"
                },
                "title": "Get Address by ENS Name"
              },
              {
                "_meta": {
                  "openai/toolInvocation/invoked": "Transactions ready",
                  "openai/toolInvocation/invoking": "Fetching transactions..."
                },
                "annotations": {
                  "destructiveHint": false,
                  "openWorldHint": true,
                  "readOnlyHint": true
                },
                "description": "\n    Retrieves native currency transfers and smart contract interactions (calls, internal txs) for an address.\n    **EXCLUDES TOKEN TRANSFERS**: Filters out direct token balance changes (ERC-20, etc.). You'll see calls *to* token contracts, but not the `Transfer` events. For token history, use `get_token_transfers_by_address`.\n    A single tx can have multiple records from internal calls; use `internal_transaction_index` for execution order.\n    Requires an `age_from` date to scope results for performance and relevance.\n    Use cases:\n      - `get_transactions_by_address(address, age_from)` - get all txs to/from the address since a given date.\n      - `get_transactions_by_address(address, age_from, age_to)` - get all txs to/from the address between given dates.\n      - `get_transactions_by_address(address, age_from, age_to, methods)` - get all txs to/from the address between given dates, filtered by method.\n    **SUPPORTS PAGINATION**: If response includes 'pagination' field, use the provided next_call to get additional pages.\n    ",
                "inputSchema": {
                  "properties": {
                    "address": {
                      "description": "Address which either sender or receiver of the transaction",
                      "title": "Address",
                      "type": "string"
                    },
                    "age_from": {
                      "description": "Start date and time (e.g 2025-05-22T23:00:00.00Z).",
                      "title": "Age From",
                      "type": "string"
                    },
                    "age_to": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "End date and time (e.g 2025-05-22T22:30:00.00Z).",
                      "title": "Age To"
                    },
                    "chain_id": {
                      "description": "The ID of the blockchain",
                      "title": "Chain Id",
                      "type": "string"
                    },
                    "cursor": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "The pagination cursor from a previous response to get the next page of results.",
                      "title": "Cursor"
                    },
                    "methods": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A method signature to filter transactions by (e.g 0x304e6ade)",
                      "title": "Methods"
                    }
                  },
                  "required": [
                    "chain_id",
                    "address",
                    "age_from"
                  ],
                  "title": "get_transactions_by_addressArguments",
                  "type": "object"
                },
                "name": "get_transactions_by_address",
                "outputSchema": {
                  "$defs": {
                    "AdvancedFilterItem": {
                      "additionalProperties": true,
                      "description": "Represents a single item from the advanced filter API response.",
                      "properties": {
                        "from": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "default": null,
                          "description": "The sender address.",
                          "title": "From"
                        },
                        "to": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "default": null,
                          "description": "The recipient address.",
                          "title": "To"
                        }
                      },
                      "title": "AdvancedFilterItem",
                      "type": "object"
                    },
                    "NextCallInfo": {
                      "description": "A structured representation of the tool call required to get the next page.",
                      "properties": {
                        "params": {
                          "additionalProperties": true,
                          "description": "A complete dictionary of parameters for the next tool call, including the new cursor.",
                          "title": "Params",
                          "type": "object"
                        },
                        "tool_name": {
                          "description": "The name of the tool to call for the next page.",
                          "title": "Tool Name",
                          "type": "string"
                        }
                      },
                      "required": [
                        "tool_name",
                        "params"
                      ],
                      "title": "NextCallInfo",
                      "type": "object"
                    },
                    "PaginationInfo": {
                      "description": "Contains the structured information needed to retrieve the next page of results.",
                      "properties": {
                        "next_call": {
                          "$ref": "#/$defs/NextCallInfo",
                          "description": "The structured tool call required to fetch the subsequent page."
                        }
                      },
                      "required": [
                        "next_call"
                      ],
                      "title": "PaginationInfo",
                      "type": "object"
                    }
                  },
                  "properties": {
                    "content_text": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Optional human-readable summary used for MCP content responses.",
                      "title": "Content Text"
                    },
                    "data": {
                      "description": "The main data payload of the tool's response.",
                      "items": {
                        "$ref": "#/$defs/AdvancedFilterItem"
                      },
                      "title": "Data",
                      "type": "array"
                    },
                    "data_description": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of notes explaining the structure, fields, or conventions of the 'data' payload.",
                      "title": "Data Description"
                    },
                    "instructions": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of suggested follow-up actions or instructions for the LLM to plan its next steps.",
                      "title": "Instructions"
                    },
                    "notes": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of important contextual notes, such as warnings about data truncation or data quality issues.",
                      "title": "Notes"
                    },
                    "pagination": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/PaginationInfo"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Pagination information, present only if the 'data' is a single page of a larger result set."
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "title": "ToolResponse[list[AdvancedFilterItem]]",
                  "type": "object"
                },
                "title": "Get Transactions by Address"
              },
              {
                "_meta": {
                  "openai/toolInvocation/invoked": "Token transfers ready",
                  "openai/toolInvocation/invoking": "Fetching token transfers..."
                },
                "annotations": {
                  "destructiveHint": false,
                  "openWorldHint": true,
                  "readOnlyHint": true
                },
                "description": "\n    Get ERC-20 token transfers for an address within a specific time range.\n    Use cases:\n      - `get_token_transfers_by_address(address, age_from)` - get all transfers of any ERC-20 token to/from the address since the given date up to the current time\n      - `get_token_transfers_by_address(address, age_from, age_to)` - get all transfers of any ERC-20 token to/from the address between the given dates\n      - `get_token_transfers_by_address(address, age_from, age_to, token)` - get all transfers of the given ERC-20 token to/from the address between the given dates\n    **SUPPORTS PAGINATION**: If response includes 'pagination' field, use the provided next_call to get additional pages.\n    ",
                "inputSchema": {
                  "properties": {
                    "address": {
                      "description": "Address which either transfer initiator or transfer receiver",
                      "title": "Address",
                      "type": "string"
                    },
                    "age_from": {
                      "description": "Start date and time (e.g 2025-05-22T23:00:00.00Z).",
                      "title": "Age From",
                      "type": "string"
                    },
                    "age_to": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "End date and time (e.g 2025-05-22T22:30:00.00Z). Can be omitted to get all transfers up to the current time.",
                      "title": "Age To"
                    },
                    "chain_id": {
                      "description": "The ID of the blockchain",
                      "title": "Chain Id",
                      "type": "string"
                    },
                    "cursor": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "The pagination cursor from a previous response to get the next page of results.",
                      "title": "Cursor"
                    },
                    "token": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "An ERC-20 token contract address to filter transfers by a specific token. If omitted, returns transfers of all tokens.",
                      "title": "Token"
                    }
                  },
                  "required": [
                    "chain_id",
                    "address",
                    "age_from"
                  ],
                  "title": "get_token_transfers_by_addressArguments",
                  "type": "object"
                },
                "name": "get_token_transfers_by_address",
                "outputSchema": {
                  "$defs": {
                    "AdvancedFilterItem": {
                      "additionalProperties": true,
                      "description": "Represents a single item from the advanced filter API response.",
                      "properties": {
                        "from": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "default": null,
                          "description": "The sender address.",
                          "title": "From"
                        },
                        "to": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "default": null,
                          "description": "The recipient address.",
                          "title": "To"
                        }
                      },
                      "title": "AdvancedFilterItem",
                      "type": "object"
                    },
                    "NextCallInfo": {
                      "description": "A structured representation of the tool call required to get the next page.",
                      "properties": {
                        "params": {
                          "additionalProperties": true,
                          "description": "A complete dictionary of parameters for the next tool call, including the new cursor.",
                          "title": "Params",
                          "type": "object"
                        },
                        "tool_name": {
                          "description": "The name of the tool to call for the next page.",
                          "title": "Tool Name",
                          "type": "string"
                        }
                      },
                      "required": [
                        "tool_name",
                        "params"
                      ],
                      "title": "NextCallInfo",
                      "type": "object"
                    },
                    "PaginationInfo": {
                      "description": "Contains the structured information needed to retrieve the next page of results.",
                      "properties": {
                        "next_call": {
                          "$ref": "#/$defs/NextCallInfo",
                          "description": "The structured tool call required to fetch the subsequent page."
                        }
                      },
                      "required": [
                        "next_call"
                      ],
                      "title": "PaginationInfo",
                      "type": "object"
                    }
                  },
                  "properties": {
                    "content_text": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Optional human-readable summary used for MCP content responses.",
                      "title": "Content Text"
                    },
                    "data": {
                      "description": "The main data payload of the tool's response.",
                      "items": {
                        "$ref": "#/$defs/AdvancedFilterItem"
                      },
                      "title": "Data",
                      "type": "array"
                    },
                    "data_description": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of notes explaining the structure, fields, or conventions of the 'data' payload.",
                      "title": "Data Description"
                    },
                    "instructions": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of suggested follow-up actions or instructions for the LLM to plan its next steps.",
                      "title": "Instructions"
                    },
                    "notes": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of important contextual notes, such as warnings about data truncation or data quality issues.",
                      "title": "Notes"
                    },
                    "pagination": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/PaginationInfo"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Pagination information, present only if the 'data' is a single page of a larger result set."
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "title": "ToolResponse[list[AdvancedFilterItem]]",
                  "type": "object"
                },
                "title": "Get Token Transfers by Address"
              },
              {
                "_meta": {
                  "openai/toolInvocation/invoked": "Token lookup ready",
                  "openai/toolInvocation/invoking": "Looking up token by symbol..."
                },
                "annotations": {
                  "destructiveHint": false,
                  "openWorldHint": true,
                  "readOnlyHint": true
                },
                "description": "\n    Search for token addresses by symbol or name. Returns multiple potential\n    matches based on symbol or token name similarity. Only the first\n    ``TOKEN_RESULTS_LIMIT`` matches from the Blockscout API are returned.\n    ",
                "inputSchema": {
                  "properties": {
                    "chain_id": {
                      "description": "The ID of the blockchain",
                      "title": "Chain Id",
                      "type": "string"
                    },
                    "symbol": {
                      "description": "Token symbol or name to search for",
                      "title": "Symbol",
                      "type": "string"
                    }
                  },
                  "required": [
                    "chain_id",
                    "symbol"
                  ],
                  "title": "lookup_token_by_symbolArguments",
                  "type": "object"
                },
                "name": "lookup_token_by_symbol",
                "outputSchema": {
                  "$defs": {
                    "NextCallInfo": {
                      "description": "A structured representation of the tool call required to get the next page.",
                      "properties": {
                        "params": {
                          "additionalProperties": true,
                          "description": "A complete dictionary of parameters for the next tool call, including the new cursor.",
                          "title": "Params",
                          "type": "object"
                        },
                        "tool_name": {
                          "description": "The name of the tool to call for the next page.",
                          "title": "Tool Name",
                          "type": "string"
                        }
                      },
                      "required": [
                        "tool_name",
                        "params"
                      ],
                      "title": "NextCallInfo",
                      "type": "object"
                    },
                    "PaginationInfo": {
                      "description": "Contains the structured information needed to retrieve the next page of results.",
                      "properties": {
                        "next_call": {
                          "$ref": "#/$defs/NextCallInfo",
                          "description": "The structured tool call required to fetch the subsequent page."
                        }
                      },
                      "required": [
                        "next_call"
                      ],
                      "title": "PaginationInfo",
                      "type": "object"
                    },
                    "TokenSearchResult": {
                      "description": "Represents a single token found by a search query.",
                      "properties": {
                        "address": {
                          "description": "The contract address of the token.",
                          "title": "Address",
                          "type": "string"
                        },
                        "circulating_market_cap": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The circulating market cap, if available.",
                          "title": "Circulating Market Cap"
                        },
                        "exchange_rate": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The current exchange rate, if available.",
                          "title": "Exchange Rate"
                        },
                        "is_smart_contract_verified": {
                          "description": "Indicates if the token's contract is verified.",
                          "title": "Is Smart Contract Verified",
                          "type": "boolean"
                        },
                        "is_verified_via_admin_panel": {
                          "description": "Indicates if the token is verified by the Blockscout team.",
                          "title": "Is Verified Via Admin Panel",
                          "type": "boolean"
                        },
                        "name": {
                          "description": "The full name of the token (e.g., 'USD Coin').",
                          "title": "Name",
                          "type": "string"
                        },
                        "symbol": {
                          "description": "The symbol of the token (e.g., 'USDC').",
                          "title": "Symbol",
                          "type": "string"
                        },
                        "token_type": {
                          "description": "The token standard (e.g., 'ERC-20').",
                          "title": "Token Type",
                          "type": "string"
                        },
                        "total_supply": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The total supply of the token.",
                          "title": "Total Supply"
                        }
                      },
                      "required": [
                        "address",
                        "name",
                        "symbol",
                        "token_type",
                        "total_supply",
                        "circulating_market_cap",
                        "exchange_rate",
                        "is_smart_contract_verified",
                        "is_verified_via_admin_panel"
                      ],
                      "title": "TokenSearchResult",
                      "type": "object"
                    }
                  },
                  "properties": {
                    "content_text": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Optional human-readable summary used for MCP content responses.",
                      "title": "Content Text"
                    },
                    "data": {
                      "description": "The main data payload of the tool's response.",
                      "items": {
                        "$ref": "#/$defs/TokenSearchResult"
                      },
                      "title": "Data",
                      "type": "array"
                    },
                    "data_description": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of notes explaining the structure, fields, or conventions of the 'data' payload.",
                      "title": "Data Description"
                    },
                    "instructions": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of suggested follow-up actions or instructions for the LLM to plan its next steps.",
                      "title": "Instructions"
                    },
                    "notes": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of important contextual notes, such as warnings about data truncation or data quality issues.",
                      "title": "Notes"
                    },
                    "pagination": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/PaginationInfo"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Pagination information, present only if the 'data' is a single page of a larger result set."
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "title": "ToolResponse[list[TokenSearchResult]]",
                  "type": "object"
                },
                "title": "Lookup Token by Symbol"
              },
              {
                "_meta": {
                  "openai/toolInvocation/invoked": "Contract ABI ready",
                  "openai/toolInvocation/invoking": "Fetching contract ABI..."
                },
                "annotations": {
                  "destructiveHint": false,
                  "openWorldHint": true,
                  "readOnlyHint": true
                },
                "description": "\n    Get smart contract ABI (Application Binary Interface).\n    An ABI defines all functions, events, their parameters, and return types. The ABI is required to format function calls or interpret contract data.\n    ",
                "inputSchema": {
                  "properties": {
                    "address": {
                      "description": "Smart contract address",
                      "title": "Address",
                      "type": "string"
                    },
                    "chain_id": {
                      "description": "The ID of the blockchain",
                      "title": "Chain Id",
                      "type": "string"
                    }
                  },
                  "required": [
                    "chain_id",
                    "address"
                  ],
                  "title": "get_contract_abiArguments",
                  "type": "object"
                },
                "name": "get_contract_abi",
                "outputSchema": {
                  "$defs": {
                    "ContractAbiData": {
                      "description": "A structured representation of a smart contract's ABI.",
                      "properties": {
                        "abi": {
                          "anyOf": [
                            {
                              "items": {
                                "additionalProperties": true,
                                "type": "object"
                              },
                              "type": "array"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The Application Binary Interface (ABI) of the smart contract.",
                          "title": "Abi"
                        }
                      },
                      "required": [
                        "abi"
                      ],
                      "title": "ContractAbiData",
                      "type": "object"
                    },
                    "NextCallInfo": {
                      "description": "A structured representation of the tool call required to get the next page.",
                      "properties": {
                        "params": {
                          "additionalProperties": true,
                          "description": "A complete dictionary of parameters for the next tool call, including the new cursor.",
                          "title": "Params",
                          "type": "object"
                        },
                        "tool_name": {
                          "description": "The name of the tool to call for the next page.",
                          "title": "Tool Name",
                          "type": "string"
                        }
                      },
                      "required": [
                        "tool_name",
                        "params"
                      ],
                      "title": "NextCallInfo",
                      "type": "object"
                    },
                    "PaginationInfo": {
                      "description": "Contains the structured information needed to retrieve the next page of results.",
                      "properties": {
                        "next_call": {
                          "$ref": "#/$defs/NextCallInfo",
                          "description": "The structured tool call required to fetch the subsequent page."
                        }
                      },
                      "required": [
                        "next_call"
                      ],
                      "title": "PaginationInfo",
                      "type": "object"
                    }
                  },
                  "properties": {
                    "content_text": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Optional human-readable summary used for MCP content responses.",
                      "title": "Content Text"
                    },
                    "data": {
                      "$ref": "#/$defs/ContractAbiData",
                      "description": "The main data payload of the tool's response."
                    },
                    "data_description": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of notes explaining the structure, fields, or conventions of the 'data' payload.",
                      "title": "Data Description"
                    },
                    "instructions": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of suggested follow-up actions or instructions for the LLM to plan its next steps.",
                      "title": "Instructions"
                    },
                    "notes": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of important contextual notes, such as warnings about data truncation or data quality issues.",
                      "title": "Notes"
                    },
                    "pagination": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/PaginationInfo"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Pagination information, present only if the 'data' is a single page of a larger result set."
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "title": "ToolResponse[ContractAbiData]",
                  "type": "object"
                },
                "title": "Get Contract ABI"
              },
              {
                "_meta": {
                  "openai/toolInvocation/invoked": "Contract code ready",
                  "openai/toolInvocation/invoking": "Inspecting contract code..."
                },
                "annotations": {
                  "destructiveHint": false,
                  "openWorldHint": true,
                  "readOnlyHint": true
                },
                "description": "Inspects a verified contract's source code or metadata.",
                "inputSchema": {
                  "properties": {
                    "address": {
                      "description": "The address of the smart contract.",
                      "title": "Address",
                      "type": "string"
                    },
                    "chain_id": {
                      "description": "The ID of the blockchain.",
                      "title": "Chain Id",
                      "type": "string"
                    },
                    "file_name": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "The name of the source file to inspect. If omitted, returns contract metadata and the list of source files.",
                      "title": "File Name"
                    }
                  },
                  "required": [
                    "chain_id",
                    "address"
                  ],
                  "title": "inspect_contract_codeArguments",
                  "type": "object"
                },
                "name": "inspect_contract_code",
                "outputSchema": {
                  "$defs": {
                    "ContractMetadata": {
                      "additionalProperties": true,
                      "description": "Detailed metadata for a verified smart contract.",
                      "properties": {
                        "compiler_version": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The compiler version used.",
                          "title": "Compiler Version"
                        },
                        "constructor_args": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The raw constructor arguments, possibly truncated.",
                          "title": "Constructor Args"
                        },
                        "constructor_args_truncated": {
                          "default": false,
                          "description": "Indicates if constructor_args or decoded_constructor_args was truncated.",
                          "title": "Constructor Args Truncated",
                          "type": "boolean"
                        },
                        "decoded_constructor_args": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "additionalProperties": true,
                              "type": "object"
                            },
                            {
                              "items": {},
                              "type": "array"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "default": null,
                          "description": "Decoded constructor arguments, if available.",
                          "title": "Decoded Constructor Args"
                        },
                        "evm_version": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The EVM version target.",
                          "title": "Evm Version"
                        },
                        "is_fully_verified": {
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Flag indicating if the contract is fully verified.",
                          "title": "Is Fully Verified"
                        },
                        "language": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The programming language of the contract (e.g., Solidity, Vyper).",
                          "title": "Language"
                        },
                        "license_type": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The license of the contract code (e.g., MIT, none).",
                          "title": "License Type"
                        },
                        "name": {
                          "description": "The name of the contract.",
                          "title": "Name",
                          "type": "string"
                        },
                        "optimization_enabled": {
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Flag indicating if compiler optimization was enabled.",
                          "title": "Optimization Enabled"
                        },
                        "optimization_runs": {
                          "anyOf": [
                            {
                              "type": "integer"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The number of optimization runs.",
                          "title": "Optimization Runs"
                        },
                        "proxy_type": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The type of proxy if the contract is a proxy (e.g., basic_implementation).",
                          "title": "Proxy Type"
                        },
                        "source_code_tree_structure": {
                          "description": "A list of all source file paths for the contract.",
                          "items": {
                            "type": "string"
                          },
                          "title": "Source Code Tree Structure",
                          "type": "array"
                        },
                        "verified_at": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The timestamp when the contract was verified.",
                          "title": "Verified At"
                        }
                      },
                      "required": [
                        "name",
                        "language",
                        "compiler_version",
                        "verified_at",
                        "source_code_tree_structure",
                        "optimization_enabled",
                        "optimization_runs",
                        "evm_version",
                        "license_type",
                        "proxy_type",
                        "is_fully_verified",
                        "constructor_args"
                      ],
                      "title": "ContractMetadata",
                      "type": "object"
                    },
                    "ContractSourceFile": {
                      "description": "Container for a single contract source file.",
                      "properties": {
                        "file_content": {
                          "description": "The raw source code of the file.",
                          "title": "File Content",
                          "type": "string"
                        }
                      },
                      "required": [
                        "file_content"
                      ],
                      "title": "ContractSourceFile",
                      "type": "object"
                    },
                    "NextCallInfo": {
                      "description": "A structured representation of the tool call required to get the next page.",
                      "properties": {
                        "params": {
                          "additionalProperties": true,
                          "description": "A complete dictionary of parameters for the next tool call, including the new cursor.",
                          "title": "Params",
                          "type": "object"
                        },
                        "tool_name": {
                          "description": "The name of the tool to call for the next page.",
                          "title": "Tool Name",
                          "type": "string"
                        }
                      },
                      "required": [
                        "tool_name",
                        "params"
                      ],
                      "title": "NextCallInfo",
                      "type": "object"
                    },
                    "PaginationInfo": {
                      "description": "Contains the structured information needed to retrieve the next page of results.",
                      "properties": {
                        "next_call": {
                          "$ref": "#/$defs/NextCallInfo",
                          "description": "The structured tool call required to fetch the subsequent page."
                        }
                      },
                      "required": [
                        "next_call"
                      ],
                      "title": "PaginationInfo",
                      "type": "object"
                    }
                  },
                  "properties": {
                    "content_text": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Optional human-readable summary used for MCP content responses.",
                      "title": "Content Text"
                    },
                    "data": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/ContractMetadata"
                        },
                        {
                          "$ref": "#/$defs/ContractSourceFile"
                        }
                      ],
                      "description": "The main data payload of the tool's response.",
                      "title": "Data"
                    },
                    "data_description": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of notes explaining the structure, fields, or conventions of the 'data' payload.",
                      "title": "Data Description"
                    },
                    "instructions": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of suggested follow-up actions or instructions for the LLM to plan its next steps.",
                      "title": "Instructions"
                    },
                    "notes": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of important contextual notes, such as warnings about data truncation or data quality issues.",
                      "title": "Notes"
                    },
                    "pagination": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/PaginationInfo"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Pagination information, present only if the 'data' is a single page of a larger result set."
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "title": "ToolResponse[Union[ContractMetadata, ContractSourceFile]]",
                  "type": "object"
                },
                "title": "Inspect Contract Code"
              },
              {
                "_meta": {
                  "openai/toolInvocation/invoked": "Contract read complete",
                  "openai/toolInvocation/invoking": "Reading from contract..."
                },
                "annotations": {
                  "destructiveHint": false,
                  "openWorldHint": true,
                  "readOnlyHint": true
                },
                "description": "\n        Calls a smart contract function (view/pure, or non-view/pure simulated via eth_call) and returns the\n        decoded result.\n\n        This tool provides a direct way to query the state of a smart contract.\n\n        Example:\n        To check the USDT balance of an address on Ethereum Mainnet, you would use the following arguments:\n    {\n      \"tool_name\": \"read_contract\",\n      \"params\": {\n        \"chain_id\": \"1\",\n        \"address\": \"0xdAC17F958D2ee523a2206206994597C13D831ec7\",\n        \"abi\": {\n          \"constant\": true,\n          \"inputs\": [{\"name\": \"_owner\", \"type\": \"address\"}],\n          \"name\": \"balanceOf\",\n          \"outputs\": [{\"name\": \"balance\", \"type\": \"uint256\"}],\n          \"payable\": false,\n          \"stateMutability\": \"view\",\n          \"type\": \"function\"\n        },\n        \"function_name\": \"balanceOf\",\n        \"args\": \"[\"0xF977814e90dA44bFA03b6295A0616a897441aceC\"]\"\n      }\n    }\n    ",
                "inputSchema": {
                  "properties": {
                    "abi": {
                      "additionalProperties": true,
                      "description": "The JSON ABI for the specific function being called. This should be a dictionary that defines the function's name, inputs, and outputs. The function ABI can be obtained using the `get_contract_abi` tool.",
                      "title": "Abi",
                      "type": "object"
                    },
                    "address": {
                      "description": "Smart contract address",
                      "title": "Address",
                      "type": "string"
                    },
                    "args": {
                      "default": "[]",
                      "description": "A JSON string containing an array of arguments. Example: \"[\"0xabc...\"]\" for a single address argument, or \"[]\" for no arguments. Order and types must match ABI inputs. Addresses: use 0x-prefixed strings; Numbers: prefer integers (not quoted); numeric strings like \"1\" are also accepted and coerced to integers. Bytes: keep as 0x-hex strings.",
                      "title": "Args",
                      "type": "string"
                    },
                    "block": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "integer"
                        }
                      ],
                      "default": "latest",
                      "description": "The block identifier to read the contract state from. Can be a block number (e.g., 19000000) or a string tag (e.g., 'latest'). Defaults to 'latest'.",
                      "title": "Block"
                    },
                    "chain_id": {
                      "description": "The ID of the blockchain",
                      "title": "Chain Id",
                      "type": "string"
                    },
                    "function_name": {
                      "description": "The symbolic name of the function to be called. This must match the `name` field in the provided ABI.",
                      "title": "Function Name",
                      "type": "string"
                    }
                  },
                  "required": [
                    "chain_id",
                    "address",
                    "abi",
                    "function_name"
                  ],
                  "title": "read_contractArguments",
                  "type": "object"
                },
                "name": "read_contract",
                "outputSchema": {
                  "$defs": {
                    "ContractReadData": {
                      "description": "Result of a read-only smart contract function call.",
                      "properties": {
                        "result": {
                          "description": "Return value from the contract function call.",
                          "title": "Result"
                        }
                      },
                      "required": [
                        "result"
                      ],
                      "title": "ContractReadData",
                      "type": "object"
                    },
                    "NextCallInfo": {
                      "description": "A structured representation of the tool call required to get the next page.",
                      "properties": {
                        "params": {
                          "additionalProperties": true,
                          "description": "A complete dictionary of parameters for the next tool call, including the new cursor.",
                          "title": "Params",
                          "type": "object"
                        },
                        "tool_name": {
                          "description": "The name of the tool to call for the next page.",
                          "title": "Tool Name",
                          "type": "string"
                        }
                      },
                      "required": [
                        "tool_name",
                        "params"
                      ],
                      "title": "NextCallInfo",
                      "type": "object"
                    },
                    "PaginationInfo": {
                      "description": "Contains the structured information needed to retrieve the next page of results.",
                      "properties": {
                        "next_call": {
                          "$ref": "#/$defs/NextCallInfo",
                          "description": "The structured tool call required to fetch the subsequent page."
                        }
                      },
                      "required": [
                        "next_call"
                      ],
                      "title": "PaginationInfo",
                      "type": "object"
                    }
                  },
                  "properties": {
                    "content_text": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Optional human-readable summary used for MCP content responses.",
                      "title": "Content Text"
                    },
                    "data": {
                      "$ref": "#/$defs/ContractReadData",
                      "description": "The main data payload of the tool's response."
                    },
                    "data_description": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of notes explaining the structure, fields, or conventions of the 'data' payload.",
                      "title": "Data Description"
                    },
                    "instructions": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of suggested follow-up actions or instructions for the LLM to plan its next steps.",
                      "title": "Instructions"
                    },
                    "notes": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of important contextual notes, such as warnings about data truncation or data quality issues.",
                      "title": "Notes"
                    },
                    "pagination": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/PaginationInfo"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Pagination information, present only if the 'data' is a single page of a larger result set."
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "title": "ToolResponse[ContractReadData]",
                  "type": "object"
                },
                "title": "Read from Contract"
              },
              {
                "_meta": {
                  "openai/toolInvocation/invoked": "Address information ready",
                  "openai/toolInvocation/invoking": "Fetching address information..."
                },
                "annotations": {
                  "destructiveHint": false,
                  "openWorldHint": true,
                  "readOnlyHint": true
                },
                "description": "\n    Get comprehensive information about an address, including:\n    - Address existence check\n    - Native token (ETH) balance (provided as is, without adjusting by decimals)\n    - First transaction details (block number and timestamp) for age calculation\n    - ENS name association (if any)\n    - Contract status (whether the address is a contract, whether it is verified)\n    - Proxy contract information (if applicable): determines if a smart contract is a proxy contract (which forwards calls to implementation contracts), including proxy type and implementation addresses\n    - Token details (if the contract is a token): name, symbol, decimals, total supply, etc.\n    Essential for address analysis, contract investigation, token research, and DeFi protocol analysis.\n    ",
                "inputSchema": {
                  "properties": {
                    "address": {
                      "description": "Address to get information about",
                      "title": "Address",
                      "type": "string"
                    },
                    "chain_id": {
                      "description": "The ID of the blockchain",
                      "title": "Chain Id",
                      "type": "string"
                    }
                  },
                  "required": [
                    "chain_id",
                    "address"
                  ],
                  "title": "get_address_infoArguments",
                  "type": "object"
                },
                "name": "get_address_info",
                "outputSchema": {
                  "$defs": {
                    "AddressInfoData": {
                      "description": "A structured representation of the combined address information.",
                      "properties": {
                        "basic_info": {
                          "additionalProperties": true,
                          "description": "Core on-chain data for the address from the Blockscout API.",
                          "title": "Basic Info",
                          "type": "object"
                        },
                        "first_transaction_details": {
                          "anyOf": [
                            {
                              "$ref": "#/$defs/FirstTransactionDetails"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "default": null,
                          "description": "Details about the first transaction made to or from this address, if any."
                        },
                        "metadata": {
                          "anyOf": [
                            {
                              "additionalProperties": true,
                              "type": "object"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "default": null,
                          "description": "Optional metadata, such as public tags, from the Metadata service.",
                          "title": "Metadata"
                        }
                      },
                      "required": [
                        "basic_info"
                      ],
                      "title": "AddressInfoData",
                      "type": "object"
                    },
                    "FirstTransactionDetails": {
                      "description": "Details about the earliest transaction for an address.",
                      "properties": {
                        "block_number": {
                          "description": "The block number of the first transaction.",
                          "title": "Block Number",
                          "type": "integer"
                        },
                        "timestamp": {
                          "description": "The timestamp of the first transaction (ISO format).",
                          "title": "Timestamp",
                          "type": "string"
                        }
                      },
                      "required": [
                        "block_number",
                        "timestamp"
                      ],
                      "title": "FirstTransactionDetails",
                      "type": "object"
                    },
                    "NextCallInfo": {
                      "description": "A structured representation of the tool call required to get the next page.",
                      "properties": {
                        "params": {
                          "additionalProperties": true,
                          "description": "A complete dictionary of parameters for the next tool call, including the new cursor.",
                          "title": "Params",
                          "type": "object"
                        },
                        "tool_name": {
                          "description": "The name of the tool to call for the next page.",
                          "title": "Tool Name",
                          "type": "string"
                        }
                      },
                      "required": [
                        "tool_name",
                        "params"
                      ],
                      "title": "NextCallInfo",
                      "type": "object"
                    },
                    "PaginationInfo": {
                      "description": "Contains the structured information needed to retrieve the next page of results.",
                      "properties": {
                        "next_call": {
                          "$ref": "#/$defs/NextCallInfo",
                          "description": "The structured tool call required to fetch the subsequent page."
                        }
                      },
                      "required": [
                        "next_call"
                      ],
                      "title": "PaginationInfo",
                      "type": "object"
                    }
                  },
                  "properties": {
                    "content_text": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Optional human-readable summary used for MCP content responses.",
                      "title": "Content Text"
                    },
                    "data": {
                      "$ref": "#/$defs/AddressInfoData",
                      "description": "The main data payload of the tool's response."
                    },
                    "data_description": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of notes explaining the structure, fields, or conventions of the 'data' payload.",
                      "title": "Data Description"
                    },
                    "instructions": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of suggested follow-up actions or instructions for the LLM to plan its next steps.",
                      "title": "Instructions"
                    },
                    "notes": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of important contextual notes, such as warnings about data truncation or data quality issues.",
                      "title": "Notes"
                    },
                    "pagination": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/PaginationInfo"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Pagination information, present only if the 'data' is a single page of a larger result set."
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "title": "ToolResponse[AddressInfoData]",
                  "type": "object"
                },
                "title": "Get Address Information"
              },
              {
                "_meta": {
                  "openai/toolInvocation/invoked": "Tokens ready",
                  "openai/toolInvocation/invoking": "Fetching tokens by address..."
                },
                "annotations": {
                  "destructiveHint": false,
                  "openWorldHint": true,
                  "readOnlyHint": true
                },
                "description": "\n    Get comprehensive ERC20 token holdings for an address with enriched metadata and market data.\n    Returns detailed token information including contract details (name, symbol, decimals), market metrics (exchange rate, market cap, volume), holders count, and actual balance (provided as is, without adjusting by decimals).\n    Essential for portfolio analysis, wallet auditing, and DeFi position tracking.\n    **SUPPORTS PAGINATION**: If response includes 'pagination' field, use the provided next_call to get additional pages.\n    ",
                "inputSchema": {
                  "properties": {
                    "address": {
                      "description": "Wallet address",
                      "title": "Address",
                      "type": "string"
                    },
                    "chain_id": {
                      "description": "The ID of the blockchain",
                      "title": "Chain Id",
                      "type": "string"
                    },
                    "cursor": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "The pagination cursor from a previous response to get the next page of results.",
                      "title": "Cursor"
                    }
                  },
                  "required": [
                    "chain_id",
                    "address"
                  ],
                  "title": "get_tokens_by_addressArguments",
                  "type": "object"
                },
                "name": "get_tokens_by_address",
                "outputSchema": {
                  "$defs": {
                    "NextCallInfo": {
                      "description": "A structured representation of the tool call required to get the next page.",
                      "properties": {
                        "params": {
                          "additionalProperties": true,
                          "description": "A complete dictionary of parameters for the next tool call, including the new cursor.",
                          "title": "Params",
                          "type": "object"
                        },
                        "tool_name": {
                          "description": "The name of the tool to call for the next page.",
                          "title": "Tool Name",
                          "type": "string"
                        }
                      },
                      "required": [
                        "tool_name",
                        "params"
                      ],
                      "title": "NextCallInfo",
                      "type": "object"
                    },
                    "PaginationInfo": {
                      "description": "Contains the structured information needed to retrieve the next page of results.",
                      "properties": {
                        "next_call": {
                          "$ref": "#/$defs/NextCallInfo",
                          "description": "The structured tool call required to fetch the subsequent page."
                        }
                      },
                      "required": [
                        "next_call"
                      ],
                      "title": "PaginationInfo",
                      "type": "object"
                    },
                    "TokenHoldingData": {
                      "description": "Represents a single token holding with its associated metadata.",
                      "properties": {
                        "address": {
                          "description": "The contract address of the token.",
                          "title": "Address",
                          "type": "string"
                        },
                        "balance": {
                          "description": "The token balance for the queried address (unadjusted for decimals).",
                          "title": "Balance",
                          "type": "string"
                        },
                        "circulating_market_cap": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The circulating market cap, if available.",
                          "title": "Circulating Market Cap"
                        },
                        "decimals": {
                          "description": "The number of decimals the token uses.",
                          "title": "Decimals",
                          "type": "string"
                        },
                        "exchange_rate": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The current exchange rate, if available.",
                          "title": "Exchange Rate"
                        },
                        "holders_count": {
                          "description": "The number of addresses holding this token.",
                          "title": "Holders Count",
                          "type": "string"
                        },
                        "name": {
                          "description": "The full name of the token (e.g., 'USD Coin').",
                          "title": "Name",
                          "type": "string"
                        },
                        "symbol": {
                          "description": "The symbol of the token (e.g., 'USDC').",
                          "title": "Symbol",
                          "type": "string"
                        },
                        "total_supply": {
                          "description": "The total supply of the token.",
                          "title": "Total Supply",
                          "type": "string"
                        }
                      },
                      "required": [
                        "address",
                        "name",
                        "symbol",
                        "decimals",
                        "total_supply",
                        "circulating_market_cap",
                        "exchange_rate",
                        "holders_count",
                        "balance"
                      ],
                      "title": "TokenHoldingData",
                      "type": "object"
                    }
                  },
                  "properties": {
                    "content_text": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Optional human-readable summary used for MCP content responses.",
                      "title": "Content Text"
                    },
                    "data": {
                      "description": "The main data payload of the tool's response.",
                      "items": {
                        "$ref": "#/$defs/TokenHoldingData"
                      },
                      "title": "Data",
                      "type": "array"
                    },
                    "data_description": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of notes explaining the structure, fields, or conventions of the 'data' payload.",
                      "title": "Data Description"
                    },
                    "instructions": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of suggested follow-up actions or instructions for the LLM to plan its next steps.",
                      "title": "Instructions"
                    },
                    "notes": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of important contextual notes, such as warnings about data truncation or data quality issues.",
                      "title": "Notes"
                    },
                    "pagination": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/PaginationInfo"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Pagination information, present only if the 'data' is a single page of a larger result set."
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "title": "ToolResponse[list[TokenHoldingData]]",
                  "type": "object"
                },
                "title": "Get Tokens by Address"
              },
              {
                "_meta": {
                  "openai/toolInvocation/invoked": "NFT tokens ready",
                  "openai/toolInvocation/invoking": "Fetching NFT tokens..."
                },
                "annotations": {
                  "destructiveHint": false,
                  "openWorldHint": true,
                  "readOnlyHint": true
                },
                "description": "\n    Retrieve NFT tokens (ERC-721, ERC-404, ERC-1155) owned by an address, grouped by collection.\n    Provides collection details (type, address, name, symbol, total supply, holder count) and individual token instance data (ID, name, description, external URL, metadata attributes).\n    Essential for a detailed overview of an address's digital collectibles and their associated collection data.\n    **SUPPORTS PAGINATION**: If response includes 'pagination' field, use the provided next_call to get additional pages.\n    ",
                "inputSchema": {
                  "properties": {
                    "address": {
                      "description": "NFT owner address",
                      "title": "Address",
                      "type": "string"
                    },
                    "chain_id": {
                      "description": "The ID of the blockchain",
                      "title": "Chain Id",
                      "type": "string"
                    },
                    "cursor": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "The pagination cursor from a previous response to get the next page of results.",
                      "title": "Cursor"
                    }
                  },
                  "required": [
                    "chain_id",
                    "address"
                  ],
                  "title": "nft_tokens_by_addressArguments",
                  "type": "object"
                },
                "name": "nft_tokens_by_address",
                "outputSchema": {
                  "$defs": {
                    "NextCallInfo": {
                      "description": "A structured representation of the tool call required to get the next page.",
                      "properties": {
                        "params": {
                          "additionalProperties": true,
                          "description": "A complete dictionary of parameters for the next tool call, including the new cursor.",
                          "title": "Params",
                          "type": "object"
                        },
                        "tool_name": {
                          "description": "The name of the tool to call for the next page.",
                          "title": "Tool Name",
                          "type": "string"
                        }
                      },
                      "required": [
                        "tool_name",
                        "params"
                      ],
                      "title": "NextCallInfo",
                      "type": "object"
                    },
                    "NftCollectionHolding": {
                      "description": "Represents an address's holding in a single NFT collection.",
                      "properties": {
                        "amount": {
                          "description": "The number of tokens from this collection owned by the address.",
                          "title": "Amount",
                          "type": "string"
                        },
                        "collection": {
                          "$ref": "#/$defs/NftCollectionInfo",
                          "description": "The details of the NFT collection."
                        },
                        "token_instances": {
                          "description": "A list of the specific NFT instances owned by the address.",
                          "items": {
                            "$ref": "#/$defs/NftTokenInstance"
                          },
                          "title": "Token Instances",
                          "type": "array"
                        }
                      },
                      "required": [
                        "collection",
                        "amount",
                        "token_instances"
                      ],
                      "title": "NftCollectionHolding",
                      "type": "object"
                    },
                    "NftCollectionInfo": {
                      "description": "Represents the metadata for an NFT collection.",
                      "properties": {
                        "address": {
                          "description": "The smart contract address of the NFT collection.",
                          "title": "Address",
                          "type": "string"
                        },
                        "holders_count": {
                          "description": "The number of unique addresses that hold a token from this collection.",
                          "title": "Holders Count",
                          "type": "integer"
                        },
                        "name": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "default": null,
                          "description": "The name of the collection.",
                          "title": "Name"
                        },
                        "symbol": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "default": null,
                          "description": "The symbol of the collection.",
                          "title": "Symbol"
                        },
                        "total_supply": {
                          "description": "The total number of tokens in the collection.",
                          "title": "Total Supply",
                          "type": "integer"
                        },
                        "type": {
                          "description": "The token standard of the collection.",
                          "title": "Type",
                          "type": "string"
                        }
                      },
                      "required": [
                        "type",
                        "address",
                        "holders_count",
                        "total_supply"
                      ],
                      "title": "NftCollectionInfo",
                      "type": "object"
                    },
                    "NftTokenInstance": {
                      "description": "Represents a single NFT instance with its metadata.",
                      "properties": {
                        "description": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "default": null,
                          "description": "The description of the NFT, extracted from its metadata.",
                          "title": "Description"
                        },
                        "external_app_url": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "default": null,
                          "description": "A URL to an external site or application related to the NFT.",
                          "title": "External App Url"
                        },
                        "id": {
                          "description": "The unique identifier of the NFT token instance.",
                          "title": "Id",
                          "type": "string"
                        },
                        "image_url": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "default": null,
                          "description": "A URL for the NFT's image, from its metadata.",
                          "title": "Image Url"
                        },
                        "metadata_attributes": {
                          "anyOf": [
                            {
                              "items": {},
                              "type": "array"
                            },
                            {
                              "additionalProperties": true,
                              "type": "object"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "default": null,
                          "description": "The metadata attributes (traits) associated with the NFT.",
                          "title": "Metadata Attributes"
                        },
                        "name": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "default": null,
                          "description": "The name of the NFT, extracted from its metadata.",
                          "title": "Name"
                        }
                      },
                      "required": [
                        "id"
                      ],
                      "title": "NftTokenInstance",
                      "type": "object"
                    },
                    "PaginationInfo": {
                      "description": "Contains the structured information needed to retrieve the next page of results.",
                      "properties": {
                        "next_call": {
                          "$ref": "#/$defs/NextCallInfo",
                          "description": "The structured tool call required to fetch the subsequent page."
                        }
                      },
                      "required": [
                        "next_call"
                      ],
                      "title": "PaginationInfo",
                      "type": "object"
                    }
                  },
                  "properties": {
                    "content_text": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Optional human-readable summary used for MCP content responses.",
                      "title": "Content Text"
                    },
                    "data": {
                      "description": "The main data payload of the tool's response.",
                      "items": {
                        "$ref": "#/$defs/NftCollectionHolding"
                      },
                      "title": "Data",
                      "type": "array"
                    },
                    "data_description": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of notes explaining the structure, fields, or conventions of the 'data' payload.",
                      "title": "Data Description"
                    },
                    "instructions": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of suggested follow-up actions or instructions for the LLM to plan its next steps.",
                      "title": "Instructions"
                    },
                    "notes": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of important contextual notes, such as warnings about data truncation or data quality issues.",
                      "title": "Notes"
                    },
                    "pagination": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/PaginationInfo"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Pagination information, present only if the 'data' is a single page of a larger result set."
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "title": "ToolResponse[list[NftCollectionHolding]]",
                  "type": "object"
                },
                "title": "Get NFT Tokens by Address"
              },
              {
                "_meta": {
                  "openai/toolInvocation/invoked": "Transaction details ready",
                  "openai/toolInvocation/invoking": "Fetching transaction details..."
                },
                "annotations": {
                  "destructiveHint": false,
                  "openWorldHint": true,
                  "readOnlyHint": true
                },
                "description": "\n    Get comprehensive transaction information.\n    Unlike standard eth_getTransactionByHash, this tool returns enriched data including decoded input parameters, detailed token transfers with token metadata, transaction fee breakdown (priority fees, burnt fees) and categorized transaction types.\n    By default, the raw transaction input is omitted if a decoded version is available to save context; request it with `include_raw_input=True` only when you truly need the raw hex data.\n    Essential for transaction analysis, debugging smart contract interactions, tracking DeFi operations.\n    ",
                "inputSchema": {
                  "properties": {
                    "chain_id": {
                      "description": "The ID of the blockchain",
                      "title": "Chain Id",
                      "type": "string"
                    },
                    "include_raw_input": {
                      "anyOf": [
                        {
                          "type": "boolean"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": false,
                      "description": "If true, includes the raw transaction input data.",
                      "title": "Include Raw Input"
                    },
                    "transaction_hash": {
                      "description": "Transaction hash",
                      "title": "Transaction Hash",
                      "type": "string"
                    }
                  },
                  "required": [
                    "chain_id",
                    "transaction_hash"
                  ],
                  "title": "get_transaction_infoArguments",
                  "type": "object"
                },
                "name": "get_transaction_info",
                "outputSchema": {
                  "$defs": {
                    "DecodedInput": {
                      "additionalProperties": true,
                      "description": "Represents the decoded input data of a transaction.",
                      "properties": {
                        "method_call": {
                          "description": "Name of the called method.",
                          "title": "Method Call",
                          "type": "string"
                        },
                        "method_id": {
                          "description": "Identifier of the called method.",
                          "title": "Method Id",
                          "type": "string"
                        },
                        "parameters": {
                          "description": "List of decoded input parameters for the method call.",
                          "items": {},
                          "title": "Parameters",
                          "type": "array"
                        }
                      },
                      "required": [
                        "method_call",
                        "method_id",
                        "parameters"
                      ],
                      "title": "DecodedInput",
                      "type": "object"
                    },
                    "NextCallInfo": {
                      "description": "A structured representation of the tool call required to get the next page.",
                      "properties": {
                        "params": {
                          "additionalProperties": true,
                          "description": "A complete dictionary of parameters for the next tool call, including the new cursor.",
                          "title": "Params",
                          "type": "object"
                        },
                        "tool_name": {
                          "description": "The name of the tool to call for the next page.",
                          "title": "Tool Name",
                          "type": "string"
                        }
                      },
                      "required": [
                        "tool_name",
                        "params"
                      ],
                      "title": "NextCallInfo",
                      "type": "object"
                    },
                    "PaginationInfo": {
                      "description": "Contains the structured information needed to retrieve the next page of results.",
                      "properties": {
                        "next_call": {
                          "$ref": "#/$defs/NextCallInfo",
                          "description": "The structured tool call required to fetch the subsequent page."
                        }
                      },
                      "required": [
                        "next_call"
                      ],
                      "title": "PaginationInfo",
                      "type": "object"
                    },
                    "TokenTransfer": {
                      "additionalProperties": true,
                      "description": "Represents a single token transfer within a transaction.",
                      "properties": {
                        "from": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Sender address of the token transfer if available.",
                          "title": "From"
                        },
                        "to": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "Recipient address of the token transfer if available.",
                          "title": "To"
                        },
                        "token": {
                          "anyOf": [
                            {
                              "additionalProperties": true,
                              "type": "object"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "default": null,
                          "description": "Token metadata dictionary associated with the transfer.",
                          "title": "Token"
                        },
                        "type": {
                          "description": "Type of transfer (e.g., 'transfer', 'mint').",
                          "title": "Type",
                          "type": "string"
                        }
                      },
                      "required": [
                        "from",
                        "to",
                        "type"
                      ],
                      "title": "TokenTransfer",
                      "type": "object"
                    },
                    "TransactionInfoData": {
                      "additionalProperties": true,
                      "description": "Structured representation of get_transaction_info data.",
                      "properties": {
                        "decoded_input": {
                          "anyOf": [
                            {
                              "$ref": "#/$defs/DecodedInput"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "default": null,
                          "description": "Decoded method input if available."
                        },
                        "from": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "default": null,
                          "description": "Sender of the transaction if available.",
                          "title": "From"
                        },
                        "raw_input": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "default": null,
                          "description": "Raw transaction input data if returned.",
                          "title": "Raw Input"
                        },
                        "raw_input_truncated": {
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "default": null,
                          "description": "Indicates if raw_input was truncated.",
                          "title": "Raw Input Truncated"
                        },
                        "to": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "default": null,
                          "description": "Recipient of the transaction if available.",
                          "title": "To"
                        },
                        "token_transfers": {
                          "description": "List of token transfers related to the transaction.",
                          "items": {
                            "$ref": "#/$defs/TokenTransfer"
                          },
                          "title": "Token Transfers",
                          "type": "array"
                        },
                        "user_operations": {
                          "anyOf": [
                            {
                              "items": {
                                "$ref": "#/$defs/UserOpsLite"
                              },
                              "type": "array"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "default": null,
                          "description": "List of ERC-4337 User Operations associated with this transaction",
                          "title": "User Operations"
                        }
                      },
                      "title": "TransactionInfoData",
                      "type": "object"
                    },
                    "UserOpsLite": {
                      "description": "Represents a summary of an ERC-4337 User Operation.",
                      "properties": {
                        "operation_hash": {
                          "description": "The hash of the user operation",
                          "title": "Operation Hash",
                          "type": "string"
                        },
                        "sender": {
                          "description": "The address that sent the user operation",
                          "title": "Sender",
                          "type": "string"
                        }
                      },
                      "required": [
                        "sender",
                        "operation_hash"
                      ],
                      "title": "UserOpsLite",
                      "type": "object"
                    }
                  },
                  "properties": {
                    "content_text": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Optional human-readable summary used for MCP content responses.",
                      "title": "Content Text"
                    },
                    "data": {
                      "$ref": "#/$defs/TransactionInfoData",
                      "description": "The main data payload of the tool's response."
                    },
                    "data_description": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of notes explaining the structure, fields, or conventions of the 'data' payload.",
                      "title": "Data Description"
                    },
                    "instructions": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of suggested follow-up actions or instructions for the LLM to plan its next steps.",
                      "title": "Instructions"
                    },
                    "notes": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of important contextual notes, such as warnings about data truncation or data quality issues.",
                      "title": "Notes"
                    },
                    "pagination": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/PaginationInfo"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Pagination information, present only if the 'data' is a single page of a larger result set."
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "title": "ToolResponse[TransactionInfoData]",
                  "type": "object"
                },
                "title": "Get Transaction Information"
              },
              {
                "_meta": {
                  "openai/toolInvocation/invoked": "Chains list ready",
                  "openai/toolInvocation/invoking": "Fetching chains list..."
                },
                "annotations": {
                  "destructiveHint": false,
                  "openWorldHint": true,
                  "readOnlyHint": true
                },
                "description": "\n    Get the list of known blockchain chains with their IDs.\n    Useful for getting a chain ID when the chain name is known. This information can be used in other tools that require a chain ID to request information.\n    ",
                "inputSchema": {
                  "properties": {},
                  "title": "get_chains_listArguments",
                  "type": "object"
                },
                "name": "get_chains_list",
                "outputSchema": {
                  "$defs": {
                    "ChainInfo": {
                      "description": "Represents a blockchain with its essential identifiers.",
                      "properties": {
                        "chain_id": {
                          "description": "The unique identifier for the chain.",
                          "title": "Chain Id",
                          "type": "string"
                        },
                        "ecosystem": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "items": {
                                "type": "string"
                              },
                              "type": "array"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The ecosystem the chain belongs to, if applicable (e.g., 'Ethereum').",
                          "title": "Ecosystem"
                        },
                        "is_testnet": {
                          "description": "Indicates if the chain is a testnet.",
                          "title": "Is Testnet",
                          "type": "boolean"
                        },
                        "name": {
                          "description": "The common name of the blockchain (e.g., 'Ethereum').",
                          "title": "Name",
                          "type": "string"
                        },
                        "native_currency": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "description": "The native currency symbol of the chain (e.g., 'ETH').",
                          "title": "Native Currency"
                        },
                        "settlement_layer_chain_id": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "default": null,
                          "description": "The L1 chain ID where this rollup settles, if applicable.",
                          "title": "Settlement Layer Chain Id"
                        }
                      },
                      "required": [
                        "name",
                        "chain_id",
                        "is_testnet",
                        "native_currency",
                        "ecosystem"
                      ],
                      "title": "ChainInfo",
                      "type": "object"
                    },
                    "NextCallInfo": {
                      "description": "A structured representation of the tool call required to get the next page.",
                      "properties": {
                        "params": {
                          "additionalProperties": true,
                          "description": "A complete dictionary of parameters for the next tool call, including the new cursor.",
                          "title": "Params",
                          "type": "object"
                        },
                        "tool_name": {
                          "description": "The name of the tool to call for the next page.",
                          "title": "Tool Name",
                          "type": "string"
                        }
                      },
                      "required": [
                        "tool_name",
                        "params"
                      ],
                      "title": "NextCallInfo",
                      "type": "object"
                    },
                    "PaginationInfo": {
                      "description": "Contains the structured information needed to retrieve the next page of results.",
                      "properties": {
                        "next_call": {
                          "$ref": "#/$defs/NextCallInfo",
                          "description": "The structured tool call required to fetch the subsequent page."
                        }
                      },
                      "required": [
                        "next_call"
                      ],
                      "title": "PaginationInfo",
                      "type": "object"
                    }
                  },
                  "properties": {
                    "content_text": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Optional human-readable summary used for MCP content responses.",
                      "title": "Content Text"
                    },
                    "data": {
                      "description": "The main data payload of the tool's response.",
                      "items": {
                        "$ref": "#/$defs/ChainInfo"
                      },
                      "title": "Data",
                      "type": "array"
                    },
                    "data_description": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of notes explaining the structure, fields, or conventions of the 'data' payload.",
                      "title": "Data Description"
                    },
                    "instructions": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of suggested follow-up actions or instructions for the LLM to plan its next steps.",
                      "title": "Instructions"
                    },
                    "notes": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of important contextual notes, such as warnings about data truncation or data quality issues.",
                      "title": "Notes"
                    },
                    "pagination": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/PaginationInfo"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Pagination information, present only if the 'data' is a single page of a larger result set."
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "title": "ToolResponse[list[ChainInfo]]",
                  "type": "object"
                },
                "title": "Get List of Chains"
              },
              {
                "_meta": {
                  "openai/toolInvocation/invoked": "API call complete",
                  "openai/toolInvocation/invoking": "Calling Blockscout API..."
                },
                "annotations": {
                  "destructiveHint": false,
                  "openWorldHint": true,
                  "readOnlyHint": true
                },
                "description": "Call a raw Blockscout API endpoint for advanced or chain-specific data.\n\n    Do not include query strings in ``endpoint_path``; pass all query parameters via\n    ``query_params`` to avoid double-encoding.\n\n    **SUPPORTS PAGINATION**: If response includes 'pagination' field,\n    use the provided next_call to get additional pages.\n\n    Returns:\n        ToolResponse[Any]: Must return ToolResponse[Any] (not ToolResponse[BaseModel])\n        because specialized handlers can return lists or other types that don't inherit\n        from BaseModel. The dispatcher system supports flexible data structures.\n    ",
                "inputSchema": {
                  "properties": {
                    "chain_id": {
                      "description": "The ID of the blockchain",
                      "title": "Chain Id",
                      "type": "string"
                    },
                    "cursor": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "The pagination cursor from a previous response to get the next page of results.",
                      "title": "Cursor"
                    },
                    "endpoint_path": {
                      "description": "The Blockscout API path to call (e.g., '/api/v2/stats'); do not include query strings.",
                      "title": "Endpoint Path",
                      "type": "string"
                    },
                    "query_params": {
                      "anyOf": [
                        {
                          "additionalProperties": true,
                          "type": "object"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Optional query parameters forwarded to the Blockscout API.",
                      "title": "Query Params"
                    }
                  },
                  "required": [
                    "chain_id",
                    "endpoint_path"
                  ],
                  "title": "direct_api_callArguments",
                  "type": "object"
                },
                "name": "direct_api_call",
                "outputSchema": {
                  "$defs": {
                    "NextCallInfo": {
                      "description": "A structured representation of the tool call required to get the next page.",
                      "properties": {
                        "params": {
                          "additionalProperties": true,
                          "description": "A complete dictionary of parameters for the next tool call, including the new cursor.",
                          "title": "Params",
                          "type": "object"
                        },
                        "tool_name": {
                          "description": "The name of the tool to call for the next page.",
                          "title": "Tool Name",
                          "type": "string"
                        }
                      },
                      "required": [
                        "tool_name",
                        "params"
                      ],
                      "title": "NextCallInfo",
                      "type": "object"
                    },
                    "PaginationInfo": {
                      "description": "Contains the structured information needed to retrieve the next page of results.",
                      "properties": {
                        "next_call": {
                          "$ref": "#/$defs/NextCallInfo",
                          "description": "The structured tool call required to fetch the subsequent page."
                        }
                      },
                      "required": [
                        "next_call"
                      ],
                      "title": "PaginationInfo",
                      "type": "object"
                    }
                  },
                  "properties": {
                    "content_text": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Optional human-readable summary used for MCP content responses.",
                      "title": "Content Text"
                    },
                    "data": {
                      "description": "The main data payload of the tool's response.",
                      "title": "Data"
                    },
                    "data_description": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of notes explaining the structure, fields, or conventions of the 'data' payload.",
                      "title": "Data Description"
                    },
                    "instructions": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of suggested follow-up actions or instructions for the LLM to plan its next steps.",
                      "title": "Instructions"
                    },
                    "notes": {
                      "anyOf": [
                        {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "A list of important contextual notes, such as warnings about data truncation or data quality issues.",
                      "title": "Notes"
                    },
                    "pagination": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/PaginationInfo"
                        },
                        {
                          "type": "null"
                        }
                      ],
                      "default": null,
                      "description": "Pagination information, present only if the 'data' is a single page of a larger result set."
                    }
                  },
                  "required": [
                    "data"
                  ],
                  "title": "ToolResponse[Any]",
                  "type": "object"
                },
                "title": "Direct Blockscout API Call"
              }
            ]
          }
        },
        "url": "https://mcp.blockscout.com/mcp"
      },
      "latency_ms": 442.75,
      "status": "ok"
    },
    "transport_compliance_probe": {
      "details": {
        "bad_protocol_error": null,
        "bad_protocol_headers": {
          "content-type": "application/json",
          "strict-transport-security": "max-age=31536000; includeSubDomains"
        },
        "bad_protocol_payload": {
          "error": {
            "code": -32600,
            "message": "Bad Request: Unsupported protocol version: 1999-99-99. Supported versions: 2024-11-05, 2025-03-26, 2025-06-18, 2025-11-25"
          },
          "id": "server-error",
          "jsonrpc": "2.0"
        },
        "bad_protocol_status_code": 400,
        "delete_error": null,
        "delete_status_code": null,
        "expired_session_error": null,
        "expired_session_status_code": null,
        "issues": [
          "missing_session_id",
          "missing_protocol_header"
        ],
        "last_event_id_visible": false,
        "protocol_header_present": false,
        "requested_protocol_version": "2025-03-26",
        "session_id_present": false,
        "transport": "streamable-http"
      },
      "latency_ms": 164.79,
      "status": "warning"
    },
    "utility_coverage_probe": {
      "details": {
        "completions": {
          "advertised": false,
          "live_probe": "not_executed",
          "sample_target": null
        },
        "initialize_capability_keys": [
          "experimental",
          "prompts",
          "resources",
          "tools"
        ],
        "pagination": {
          "metadata_signal": false,
          "next_cursor_methods": [],
          "supported": false
        },
        "tasks": {
          "advertised": false,
          "http_status": 200,
          "probe_status": "missing"
        }
      },
      "latency_ms": 154.7,
      "status": "missing"
    }
  },
  "failures": {
    "oauth_authorization_server": {
      "reason": "no_authorization_server"
    },
    "oauth_protected_resource": {
      "error": "Client error '404 Not Found' for url 'https://mcp.blockscout.com/.well-known/oauth-protected-resource'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
      "url": "https://mcp.blockscout.com/.well-known/oauth-protected-resource"
    },
    "openid_configuration": {
      "reason": "no_authorization_server"
    },
    "server_card": {
      "error": "Client error '404 Not Found' for url 'https://mcp.blockscout.com/.well-known/mcp/server-card.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/404",
      "url": "https://mcp.blockscout.com/.well-known/mcp/server-card.json"
    }
  },
  "remote_url": "https://mcp.blockscout.com/mcp",
  "server_card_payload": null,
  "server_identifier": "com.blockscout/mcp-server"
}

Known versions

Validation history

7 day score delta
+0.0
30 day score delta
+0.0
Recent healthy ratio
100%
Freshness
605.5h
TimestampStatusScoreLatencyTools
Apr 09, 2026 12:26:01 AM UTC Healthy 75.3 2966.7 ms 16
Apr 08, 2026 12:25:15 AM UTC Healthy 75.3 2938.8 ms 16
Apr 07, 2026 12:24:30 AM UTC Healthy 75.3 2596.3 ms 16
Apr 06, 2026 12:23:30 AM UTC Healthy 75.3 3394.1 ms 16
Apr 05, 2026 12:22:23 AM UTC Healthy 75.3 3428.7 ms 16
Apr 04, 2026 12:21:13 AM UTC Healthy 75.3 3275.2 ms 16
Apr 03, 2026 12:19:50 AM UTC Healthy 75.3 3362.6 ms 16
Apr 02, 2026 12:10:02 AM UTC Healthy 75.3 3083.1 ms 16

Validation timeline

ValidatedSummaryScoreProtocolAuth modeToolsHigh-risk toolsChanges
Apr 09, 2026 12:26:01 AM UTC Healthy 75.3 2025-03-26 public 16 1 none
Apr 08, 2026 12:25:15 AM UTC Healthy 75.3 2025-03-26 public 16 1 none
Apr 07, 2026 12:24:30 AM UTC Healthy 75.3 2025-03-26 public 16 1 none
Apr 06, 2026 12:23:30 AM UTC Healthy 75.3 2025-03-26 public 16 1 none
Apr 05, 2026 12:22:23 AM UTC Healthy 75.3 2025-03-26 public 16 1 none
Apr 04, 2026 12:21:13 AM UTC Healthy 75.3 2025-03-26 public 16 1 none
Apr 03, 2026 12:19:50 AM UTC Healthy 75.3 2025-03-26 public 16 1 none
Apr 02, 2026 12:10:02 AM UTC Healthy 75.3 2025-03-26 public 16 1 none
Mar 31, 2026 11:32:30 PM UTC Healthy 75.3 2025-03-26 public 16 1 none
Mar 30, 2026 11:24:49 PM UTC Healthy 75.3 2025-03-26 public 16 1 none
Mar 29, 2026 11:17:04 PM UTC Healthy 75.3 2025-03-26 public 16 1 none
Mar 28, 2026 09:07:41 PM UTC Healthy 75.3 2025-03-26 public 16 1 none

Recent validation runs

StartedStatusSummaryLatencyChecks
Apr 09, 2026 12:25:58 AM UTC Completed Healthy 2966.7 ms action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe
Apr 08, 2026 12:25:12 AM UTC Completed Healthy 2938.8 ms action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe
Apr 07, 2026 12:24:27 AM UTC Completed Healthy 2596.3 ms action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe
Apr 06, 2026 12:23:27 AM UTC Completed Healthy 3394.1 ms action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe
Apr 05, 2026 12:22:19 AM UTC Completed Healthy 3428.7 ms action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe
Apr 04, 2026 12:21:10 AM UTC Completed Healthy 3275.2 ms action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe
Apr 03, 2026 12:19:47 AM UTC Completed Healthy 3362.6 ms action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe
Apr 02, 2026 12:09:59 AM UTC Completed Healthy 3083.1 ms action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe
Mar 31, 2026 11:32:28 PM UTC Completed Healthy 2734.9 ms action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe
Mar 30, 2026 11:24:46 PM UTC Completed Healthy 2928.8 ms action_safety_probe, advanced_capabilities_probe, connector_publishability_probe, connector_replay_probe, determinism_probe, initialize, interactive_flow_probe, oauth_authorization_server, oauth_protected_resource, official_registry_probe, openid_configuration, probe_noise_resilience, prompt_get, prompts_list, protocol_version_probe, provenance_divergence_probe, request_association_probe, resource_read, resources_list, server_card, session_resume_probe, step_up_auth_probe, tool_snapshot_probe, tools_list, transport_compliance_probe, utility_coverage_probe