Subtensor MCP
Subtensor blockchain reference — events, calls, storage, constants, errors for all 28 active pallets
Sollte ich dies verwenden
Qualität und Sicherheit
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"reference": {
"url": "https://subtensor.com/mcp"
}
}
}Remote-Endpunkte
https://subtensor.com/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (7)
🟢subtensor_search(query, type, status, cursor, limit, ...)
Search across all Subtensor pallets, events, calls, storage, constants, and errors by keyword.
Eingabe-Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Search query (e.g., 'stake', 'neuron', 'emission')"
},
"type": {
"type": "string",
"enum": [
"all",
"event",
"call",
"storage",
"constant",
"error",
"type",
"runtime-api",
"mechanism",
"workflow",
"hyperparameter",
"learn",
"glossary",
"runtime-error"
],
"description": "Filter by item type (default: all)"
},
"status": {
"type": "string",
"enum": [
"active",
"removed",
"all"
],
"description": "Filter by item status (default: 'active')"
},
"cursor": {
"type": "string",
"description": "Pagination cursor from previous response"
},
"limit": {
"type": "number",
"description": "Max results per page (default: 10, max: 50)"
},
"format": {
"type": "string",
"enum": [
"text",
"json"
],
"description": "Response format: 'text' (compact, default) or 'json' (structured)"
}
},
"required": [
"query"
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"query": {
"type": "string"
},
"status_filter": {
"type": "string"
},
"total": {
"type": "number"
},
"removed_hidden": {
"type": "number"
},
"_removed_hint": {
"type": "string"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string"
},
"pallet": {
"type": "string"
},
"name": {
"type": "string"
},
"score": {
"type": "number"
},
"description": {
"type": "string"
},
"detail_url": {
"type": "string"
},
"status": {
"type": "string"
}
},
"required": [
"type",
"pallet",
"name",
"score"
],
"additionalProperties": true
}
},
"nextCursor": {
"type": "string"
}
},
"required": [
"query",
"status_filter",
"total",
"results"
],
"additionalProperties": true
}🟢subtensor_lookup(urn, type, name, pallet, address, ...)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"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."
},
"type": {
"type": "string",
"enum": [
"pallet",
"event",
"call",
"storage",
"constant",
"error",
"type",
"runtime_api",
"rpc_method",
"account",
"precompile",
"cli_flag",
"build_feature"
],
"description": "What kind of item to look up"
},
"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."
},
"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."
},
"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."
},
"include": {
"type": "string",
"enum": [
"events",
"calls",
"storage",
"constants",
"errors"
],
"description": "For pallet lookup: filter to a specific item type with descriptions"
},
"include_removed": {
"type": "boolean",
"description": "Include removed/historical items (default: false)"
},
"include_history": {
"type": "boolean",
"description": "Include full argument signatures for each version range (events/calls only)"
},
"language": {
"type": "string",
"enum": [
"typescript",
"python-bt",
"python-sub",
"rust"
],
"description": "Field name casing for your language. TypeScript shows camelCase (tickLow), others show snake_case (tick_low). Overrides session preference."
},
"format": {
"type": "string",
"enum": [
"text",
"json"
],
"description": "Response format: 'text' (compact, default) or 'json' (structured)"
},
"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."
}
},
"required": []
}Ausgabe-Schema
{
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Item kind, mirrors the request type"
},
"name": {
"type": "string"
},
"pallet": {
"type": "string"
}
},
"required": [
"type",
"name"
],
"additionalProperties": true
}🟢subtensor_list(category, pallet, include_removed, domain, kind, ...)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"category": {
"type": "string",
"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"
],
"description": "Category of items to list"
},
"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')."
},
"include_removed": {
"type": "boolean",
"description": "Include removed/historical items (default: false)"
},
"domain": {
"type": "string",
"enum": [
"consensus",
"emission",
"staking",
"registration",
"subnet",
"governance",
"identity",
"security",
"swap",
"data",
"randomness"
],
"description": "For mechanisms: filter by domain"
},
"kind": {
"type": "string",
"enum": [
"primitive",
"composite",
"variant",
"sequence",
"array",
"tuple",
"compact"
],
"description": "For types: filter by type kind"
},
"search": {
"type": "string",
"description": "For types: search by name"
},
"role": {
"type": "string",
"description": "Filter calls by required role (only applies when category=calls)",
"enum": [
"hotkey",
"coldkey",
"coldkey:owner",
"coldkey:subnet-owner",
"root",
"senate",
"any"
]
},
"context": {
"type": "string",
"enum": [
"dev",
"production",
"both"
],
"description": "For cli_flags/build_features: filter by usage context"
},
"flag_category": {
"type": "string",
"description": "For cli_flags: filter by flag category (chain, sync, networking, rpc, metrics, runtime, subtensor)"
},
"cursor": {
"type": "string",
"description": "Pagination cursor from previous response"
},
"limit": {
"type": "number",
"description": "Max items per page (default: 10)"
},
"format": {
"type": "string",
"enum": [
"text",
"json"
],
"description": "Response format: 'text' (compact, default) or 'json' (structured)"
}
},
"required": [
"category"
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"category": {
"type": "string",
"description": "Item category, mirrors the request category"
}
},
"required": [
"category"
],
"description": "Shape varies by category: each branch pins the category to the array field it returns its items in.",
"anyOf": [
{
"type": "object",
"properties": {
"category": {
"const": "pallets"
},
"pallets": {
"type": "array"
},
"total": {
"type": "number"
},
"count": {
"type": "number"
},
"nextCursor": {
"type": "string"
}
},
"required": [
"category",
"pallets"
],
"additionalProperties": true
},
{
"type": "object",
"properties": {
"category": {
"const": "events"
},
"events": {
"type": "array"
},
"total": {
"type": "number"
},
"count": {
"type": "number"
},
"nextCursor": {
"type": "string"
}
},
"required": [
"category",
"events"
],
"additionalProperties": true
},
{
"type": "object",
"properties": {
"category": {
"const": "calls"
},
"calls": {
"type": "array"
},
"total": {
"type": "number"
},
"count": {
"type": "number"
},
"nextCursor": {
"type": "string"
}
},
"required": [
"category",
"calls"
],
"additionalProperties": true
},
{
"type": "object",
"properties": {
"category": {
"const": "storage"
},
"storage": {
"type": "array"
},
"total": {
"type": "number"
},
"count": {
"type": "number"
},
"nextCursor": {
"type": "string"
}
},
"required": [
"category",
"storage"
],
"additionalProperties": true
},
{
"type": "object",
"properties": {
"category": {
"const": "constants"
},
"constants": {
"type": "array"
},
"total": {
"type": "number"
},
"count": {
"type": "number"
},
"nextCursor": {
"type": "string"
}
},
"required": [
"category",
"constants"
],
"additionalProperties": true
},
{
"type": "object",
"properties": {
"category": {
"const": "errors"
},
"errors": {
"type": "array"
},
"total": {
"type": "number"
},
"count": {
"type": "number"
},
"nextCursor": {
"type": "string"
}
},
"required": [
"category",
"errors"
],
"additionalProperties": true
},
{
"type": "object",
"properties": {
"category": {
"const": "types"
},
"types": {
"type": "array"
},
"total": {
"type": "number"
},
"count": {
"type": "number"
},
"nextCursor": {
"type": "string"
}
},
"required": [
"category",
"types"
],
"additionalProperties": true
},
{
"type": "object",
"properties": {
"category": {
"const": "runtime_apis"
},
"apis": {
"type": "array"
},
"total": {
"type": "number"
},
"count": {
"type": "number"
},
"nextCursor": {
"type": "string"
}
},
"required": [
"category",
"apis"
],
"additionalProperties": true
},
{
"type": "object",
"properties": {
"category": {
"const": "rpc_methods"
},
"methods": {
"type": "array"
},
"total": {
"type": "number"
},
"count": {
"type": "number"
},
"nextCursor": {
"type": "string"
}
},
"required": [
"category",
"methods"
],
"additionalProperties": true
},
{
"type": "object",
"properties": {
"category": {
"const": "accounts"
},
"accounts": {
"type": "array"
},
"total": {
"type": "number"
},
"count": {
"type": "number"
},
"nextCursor": {
"type": "string"
}
},
"required": [
"category",
"accounts"
],
"additionalProperties": true
},
{
"type": "object",
"properties": {
"category": {
"const": "precompiles"
},
"precompiles": {
"type": "array"
},
"total": {
"type": "number"
},
"count": {
"type": "number"
},
"nextCursor": {
"type": "string"
}
},
"required": [
"category",
"precompiles"
],
"additionalProperties": true
},
{
"type": "object",
"properties": {
"category": {
"const": "mechanisms"
},
"mechanisms": {
"type": "array"
},
"total": {
"type": "number"
},
"count": {
"type": "number"
},
"nextCursor": {
"type": "string"
}
},
"required": [
"category",
"mechanisms"
],
"additionalProperties": true
},
{
"type": "object",
"properties": {
"category": {
"const": "workflows"
},
"categories": {
"type": "object"
},
"total": {
"type": "number"
},
"count": {
"type": "number"
},
"nextCursor": {
"type": "string"
}
},
"required": [
"category",
"categories"
],
"additionalProperties": true
},
{
"type": "object",
"properties": {
"category": {
"const": "hyperparameters"
},
"hyperparameters": {
"type": "array"
},
"total": {
"type": "number"
},
"count": {
"type": "number"
},
"nextCursor": {
"type": "string"
}
},
"required": [
"category",
"hyperparameters"
],
"additionalProperties": true
},
{
"type": "object",
"properties": {
"category": {
"const": "cli_flags"
},
"cli_flags": {
"type": "array"
},
"total": {
"type": "number"
},
"count": {
"type": "number"
},
"nextCursor": {
"type": "string"
}
},
"required": [
"category",
"cli_flags"
],
"additionalProperties": true
},
{
"type": "object",
"properties": {
"category": {
"const": "build_features"
},
"build_features": {
"type": "array"
},
"total": {
"type": "number"
},
"count": {
"type": "number"
},
"nextCursor": {
"type": "string"
}
},
"required": [
"category",
"build_features"
],
"additionalProperties": true
},
{
"type": "object",
"properties": {
"category": {
"const": "chain_specs"
},
"chain_specs": {
"type": "array"
},
"total": {
"type": "number"
},
"count": {
"type": "number"
},
"nextCursor": {
"type": "string"
}
},
"required": [
"category",
"chain_specs"
],
"additionalProperties": true
},
{
"type": "object",
"properties": {
"category": {
"const": "env_vars"
},
"env_vars": {
"type": "array"
},
"total": {
"type": "number"
},
"count": {
"type": "number"
},
"nextCursor": {
"type": "string"
}
},
"required": [
"category",
"env_vars"
],
"additionalProperties": true
}
]
}🟢subtensor_explore(topic, pallet, name, type, from_version, ...)
Explore relationships, version history, removed items, changelogs, and migration guides between runtime versions.
Eingabe-Schema
{
"type": "object",
"properties": {
"topic": {
"type": "string",
"enum": [
"relationships",
"emitters",
"modifiers",
"throwers",
"removed",
"changelog",
"migration",
"versions"
],
"description": "What to explore"
},
"pallet": {
"type": "string",
"description": "Pallet name (e.g., 'SubtensorModule')"
},
"name": {
"type": "string",
"description": "Item name (e.g., 'StakeAdded', 'add_stake', 'TotalStake')"
},
"type": {
"type": "string",
"enum": [
"event",
"call",
"storage",
"error",
"all",
"pallet",
"constant"
],
"description": "Item type — for relationships (event/call/storage/error), for removed (all/pallet/event/call/storage/constant/error)"
},
"from_version": {
"type": "number",
"description": "For changelog/migration: start version"
},
"to_version": {
"type": "number",
"description": "For changelog/migration: end version"
},
"version": {
"type": "number",
"description": "For versions: look up a specific version"
},
"cursor": {
"type": "string",
"description": "Pagination cursor from previous response"
},
"limit": {
"type": "number",
"description": "Max items per page (default: 10)"
},
"format": {
"type": "string",
"enum": [
"text",
"json"
],
"description": "Response format: 'text' (compact, default) or 'json' (structured)"
}
},
"required": [
"topic"
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"topic": {
"type": "string",
"description": "Explore topic, mirrors the request topic"
}
},
"required": [
"topic"
],
"additionalProperties": true
}🟢subtensor_explain(topic, name, pallet, item_type, language, ...)
Understand Bittensor concepts, workflows, mechanisms, runtime APIs, runtime errors, extrinsic format, or get code examples.
Eingabe-Schema
{
"type": "object",
"properties": {
"topic": {
"type": "string",
"enum": [
"concept",
"workflow",
"mechanism",
"runtime_api",
"runtime_errors",
"extrinsic_format",
"examples",
"monitor",
"event_group"
],
"description": "What to explain"
},
"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"
},
"pallet": {
"type": "string",
"description": "Pallet name — required for examples (e.g., 'SubtensorModule')"
},
"item_type": {
"type": "string",
"enum": [
"storage",
"call",
"event"
],
"description": "For examples: type of item to generate code for"
},
"language": {
"type": "string",
"enum": [
"typescript",
"python-bt",
"python-sub",
"rust"
],
"description": "For examples: filter to one language (overrides session preference)"
},
"node_url": {
"type": "string",
"description": "For examples: WebSocket endpoint override"
},
"node_type": {
"type": "string",
"enum": [
"lite",
"archive"
],
"description": "For examples: 'lite' (current state) or 'archive' (historical patterns)"
},
"enum_slug": {
"type": "string",
"enum": [
"dispatch",
"token",
"arithmetic",
"transactional",
"trie",
"module"
],
"description": "For runtime_errors: get a specific error enum"
},
"format": {
"type": "string",
"enum": [
"text",
"json"
],
"description": "Response format: 'text' (compact, default) or 'json' (structured)"
},
"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."
}
},
"required": [
"topic"
]
}Ausgabe-Schema
{
"type": "object",
"anyOf": [
{
"properties": {
"topic": {
"type": "string",
"description": "Explain topic, mirrors the request topic"
}
},
"required": [
"topic"
]
},
{
"properties": {
"type": {
"type": "string",
"description": "Item kind — 'runtime_api', shared shape with subtensor_lookup"
},
"name": {
"type": "string"
}
},
"required": [
"type",
"name"
]
}
],
"additionalProperties": true
}🟡subtensor_preferences(action, language, node_url, node_type, format, ...)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"action": {
"type": "string",
"enum": [
"get",
"set"
],
"description": "Action to perform (default: 'get')"
},
"language": {
"type": "string",
"enum": [
"typescript",
"python-bt",
"python-sub",
"rust"
],
"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": {
"type": "string",
"enum": [
"lite",
"archive"
],
"description": "For set: 'lite' (current state) or 'archive' (historical patterns)"
},
"format": {
"type": "string",
"enum": [
"text",
"json"
],
"description": "Response format: 'text' (compact, default) or 'json' (structured)"
},
"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."
}
},
"required": []
}Ausgabe-Schema
{
"type": "object",
"properties": {
"language": {
"type": [
"string",
"null"
]
},
"node_url": {
"type": [
"string",
"null"
]
},
"node_type": {
"type": "string"
},
"preferences_handle": {
"type": "string",
"description": "Pass back as `preferences` on later calls to reapply these."
}
},
"required": [
"node_type",
"preferences_handle"
],
"additionalProperties": true
}🟢subtensor_decode(hex, kind, pallet, name, type, ...)
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.
Eingabe-Schema
{
"type": "object",
"properties": {
"hex": {
"type": "string",
"description": "SCALE-encoded bytes as hex, with or without a 0x prefix. Whitespace is ignored."
},
"kind": {
"type": "string",
"enum": [
"event",
"call",
"value"
],
"description": "What the bytes are: 'event' (default), 'call', or 'value' for a bare value of a given type"
},
"pallet": {
"type": "string",
"description": "Pallet of the event or call. Omit together with \"name\" to identify the item from the byte prefix instead."
},
"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": {
"type": "string",
"enum": [
"text",
"json"
],
"description": "Response format: 'text' (compact, default) or 'json' (structured)"
}
},
"required": [
"hex"
]
}Ausgabe-Schema
{
"type": "object",
"properties": {
"kind": {
"type": "string"
},
"input": {
"type": "string"
},
"fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"type": {
"type": "string"
},
"value": {},
"raw": {
"type": "string"
},
"display": {
"type": "string"
},
"conversion": {
"type": "string"
},
"error": {
"type": "string"
}
},
"required": [
"type",
"raw"
],
"additionalProperties": true
}
},
"trailing_bytes": {
"type": "string"
}
},
"required": [
"kind",
"input",
"fields",
"trailing_bytes"
],
"additionalProperties": true
}Community
Nachweis