_ registry / mcp streamable-http · checked 1h ago

subtensor

https://subtensor.com

Registry code: 14a6032365fb9bd4

api record

Subtensor Reference API — Bittensor blockchain documentation.

Runtime v482, 28 pallets, 1595+ items. 7 tools, all accept format="text"|"json".

endpoint
https://subtensor.com/mcp
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is subtensor live?
Yes — it answered the hub's last check (checked 1h ago). It answered 100% of checks over the last 30 days.
Is subtensor free to use?
Yes — the hub reached it with no key and no payment.
What tools does subtensor have?
7 tools: subtensor_list, subtensor_explore, subtensor_preferences, subtensor_lookup, subtensor_decode, subtensor_explain, subtensor_search.
Is subtensor safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
100%

90 days 100%· all time 100%

latency
366ms

last good check

priced tools
0

of 7 tools

_ answered our checks, 90 days 1 checks · signed record
  • unknown → live
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

inferred, not observed

Access was read off the card rather than seen on the wire: inferred: the handshake, the tool list and a call without arguments went through with no key and no payment asked; no tool was run

_ what it can do 7 tools
7 never probed 0 of 7 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • subtensor_list unknown never probed

    Browse items by category: pallets, events, calls, storage, constants, errors, types, runtime APIs, RPC methods, protocol accounts, EVM precompiles, mechanisms, workflows, hyperparameters, cli_flags, build_features, chain_specs, or env_vars.

    mcp-tool

    {
      "type": "object",
      "required": [
        "category"
      ],
      "properties": {
        "kind": {
          "enum": [
            "primitive",
            "composite",
            "variant",
            "sequence",
            "array",
            "tuple",
            "compact"
          ],
          "type": "string",
          "description": "For types: filter by type kind"
        },
        "role": {
          "enum": [
            "hotkey",
            "coldkey",
            "coldkey:owner",
            "coldkey:subnet-owner",
            "root",
            "senate",
            "any"
          ],
          "type": "string",
          "description": "Filter calls by required role (only applies when category=calls)"
        },
        "limit": {
          "type": "number",
          "description": "Max items per page (default: 10)"
        },
        "cursor": {
          "type": "string",
          "description": "Pagination cursor from previous response"
        },
        "domain": {
          "enum": [
            "consensus",
            "emission",
            "staking",
            "registration",
            "subnet",
            "governance",
            "identity",
            "security",
            "swap",
            "data",
            "randomness"
          ],
          "type": "string",
          "description": "For mechanisms: filter by domain"
        },
        "format": {
          "enum": [
            "text",
            "json"
          ],
          "type": "string",
          "description": "Response format: 'text' (compact, default) or 'json' (structured)"
        },
        "pallet": {
          "type": "string",
          "description": "Pallet name — required for events/calls/storage/constants/errors (e.g., 'SubtensorModule'). For category='rpc_methods' this filters by RPC namespace instead (e.g., 'state', 'subtensor')."
        },
        "search": {
          "type": "string",
          "description": "For types: search by name"
        },
        "context": {
          "enum": [
            "dev",
            "production",
            "both"
          ],
          "type": "string",
          "description": "For cli_flags/build_features: filter by usage context"
        },
        "category": {
          "enum": [
            "pallets",
            "events",
            "calls",
            "storage",
            "constants",
            "errors",
            "types",
            "runtime_apis",
            "rpc_methods",
            "accounts",
            "precompiles",
            "mechanisms",
            "workflows",
            "hyperparameters",
            "cli_flags",
            "build_features",
            "chain_specs",
            "env_vars"
          ],
          "type": "string",
          "description": "Category of items to list"
        },
        "flag_category": {
          "type": "string",
          "description": "For cli_flags: filter by flag category (chain, sync, networking, rpc, metrics, runtime, subtensor)"
        },
        "include_removed": {
          "type": "boolean",
          "description": "Include removed/historical items (default: false)"
        }
      }
    }
    arguments 116 lines
  • subtensor_explore unknown never probed

    Explore relationships, version history, removed items, changelogs, and migration guides between runtime versions.

    mcp-tool

    {
      "type": "object",
      "required": [
        "topic"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "Item name (e.g., 'StakeAdded', 'add_stake', 'TotalStake')"
        },
        "type": {
          "enum": [
            "event",
            "call",
            "storage",
            "error",
            "all",
            "pallet",
            "constant"
          ],
          "type": "string",
          "description": "Item type — for relationships (event/call/storage/error), for removed (all/pallet/event/call/storage/constant/error)"
        },
        "limit": {
          "type": "number",
          "description": "Max items per page (default: 10)"
        },
        "topic": {
          "enum": [
            "relationships",
            "emitters",
            "modifiers",
            "throwers",
            "removed",
            "changelog",
            "migration",
            "versions"
          ],
          "type": "string",
          "description": "What to explore"
        },
        "cursor": {
          "type": "string",
          "description": "Pagination cursor from previous response"
        },
        "format": {
          "enum": [
            "text",
            "json"
          ],
          "type": "string",
          "description": "Response format: 'text' (compact, default) or 'json' (structured)"
        },
        "pallet": {
          "type": "string",
          "description": "Pallet name (e.g., 'SubtensorModule')"
        },
        "version": {
          "type": "number",
          "description": "For versions: look up a specific version"
        },
        "to_version": {
          "type": "number",
          "description": "For changelog/migration: end version"
        },
        "from_version": {
          "type": "number",
          "description": "For changelog/migration: start version"
        }
      }
    }
    arguments 71 lines
  • subtensor_preferences unknown never probed

    Get or set session preferences for language, node URL, and node type. Language affects field name casing (TypeScript=camelCase, others=snake_case) and code examples.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "action": {
          "enum": [
            "get",
            "set"
          ],
          "type": "string",
          "description": "Action to perform (default: 'get')"
        },
        "format": {
          "enum": [
            "text",
            "json"
          ],
          "type": "string",
          "description": "Response format: 'text' (compact, default) or 'json' (structured)"
        },
        "language": {
          "enum": [
            "typescript",
            "python-bt",
            "python-sub",
            "rust"
          ],
          "type": "string",
          "description": "For set: preferred language. Affects field name casing in lookups (TypeScript=camelCase, others=snake_case) and code examples."
        },
        "node_url": {
          "type": "string",
          "description": "For set: WebSocket endpoint for generated code"
        },
        "node_type": {
          "enum": [
            "lite",
            "archive"
          ],
          "type": "string",
          "description": "For set: 'lite' (current state) or 'archive' (historical patterns)"
        },
        "preferences": {
          "type": "string",
          "description": "Preferences handle from subtensor_preferences(action=\"set\"). Carries language/node_url/node_type without a session. Explicit arguments on this call take precedence over the handle."
        }
      }
    }
    arguments 48 lines
  • subtensor_lookup unknown 1h ago

    Get detailed info about a specific pallet, event, call, storage item, constant, error, SCALE type, RPC method, protocol account, or EVM precompile. Accepts URN identifiers with optional #field.path drilling.

    mcp-tool

    {
      "type": "object",
      "required": [],
      "properties": {
        "sub": {
          "type": [
            "string",
            "number"
          ],
          "description": "For type=\"account\": derive a sub-account. A number is a netuid or crowdloan id; a string is an 8-byte tag such as \"beta/esc\". Index 0 collapses onto the base address."
        },
        "urn": {
          "type": "string",
          "description": "URN identifier (e.g., 'subtensor:event:SubtensorModule.StakeAdded', 'subtensor:storage:System.Account#data.free', 'subtensor:api:SwapRuntimeApi.sim_swap_tao_for_alpha', 'subtensor:account:SubtensorModule.SubtensorPalletId#64', 'subtensor:precompile:StakingV2'). `subtensor:runtime_api:...` is accepted as an alias for `subtensor:api:...`. Supports field-path drilling with # for event/call/storage/type items (for account items, #fragment is a sub-index instead). Alternative to type+pallet+name. Takes precedence if both provided."
        },
        "name": {
          "type": [
            "string",
            "number"
          ],
          "description": "Item name (e.g., 'SubtensorModule', 'StakeAdded', 'add_stake', 'AccountId32', 'pruning', 'pow-faucet') or type ID number. For type=\"account\": the declaring key ('SubtensorModule.SubtensorPalletId'). For type=\"precompile\": a name ('StakingV2') or 0x address."
        },
        "type": {
          "enum": [
            "pallet",
            "event",
            "call",
            "storage",
            "constant",
            "error",
            "type",
            "runtime_api",
            "rpc_method",
            "account",
            "precompile",
            "cli_flag",
            "build_feature"
          ],
          "type": "string",
          "description": "What kind of item to look up"
        },
        "format": {
          "enum": [
            "text",
            "json"
          ],
          "type": "string",
          "description": "Response format: 'text' (compact, default) or 'json' (structured)"
        },
        "pallet": {
          "type": "string",
          "description": "Pallet name — required for event/call/storage/constant/error lookups (e.g., 'SubtensorModule')"
        },
        "address": {
          "type": "string",
          "description": "For type=\"account\": an SS58 address to identify. Returns which protocol account it is, including the sub-index, or reports that it is an ordinary wallet."
        },
        "include": {
          "enum": [
            "events",
            "calls",
            "storage",
            "constants",
            "errors"
          ],
          "type": "string",
          "description": "For pallet lookup: filter to a specific item type with descriptions"
        },
        "language": {
          "enum": [
            "typescript",
            "python-bt",
            "python-sub",
            "rust"
          ],
          "type": "string",
          "description": "Field name casing for your language. TypeScript shows camelCase (tickLow), others show snake_case (tick_low). Overrides session preference."
        },
        "preferences": {
          "type": "string",
          "description": "Preferences handle from subtensor_preferences(action=\"set\"). Carries language/node_url/node_type without a session. Explicit arguments on this call take precedence over the handle."
        },
        "include_history": {
          "type": "boolean",
          "description": "Include full argument signatures for each version range (events/calls only)"
        },
        "include_removed": {
          "type": "boolean",
          "description": "Include removed/historical items (default: false)"
        }
      }
    }
    arguments 92 lines
  • subtensor_decode unknown 1h ago

    Decode SCALE-encoded hex into labelled fields with RAO→TAO and hex→SS58 conversions applied. Omit pallet and name to identify an event or call from its two-byte (pallet index, item index) prefix — the usual case when you have bytes and want to know what they are.

    mcp-tool

    {
      "type": "object",
      "required": [
        "hex"
      ],
      "properties": {
        "hex": {
          "type": "string",
          "description": "SCALE-encoded bytes as hex, with or without a 0x prefix. Whitespace is ignored."
        },
        "kind": {
          "enum": [
            "event",
            "call",
            "value"
          ],
          "type": "string",
          "description": "What the bytes are: 'event' (default), 'call', or 'value' for a bare value of a given type"
        },
        "name": {
          "type": "string",
          "description": "Event or call name. Must be given together with \"pallet\"."
        },
        "type": {
          "type": "string",
          "description": "For kind=\"value\": the SCALE type to decode against, e.g. \"u64\", \"AccountId\", \"Vec<u16>\", \"Option<u32>\""
        },
        "format": {
          "enum": [
            "text",
            "json"
          ],
          "type": "string",
          "description": "Response format: 'text' (compact, default) or 'json' (structured)"
        },
        "pallet": {
          "type": "string",
          "description": "Pallet of the event or call. Omit together with \"name\" to identify the item from the byte prefix instead."
        }
      }
    }
    arguments 41 lines
  • subtensor_explain unknown 1h ago

    Understand Bittensor concepts, workflows, mechanisms, runtime APIs, runtime errors, extrinsic format, or get code examples.

    mcp-tool

    {
      "type": "object",
      "required": [
        "topic"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "Topic-specific name: concept name ('staking'), workflow ID ('add-stake'), mechanism ID ('yuma-consensus'), runtime API name ('NeuronInfoRuntimeApi'), or item name for examples"
        },
        "topic": {
          "enum": [
            "concept",
            "workflow",
            "mechanism",
            "runtime_api",
            "runtime_errors",
            "extrinsic_format",
            "examples",
            "monitor",
            "event_group"
          ],
          "type": "string",
          "description": "What to explain"
        },
        "format": {
          "enum": [
            "text",
            "json"
          ],
          "type": "string",
          "description": "Response format: 'text' (compact, default) or 'json' (structured)"
        },
        "pallet": {
          "type": "string",
          "description": "Pallet name — required for examples (e.g., 'SubtensorModule')"
        },
        "language": {
          "enum": [
            "typescript",
            "python-bt",
            "python-sub",
            "rust"
          ],
          "type": "string",
          "description": "For examples: filter to one language (overrides session preference)"
        },
        "node_url": {
          "type": "string",
          "description": "For examples: WebSocket endpoint override"
        },
        "enum_slug": {
          "enum": [
            "dispatch",
            "token",
            "arithmetic",
            "transactional",
            "trie",
            "module"
          ],
          "type": "string",
          "description": "For runtime_errors: get a specific error enum"
        },
        "item_type": {
          "enum": [
            "storage",
            "call",
            "event"
          ],
          "type": "string",
          "description": "For examples: type of item to generate code for"
        },
        "node_type": {
          "enum": [
            "lite",
            "archive"
          ],
          "type": "string",
          "description": "For examples: 'lite' (current state) or 'archive' (historical patterns)"
        },
        "preferences": {
          "type": "string",
          "description": "Preferences handle from subtensor_preferences(action=\"set\"). Carries language/node_url/node_type without a session. Explicit arguments on this call take precedence over the handle."
        }
      }
    }
    arguments 86 lines
  • subtensor_search unknown never probed

    Search across all Subtensor pallets, events, calls, storage, constants, and errors by keyword.

    mcp-tool

    {
      "type": "object",
      "required": [
        "query"
      ],
      "properties": {
        "type": {
          "enum": [
            "all",
            "event",
            "call",
            "storage",
            "constant",
            "error",
            "type",
            "runtime-api",
            "mechanism",
            "workflow",
            "hyperparameter",
            "learn",
            "glossary",
            "runtime-error"
          ],
          "type": "string",
          "description": "Filter by item type (default: all)"
        },
        "limit": {
          "type": "number",
          "description": "Max results per page (default: 10, max: 50)"
        },
        "query": {
          "type": "string",
          "description": "Search query (e.g., 'stake', 'neuron', 'emission')"
        },
        "cursor": {
          "type": "string",
          "description": "Pagination cursor from previous response"
        },
        "format": {
          "enum": [
            "text",
            "json"
          ],
          "type": "string",
          "description": "Response format: 'text' (compact, default) or 'json' (structured)"
        },
        "status": {
          "enum": [
            "active",
            "removed",
            "all"
          ],
          "type": "string",
          "description": "Filter by item status (default: 'active')"
        }
      }
    }
    arguments 57 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id 14a6032365fb9bd4.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/14a6032365fb9bd4/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/14a6032365fb9bd4/badge.svg)](https://brick.blue/agent/14a6032365fb9bd4?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.