arc-pow-sigils-mcp
Provides read-only tools for inspecting the Proof of Architect NFT collection on the Arc testnet, including collection stats, token data, PoW difficulty and pricing, plus off-chain verification of mined nonces and craft commit hashes without sending transactions.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@arc-pow-sigils-mcpverify nonce 1024085 for 0x1111111111111111111111111111111111111111"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
arc-pow-sigils-mcp
A standalone Model Context Protocol (MCP) server
for the Proof of Architect NFT collection (deterministic Architector cards) — a proof-of-work
minted NFT on Arc testnet (chainId 5042002, native gas token USDC, 18 decimals).
The server exposes read-only tools over the deployed PowMintNFTv3 contract so an
LLM agent can inspect collection stats, token data, PoW difficulty and pricing — and
even verify a mined nonce without sending a transaction.
Contract (v3.2 testnet):
0x2F7cE1e4A175b1A16e4f151fA5B862ea6b9F3C8b(mainnet TBD; override viaCONTRACT_ADDRESS)RPC:
https://rpc.testnet.arc.io(override viaARC_RPC_URL)Transport: stdio (newline-delimited JSON-RPC)
Quick start
Run with npx (after publishing)
npx arc-pow-sigils-mcpRun from source
npm install
npm run build # tsc -> dist/
npm run smoke # spawns the server and hits the live chain
node dist/index.js # start the stdio serverThe server speaks MCP over stdin/stdout and logs only to stderr — it is normally launched by an MCP client, not by hand.
Related MCP server: Base Intel MCP
Use in Claude Desktop
Add this to your claude_desktop_config.json
(~/Library/Application Support/Claude/claude_desktop_config.json on macOS,
%APPDATA%\Claude\claude_desktop_config.json on Windows):
{
"mcpServers": {
"arc-pow-sigils": {
"command": "npx",
"args": ["-y", "arc-pow-sigils-mcp"],
"env": {
"SITE_URL": "https://proofofarchitect.builders"
}
}
}
}Or, pointing at a local build:
{
"mcpServers": {
"arc-pow-sigils": {
"command": "node",
"args": ["/absolute/path/to/mcp/dist/index.js"],
"env": {
"CONTRACT_ADDRESS": "0x2F7cE1e4A175b1A16e4f151fA5B862ea6b9F3C8b",
"ARC_RPC_URL": "https://rpc.testnet.arc.io",
"SITE_URL": "https://proofofarchitect.builders"
}
}
}
}Restart Claude Desktop after editing the config.
Tools
Tool | Input | Returns |
| — |
|
|
|
|
|
|
|
|
|
|
| — |
|
| — | CraftingController v1 config: |
|
| Recomputes |
All tools return a single JSON text content block. verify_nonce recomputes the
preimage hash locally as
keccak256(abi.encodePacked(chainId, contract, miner, nonce)) and counts leading
zero bits itself, so it does not trust the RPC for the PoW verdict.
Example: verify a mined nonce
Sample response for a placeholder wallet on the current testnet core
(CONTRACT_ADDRESS, as of 2026-09):
{
"miner": "0x1111111111111111111111111111111111111111",
"nonce": "1024085",
"work": "0x23be0254d49b31835f9f7316f513ccfdc45d8b69e2e1650ae02c446e8a2d3834",
"workMatchesOnChain": true,
"leadingZeroBits": 2,
"requiredBits": 30,
"valid": false
}Call it as verify_nonce(miner = "0x1111111111111111111111111111111111111111", nonce = "1024085").
The PoW formula is the same across instances — the contract address binds the preimage, so
pass nonces mined for the contract you query.
Environment variables
Variable | Default | Purpose |
|
| PowMintNFTv3 address (mainnet TBD) |
|
| CraftingController v1 address (commit-reveal crafting) |
|
| Arc testnet RPC endpoint |
|
| Base site for |
All variables are optional. No secrets are read or stored.
Publish to the MCP registry
Check the registry name. The official MCP registry requires a reverse-DNS server name that includes your GitHub username. This package is already set to
io.github.Proofofarchitect/arc-pow-sigilsin bothpackage.json(mcpNamefield) andserver.json(namefield) — keep them in lockstep.Publish the npm package (the registry resolves the stdio package by name):
npm run build npm publish --access publicInstall the registry publisher CLI and publish the server metadata (requires the GitHub account
Proofofarchitectfor the namespace check):npx @modelcontextprotocol/mcp-publisher --help npx @modelcontextprotocol/mcp-publisher init # scaffolds/validates server.json npx @modelcontextprotocol/mcp-publisher login github # auth with your GitHub account npx @modelcontextprotocol/mcp-publisher publish # publishes server.jsonThe publisher verifies that the
namenamespace matches your authenticated GitHub identity (that is why the placeholder must be replaced).Verify on the registry at registry.modelcontextprotocol.io. New entries are served with preview status while the registry is in preview.
Keep
package.jsonversionandserver.jsonversion(and the packageversionfield) in lockstep on every release.
Development
src/chain.ts viem client singleton, contract read helpers, leadingZeroBits,
USDC formatting, work/preimage + craft-commit hash helpers
src/index.ts McpServer + 7 registered tools over StdioServerTransport
smoke.mjs minimal newline-delimited JSON-RPC client used by `npm run smoke`
server.json MCP registry manifest (npm stdio)The ABI is embedded in this package (see src/chain.ts) — it is not imported from
the website package, so mcp/ stays independently publishable.
License
MIT
Available Tools
7 toolscollection_statsCollection statsA
Read live collection stats from PowMintNFTv3: totalMinted, maxSupply, freeClaims, claimsLeft, claimedCount, currentWave, currentPrice (USDC human units) and mintPaused.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the behavioral disclosure burden. It states the operation is a read and that stats are 'live', which are useful behavioral clues. However, it does not mention side effects, latency, authentication needs, or what happens during a paused mint, so some transparency gaps remain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single well-structured sentence that leads with the action and resource, then lists the returned fields compactly. Every element earns its place; there is no filler or redundant phrasing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only tool with no output schema, the description supplies the essential missing context: the contract source and the complete list of returned values. It could be more complete by specifying value types or units for fields other than currentPrice, but the low complexity makes this adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is no parameter ambiguity to resolve. The schema coverage is trivially 100%, and the description adds value by naming the concrete statistics returned, including a unit clarification for currentPrice (USDC human units).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Read live collection stats from PowMintNFTv3') and enumerates the exact fields returned. This clearly distinguishes the tool from siblings like price_info, which appears to focus on pricing, and get_token, which likely returns token-level data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: whenever an agent needs current collection-wide minting statistics. However, it gives no explicit guidance about when not to use it or which sibling tool to prefer for related but different data, such as per-token details or craft information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
craft_infoCraft infoA
Read-only view of the CraftingController v1 (commit-reveal Architector crafting): paused, craftFee, per-tier boostCost/feeFor/maxChosen (0..3), committedFees, lastCommitId and the reveal/entropy window constants (ENTROPY_DELAY, MIN_REVEAL_DELAY, REVEAL_WINDOW). Also returns the salt policy: preimage = keccak256(abi.encode(SlotChoice[], salt)).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does well: it explicitly labels the call read-only and lists every returned field plus the salt preimage rule. It does not address error cases or formatting, but for a zero-argument getter that disclosure is substantial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is packed with useful specifics and is front-loaded with the operation and target, but the single long sentence with nested slash-separated fields is harder to scan than a short bulleted list. No words are wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless read-only view, the description is complete: it names the state fields, the per-tier bounds, the window constants, and the salt-policy formula. There is no output schema, but the description itself supplies most of what an agent would need to interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema provides no parameter details and no compensation is needed; per the baseline for 0-param tools this is fully adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific operation ('Read-only view') and the target resource (CraftingController v1), then enumerates the exact fields and constants returned. This clearly distinguishes it from sibling verification/price helpers even without explicit comparisons.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description establishes a clear read-only inspection context, but it never states when to prefer this tool over siblings like verify_craft_commit or price_info, nor does it give any when-not-to-use guidance. An agent must infer usage from the field list and tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tokenGet tokenA
Read a minted token: owner, seed, nonce, tokenURI, plus off-chain image and metadata urls. Returns an error if the token does not exist.
| Name | Required | Description | Default |
|---|---|---|---|
| tokenId | Yes | Token id (starts at 1 for the first mint). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description is the only disclosure. It explicitly says it reads data and returns an error for non-existent tokens, which is useful. It does not discuss side effects (though 'read' implies none) or potential external fetch behavior for off-chain URLs, so some behavioral depth is missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the verb and resource, and contains no filler. Every phrase adds value: the field list sets expectations and the error clause sets failure behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with no output schema, the description is complete. It enumerates the returned data and states the error condition. The schema handles parameter documentation, and there are no nested objects or complex behaviors requiring further explanation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the single parameter completely, including the tokenId description and exclusivity constraint. The tool description adds no additional parameter meaning, so a baseline score of 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies a read operation on a specific resource ('minted token') and lists the exact fields returned (owner, seed, nonce, tokenURI, image/metadata URLs). This distinguishes it from sibling tools like verify_nonce or collection_stats, which target different data or operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Read a minted token' implies the use case: call this when you need a token's stored and off-chain data. However, there is no explicit guidance about when not to use this tool or which sibling tool to prefer for related queries, leaving the differentiation to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
price_infoPrice infoA
Explain the pricing: reads currentWave and currentPrice plus epoch config (priceStart 1 USDC, x2 per wave, no cap) and returns a wave summary.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description carries the full transparency burden. It explicitly states it 'reads' specific state variables and 'returns a wave summary,' clearly implying a read-only operation with no side effects. It also discloses the exact pricing config (priceStart 1 USDC, x2 per wave, no cap), adding concrete behavioral context. Minor omissions like error conditions or permissions are acceptable for a simple read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is one tight sentence that front-loads the purpose ('Explain the pricing') and then efficiently lists the inputs, config values, and output. Every word earns its place with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there are no parameters, no output schema, and no annotations, the description is largely sufficient. It names the key inputs (currentWave, currentPrice, epoch config), the exact config constants, and the output type (wave summary). The only minor gap is that the structure of the wave summary is unspecified, but for a tool this simple it is likely not essential.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so there is nothing to describe. Per the rubric, a 0-parameter tool gets a baseline of 4. The description does not need to compensate for missing parameter documentation because none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb-resource pair, 'Explain the pricing,' and then details what it reads (currentWave, currentPrice, epoch config) and what it returns (a wave summary). This clearly differentiates it from siblings like collection_stats or craft_info, which focus on other domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for retrieving a pricing summary based on current wave state, but it never explicitly states when to use it versus alternatives or any exclusions. An agent can infer 'use this when pricing info is needed,' but no direct guidance or comparison to siblings is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
required_bitsRequired bitsB
Current PoW difficulty for a miner: requiredBits(miner) as leading zero bits, plus its three layers (wave base, load regulator, active streak) and the wallet's mint count.
| Name | Required | Description | Default |
|---|---|---|---|
| miner | Yes | EVM address of the miner (0x-prefixed, 20 bytes). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the behavioral burden. It discloses the response composition (difficulty plus three layers and mint count), but it does not explicitly state that the call is read-only or describe error behavior for an unknown/invalid miner. The 'Current' wording implies a query rather than a mutation, which provides partial transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense sentence front-loads the core result ('Current PoW difficulty') and fits the additional returned fields into a parenthetical. It is efficient and free of filler, though some jargon such as 'wave base' and 'load regulator' is not expanded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description tells an agent what the tool returns at a high level, which is enough to select and invoke it. However, with no output schema, it leaves the exact shape and units of the three layers and mint count unspecified, so it is not fully complete for interpreting the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already documents the miner parameter as a 0x-prefixed EVM address. The description only echoes 'requiredBits(miner)' and adds no meaning beyond what the schema provides, so it sits at the baseline for well-documented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (a miner's PoW difficulty) and names the concrete returned quantities: requiredBits, the three layers, and wallet mint count. It is clearly distinct from sibling tools like get_token or price_info by being mining/PoW-specific, though it lacks an explicit fetch/read verb such as 'gets' or 'returns'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Current PoW difficulty for a miner' implies when to use this tool: when an agent needs a miner's current difficulty parameters. However, there is no explicit when-not-to-use guidance or differentiation from PoW-adjacent siblings like verify_nonce or craft_info.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_craft_commitVerify craft commitA
Verify a crafting commit WITHOUT sending a transaction: reads commits(commitId) from the CraftingController, recomputes keccak256(abi.encode(choices, salt)) the same way the contract does, and reports whether it matches the on-chain choicesHash, plus settlement flags, player, boost tier and the reveal window.
| Name | Required | Description | Default |
|---|---|---|---|
| salt | Yes | 32-byte client secret (0x + 64 hex) used at commit. | |
| choices | Yes | Reveal choices as [slot, parent] pairs, in the exact order hashed at commit. | |
| commitId | Yes | 1-based commit id (see CraftingController.lastCommitId()). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It transparently states that the tool is read-only, reads on-chain commit data, recomputes the hash exactly as the contract does, and reports a match status plus additional fields. It does not mention error behavior (e.g., reverts for invalid commitId), which prevents a perfect score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that packs the core action, the non-transactional caveat, the exact computation, and the output contents into minimal words. No filler or repetitive phrasing is present, and every clause contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no output schema, the description does a good job listing the returned data (match status, settlement flags, player, boost tier, reveal window). It does not cover edge cases such as behavior when commitId does not exist or invalid input handling, which would make it more complete, but for a read-only verification call it is largely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the input schema already documents all parameters (100% schema description coverage), the description adds significant semantic value by explaining how the parameters interact: commitId selects the commit, while choices and salt are combined via keccak256(abi.encode(choices, salt)) in the contract's exact manner. This goes well beyond the baseline level.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Verify') and resource ('a crafting commit'), then immediately clarifies the non-transactional nature ('WITHOUT sending a transaction'), which distinguishes it from any mutation-style sibling. It further names the exact contract function (CraftingController.commits) and the verification computation, leaving no ambiguity about what this tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the tool verifies without sending a transaction, giving a clear context for when it should be used. It does not name sibling alternatives or provide explicit when-not-to-use conditions, but the non-transactional framing is a strong contextual cue that differentiates it from transaction-sending tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_nonceVerify nonceA
Verify a mined nonce WITHOUT sending a transaction: reads workFor(miner, nonce), counts leading zero bits locally and compares to requiredBits(miner).
| Name | Required | Description | Default |
|---|---|---|---|
| miner | Yes | EVM address of the miner (0x-prefixed, 20 bytes). | |
| nonce | Yes | Nonce to check, uint256 as a decimal string. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure burden. It transparently discloses that no transaction is sent, that it reads on-chain workFor and requiredBits values, and that the check is performed locally. It does not specify the exact return value shape, which is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, dense sentence that front-loads the key differentiator ('WITHOUT sending a transaction') before explaining the mechanism. Every clause earns its place and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The core algorithm is explained, but there is no output schema and the description does not state what the tool returns (e.g., boolean, success object, or error behavior). Given no annotations and no output schema, an agent must infer the return contract, leaving a meaningful completeness gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers both parameters fully, giving a baseline of 3. The description adds value by explaining how each parameter is used: miner feeds workFor(miner, nonce) and requiredBits(miner), and nonce is the value being checked. This connects the fields to the verification logic beyond schema-level validation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('verify'), a clear resource ('mined nonce'), and the exact verification approach: reading workFor, counting leading zero bits, and comparing to requiredBits. The phrase 'WITHOUT sending a transaction' also distinguishes it from on-chain alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the usage context clear: this is a local, transaction-free verification, which implies it should be used when the agent wants to check a nonce without incurring gas or chain state changes. It does not name an explicit sibling alternative or give a when-not-to-use condition, but it is reasonably inferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
v0.1.0- First observed
collection_stats - First observed
craft_info - First observed
get_token - First observed
price_info - First observed
required_bits - First observed
verify_craft_commit - First observed
verify_nonce
TDQS
Scored across 7 tools
Each tool targets a distinct read-only concern: collection stats, token lookup, difficulty, pricing, nonce verification, crafting config, and commit verification. Some overlap exists between collection_stats and price_info, since both surface currentWave and currentPrice, but their purposes remain clearly separate.
All names use lowercase snake_case and are readable, but the convention is mixed: get_token and verify_nonce use verb-first naming, while collection_stats, price_info, and craft_info use noun/noun-info patterns, and required_bits is a noun phrase with no verb. This is not chaotic, but it is inconsistent enough to make the set feel less uniform.
With 7 tools, the server is well-scoped for its apparent purpose: reading on-chain PoW minting and crafting state plus verifying miner and commit work. Each tool covers a meaningful concern without redundancy or bloat.
The server covers the core read-only workflows for both minting and crafting: stats, token retrieval, difficulty, pricing, nonce verification, craft config, and commit verification. Minor gaps exist, such as no explicit reveal verification or token listing by owner, but these are not critical dead ends for the server's apparent read-only verification role.
Maintenance
Related MCP Connectors
Read-only on-chain intelligence for AI agents on Base: balances, tokens, gas, tx status.
Read-only on-chain intelligence for AI agents on Base: balances, tokens, gas, tx status.
Read-only smart-contract security intelligence for autonomous agents.
Read-only discovery for exact-commit Agent Skill validation, x402 payment, and signed receipts.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables AI tools to access Arc Testnet blockchain data, including USDC balances, transactions, blocks, and network info.71-
- AlicenseNot gradedqualityBmaintenanceRead-only on-chain intelligence for AI agents on Base, providing tools to read balances, token metadata, gas, and transaction status live from chain without API keys.MIT
- AlicenseNot gradedqualityBmaintenanceEnables users to search the on-chain index of 378,000+ ERC-8004 agents and read Cybercentry verification results spanning token, code, media, web, and wallet dimensions.MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to inspect the public NFH protocol corpus, verify census status, and prepare bounded Ethereum wallet intents for claims and non-custodial market actions while never signing or submitting transactions.1-