@grokchain/mcp
@grokchain/mcp
공식 Grok Chain MCP 및 Grok Build 스킬입니다. 에이전트는 인텐트(intents)로 소통합니다. 키를 절대 보관하지 않습니다.
localnet에서 CORE와 INTENTS는 로컬 전용 검증자 쌍
(8WDhHSfrz6hMkmX7WteAAmyuWFLryHM2Kfc1r4k8EFXE 및
AXprcURLhSqj35v9DJyBkTSPGSoZ9AfTRxYyguQJwnT2)을 기본값으로 사용합니다. 해당 ID는 로컬 전용입니다.
배포된 프로그램이 아닙니다. devnet에 없습니다. mainnet에도 없습니다.
실제 운영 중인 것으로 취급하지 마십시오.
devnet에서 CORE와 INTENTS는 grokchain-devnet 배포 프로그램입니다:
CORE:
7UtafKBBWNHEXC9PaNXu8USdZqL6VEWupsL7rS6LeVDjhttps://explorer.solana.com/address/7UtafKBBWNHEXC9PaNXu8USdZqL6VEWupsL7rS6LeVDj?cluster=devnetINTENTS:
EYhYtqLViS4H3FNt1Q8nGRHGt9oD87uaNsV2WJMNiRkzhttps://explorer.solana.com/address/EYhYtqLViS4H3FNt1Q8nGRHGt9oD87uaNsV2WJMNiRkz?cluster=devnet
사람이 SpendVault(지불 소스)와 Paymaster(가스)에 자금을 조달합니다. 두 번의 입금입니다. 사람이 지불합니다. 릴레이어(relayer)만 외부 수수료 지불자로 상환되는 유일한 주소입니다. 봇/에이전트는 SOL을 절대 보유하지 않으며, 수수료 지불자가 되지 않으며, SOL 소스가 되지 않습니다.
sponsor_eligible은 이 그랜트가 YOUR paymaster를 사용할 수 있음을 의미합니다 — Grok Chain이 지불한다는 약속이 아닙니다.
현재 vs 스텁
도구 | 현재 |
create_account | CORE 클라이언트 구현됨. devnet: 실제 grokchain-devnet CORE ID. localnet: 로컬 전용 CORE ID. 사람이 계정을 루팅한 경우에만 실행됩니다 ( |
issue_grant | CORE 클라이언트 구현됨. 동일한 클러스터 분할. devnet의 그랜트 허용 목록은 실제 INTENTS ID |
revise_grant | CORE 클라이언트 구현됨. 동일한 클러스터 분할. |
revoke_grant | CORE 클라이언트 구현됨. 동일한 클러스터 분할. |
check_grant | CORE 클라이언트 구현됨. 동일한 클러스터 분할. |
pay | INTENTS 클라이언트 구현됨. devnet: 실제 grokchain-devnet INTENTS ID. localnet: 로컬 전용 INTENTS ID. 릴레이어가 수수료를 지불합니다. 사람이 자금을 조달한 볼트. 사람이 계정을 루팅하고, 클러스터 INTENTS ID를 허용하는 그랜트를 발행하고, SpendVault + Paymaster에 자금을 조달하고, RELAYER_KEYPAIR를 설정한 경우에만 실행됩니다. 그렇지 않으면 need_human_signature / need_human_setup. 전송을 위조하지 마십시오. |
vault / paymaster CLI | INTENTS 클라이언트 구현됨 (pay와 동일한 ID). 루트 서명. 사람이 자금을 조달합니다. |
swap / deploy / call | 스텁 (IntentStub) |
선택적 읽기 전용: get_account, get_grant.
pay는 INTENTS에 대해 구현되었습니다. 시스템 전송을 보내지 않습니다. 에이전트가 서명합니다. 릴레이어가 수수료 지불자입니다. 사람이 자금을 조달한 SpendVault가 SOL 소스입니다. 선택적 스폰서는 YOUR paymaster에서 릴레이어를 상환합니다.
Related MCP server: AgentWallet MCP Server
Devnet
GROKCHAIN_CLUSTER=devnet 및 config/devnet.json, 또는 GROKCHAIN_CONFIG, 또는
grokchain --config config/devnet.json. 환경 변수 GROKCHAIN_PROGRAM_ID /
GROKCHAIN_INTENTS_PROGRAM_ID는 설정된 경우 파일 값을 재정의합니다.
실제 grokchain-devnet 배포 프로그램 ID:
CORE:
7UtafKBBWNHEXC9PaNXu8USdZqL6VEWupsL7rS6LeVDj탐색기: https://explorer.solana.com/address/7UtafKBBWNHEXC9PaNXu8USdZqL6VEWupsL7rS6LeVDj?cluster=devnetINTENTS:
EYhYtqLViS4H3FNt1Q8nGRHGt9oD87uaNsV2WJMNiRkz탐색기: https://explorer.solana.com/address/EYhYtqLViS4H3FNt1Q8nGRHGt9oD87uaNsV2WJMNiRkz?cluster=devnet
devnet에서 두 로컬 전용 ID
(8WDhHSfrz6hMkmX7WteAAmyuWFLryHM2Kfc1r4k8EFXE 및
AXprcURLhSqj35v9DJyBkTSPGSoZ9AfTRxYyguQJwnT2)를 절대 사용하지 마십시오. 거부됩니다 —
로컬 전용이며, 배포된 프로그램이 아니며, devnet에서 유효하지 않습니다. 이들은
localnet 기본값으로만 유지됩니다.
릴레이어는 여전히 수수료를 지불합니다. 사람은 여전히 볼트에 자금을 조달합니다.
devnet에서 create/issue/revise/revoke/check_grant 및 pay/vaults는
실제 배포된 ID에 대한 구현된 클라이언트입니다. 사람이 계정을 루팅하고, devnet INTENTS ID
EYhYtqLViS4H3FNt1Q8nGRHGt9oD87uaNsV2WJMNiRkz를 허용하는 그랜트를 발행하고, SpendVault + Paymaster에
자금을 조달하고, RELAYER_KEYPAIR를 설정한 경우에만 실행됩니다. 그렇지 않으면 need_human_signature / need_human_setup.
swap/deploy/call은 여전히 스텁입니다.
한 번의 명령 (devnet)
GETTING-STARTED.md를 참조하십시오. 사람 지갑은 그들이 보관하는 유일한 비밀입니다. 에이전트와 릴레이어는 호스트 파일 모드 0600입니다. 릴레이어가 수수료를 지불합니다. 사람이 볼트에 자금을 조달합니다. 봇은 SOL을 절대 보유하지 않습니다. CORE/INTENTS ID는 실제 devnet ID입니다. swap/deploy/call은 여전히 스텁입니다.
export GROKCHAIN_ROOT_KEYPAIR=$HOME/.config/solana/id.json
npx -y github:grokloop/grokchain-mcp grokchain setup --devnet기본 npx github:grokloop/grokchain-mcp는 바이너리 이름 grokchain이 필요합니다.
setup --devnet은 pay를 보내지 않습니다. 이후 Grok 봇이 pay를 호출할 수 있습니다.
클론 대체:
git clone https://github.com/grokloop/grokchain-mcp && cd grokchain-mcp && npm i && npm run build && node dist/cli.js setup --devnet설치 및 실행
Node 20+.
환경 변수 (경로, 비밀 아님)
GROKCHAIN_CLUSTER: localnet (기본값), devnet, 또는 mainnet-beta GROKCHAIN_RPC_URL: RPC URL (기본값은 클러스터를 따름) GROKCHAIN_CONFIG: JSON 구성 파일 경로 (예: config/devnet.json)
GROKCHAIN_PROGRAM_ID: CORE ID; localnet을 제외하고 필수 GROKCHAIN_INTENTS_PROGRAM_ID: INTENTS ID; localnet을 제외하고 필수 GROKCHAIN_ROOT_KEYPAIR: 사람 지갑 파일 경로 GROKCHAIN_AGENT_KEYPAIR: 에이전트 키스토어 파일 경로 GROKCHAIN_RELAYER_KEYPAIR: 릴레이어 키스토어 파일 경로
필수 경로가 없으면 도구는 need_human_signature 또는 need_human_setup을 서명되지 않은 트랜잭션(base64) 및 HUMAN.md에 대한 포인터와 함께 반환합니다. 봇에게 키를 요청하지 마십시오.
Cursor MCP 구성 (stdio)
stdio를 통해 인수 grokchain-mcp와 함께 명령 npx를 사용하십시오. GROKCHAIN_CLUSTER를 localnet 또는 devnet으로, GROKCHAIN_RPC_URL을 일치하도록, GROKCHAIN_ROOT_KEYPAIR을 사람 지갑 파일의 절대 경로로, GROKCHAIN_AGENT_KEYPAIR을 에이전트 키스토어의 절대 경로로, 그리고 GROKCHAIN_RELAYER_KEYPAIR을 릴레이어 키스토어의 절대 경로로 설정하십시오. 환경 변수는 경로를 나타내며, 비밀이 아닙니다.
키
도구, 스키마, 결과, 로그, README 및 스킬은 시드 문구나 원시 키 자료를 절대 수락하거나 반환하지 않습니다. agent init 및 relayer init은 호스트 파일 모드 0600을 작성하고 공개 키만 출력합니다.
사람 CLI
GETTING-STARTED.md 및 HUMAN.md를 참조하십시오.
grokchain root create-account
grokchain agent init
grokchain relayer init
grokchain root issue-grant --agent PK --cap LAMPORTS --expires UNIX --programs INTENTS_ID [--sponsor]
grokchain vault init-spend
grokchain vault fund-spend --sol 0.05
grokchain paymaster init --relayer PK
grokchain paymaster fund --sol 0.02
grokchain root revise-grant
grokchain root revoke-grant --agent PK
grokchain setup --devnet
grokchain statuslocalnet에서 --programs는 로컬 전용 INTENTS ID
AXprcURLhSqj35v9DJyBkTSPGSoZ9AfTRxYyguQJwnT2입니다 (실제 운영 아님). devnet에서
--programs는 실제 INTENTS ID
EYhYtqLViS4H3FNt1Q8nGRHGt9oD87uaNsV2WJMNiRkz입니다 (devnet 라우터).
grokchain fund --to agent는 제거되었습니다 (이전 잘못된 경로). 봇은 SOL을 절대 보유하지 않습니다.
사람이 SpendVault와 Paymaster에 자금을 조달합니다. 릴레이어가 제출합니다.
Grok Build 스킬
skills/grok-build/SKILL.md는 봇에게 도구 이름을 사용하고, 키를 거부하고, localnet에서만 로컬 전용 쌍을 사용하고, devnet에서 grokchain-devnet ID를 사용하고, SOL을 절대 보유하지 않도록 가르칩니다.
라이선스
MIT. LICENSE를 참조하십시오.
Available Tools
11 toolscallA
Honest STUB. INTENTS call returns IntentStub. Not implemented.
| 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. It transparently discloses that the tool is a stub, returns IntentStub, and is not implemented. This goes beyond merely stating it's non-functional; it specifies the only possible behavioral outcome (returning a stub object), which is exactly what an agent needs to know.
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 short sentences that convey everything essential: it's a stub, what it returns, and that it's not implemented. Every word earns its place, and the key 'Honest STUB' is front-loaded. There is no fluff or repetition.
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 stub tool with no parameters, no output schema, and no annotations, the description captures everything an agent needs to know: it should not be used for real tasks. The mention of the return type (IntentStub) provides a complete picture, and there is no missing information that would cause the agent to call it incorrectly.
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?
There are zero parameters, so the baseline is 4. The description adds nothing about parameters because there is nothing to add. The schema coverage is 100% (vacuously), and the description doesn't need to compensate for any missing parameter information.
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 explicitly states this is an 'Honest STUB' that 'returns IntentStub' and is 'Not implemented.' This leaves no ambiguity about its purpose: it is a placeholder and not a functional tool. It clearly differentiates itself from real tools by signaling its non-functional nature, even if it doesn't name siblings.
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 states 'Not implemented,' which strongly implies the agent should not call this tool for real work. While it doesn't explicitly suggest alternatives like 'use create_account instead,' the disclosure is sufficient to prevent misuse. The lack of alternative recommendations is a minor gap, but the instruction is clear and direct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_grantC
Agent consume path. Agent signs. Increments spent_lamports. Does not move SOL. Empty allowlist is denied. cap 0 requires amount 0. Optional root if not in config. Relayer submits if you also call pay.
| Name | Required | Description | Default |
|---|---|---|---|
| root | No | Root pubkey if GROKCHAIN_ROOT_KEYPAIR is unset | |
| agent | No | Agent pubkey if GROKCHAIN_AGENT_KEYPAIR is unset (unsigned-tx path) | |
| dry_run | No | ||
| target_program | Yes | Target program id (v1 router mode: local-only INTENTS on localnet; grokchain-devnet INTENTS EYhYtq… on devnet). | |
| amount_lamports | Yes | Amount to consume from the cap counter. 0 is valid (call-only). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does disclose several behaviors: 'Agent signs', 'Increments spent_lamports', 'Does not move SOL', 'Empty allowlist is denied', and 'cap 0 requires amount 0'. However, these are cryptic and not explained in plain language, and no return behavior or error conditions are mentioned.
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 extremely short, but it is not effectively structured. It is a series of cryptic fragments without a clear introductory sentence stating the purpose. The information is not front-loaded with a plain-language summary, making it more under-specified than concise.
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 tool with 5 parameters, no output schema, and no annotations, the description is inadequate. It does not explain return values, error conditions, prerequisite setup, or the relationship to other grant tools beyond a vague reference to pay. Several edge cases are mentioned but not elaborated.
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 description coverage is 80%, so the baseline is 3. The description adds some nuance beyond the schema: it explains that root is optional if not in config, and that cap 0 requires amount 0. However, it does not explain dry_run, which is the only undocumented parameter, and the added context is terse.
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 begins with 'Agent consume path' which is not a clear verb+resource statement. It mentions 'Increments spent_lamports' but does not explicitly state that this tool checks and consumes a grant allowance. Sibling tools like issue_grant and revoke_grant are not clearly differentiated.
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 only usage hint is 'Relayer submits if you also call pay', which implies a combination with pay but does not explain when to use this tool versus others like check_grant, get_grant, or issue_grant. No explicit when-to-use or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_accountA
Create the GrokAccount PDA for the human root. Root-signed. On localnet uses the local-only CORE id. On devnet uses the grokchain-devnet CORE program. If the root keypair path is missing, returns need_human_signature / need_human_setup and an unsigned tx. Never ask for a seed or key.
| Name | Required | Description | Default |
|---|---|---|---|
| root | No | Root pubkey if GROKCHAIN_ROOT_KEYPAIR is unset (unsigned-tx path) | |
| dry_run | No | Simulate instead of sending |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral burden. It discloses that the operation is root-signed, that it uses different CORE program IDs per network, and that a missing keypair returns need_human_signature/need_human_setup along with an unsigned transaction. It also gives the directive 'Never ask for a seed or key.' This goes beyond a bare 'create' and covers failure modes, though it does not mention success response or idempotency.
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 composed of short, impactful sentences each adding value: the core action, signing context, network variation, failure handling, and a safety directive. It is front-loaded with the purpose and avoids redundant filler. Efficient and well-structured.
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 two parameters, no output schema, and the complexity of network-specific behavior and conditional signing, the description covers the important operational detail: root-signed, network CORE IDs, missing-keypair fallback, and the 'no seed' warning. It does not describe the success response format or handle the case where the account already exists, but it is largely sufficient for an agent to invoke the tool correctly.
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 description coverage is 100%, so both parameters (root and dry_run) are already documented in the schema. The description adds the instruction 'Never ask for a seed or key,' which is a behavioral note rather than parameter-specific semantics. It does not provide additional format or usage details for the parameters beyond what the schema already states, so the baseline of 3 is appropriate.
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 states a specific verb and resource: 'Create the GrokAccount PDA for the human root.' It clearly identifies the tool's function and even adds network-specific context. However, it does not explicitly name any sibling tool to differentiate from, though the action is distinct enough from the grant/payment/deploy siblings.
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 provides clear context on when to use the tool (creating the human root's GrokAccount) and explains environment-specific behavior (localnet vs devnet). It mentions the edge case of a missing keypair and instructs the agent to never ask for a seed or key, which is a usage directive. It lacks explicit 'when not to use' or alternative tool references, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deployA
Honest STUB. INTENTS deploy returns IntentStub. Not implemented.
| 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 of behavioral disclosure. It transparently states that the tool returns an IntentStub and is not implemented, leaving no ambiguity about its non-functional nature. This is honest and explicit.
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 concise sentence that front-loads the honesty about being a stub. Every word serves a purpose, with no filler or unnecessary detail, making it optimally concise.
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 stub tool, this description is complete. An agent needs to know only that it is not implemented and what it returns (IntentStub), both of which are provided. No further context is required to avoid misuse.
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, and the schema description coverage is 100% (empty schema). The baseline of 4 applies because no parameter documentation is needed; the description adds nothing about parameters, but 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 explicitly states the tool is a stub and that invoking it returns an IntentStub. This clearly defines its behavior and distinguishes it from sibling tools that perform real operations. While it doesn't detail what a full deployment would do, it accurately conveys its role as a placeholder.
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 should not be used ('Not implemented'), but provides no explicit guidance on when to use it or what alternatives to choose. An agent is left to infer that it is a stub and should be avoided, without being directed to a suitable sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_accountA
Read-only. Fetch the GrokAccount PDA if it exists. No signing.
| Name | Required | Description | Default |
|---|---|---|---|
| root | No | Base58 Solana public key. Never a secret. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully carries the behavioral disclosure. It clearly states read-only semantics, the conditional fetch ('if it exists'), and that no signing is required. This covers key behavioral traits for a read operation.
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 extremely concise, consisting of three short statements. It front-loads 'Read-only' (a critical behavioral trait), states the action and condition, and ends with the signing requirement. No wasted words.
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 getter with one parameter and no output schema, the description covers essential aspects: read-only, conditional existence, and no signing. It doesn't specify the return format, but that is often implicit for a fetch operation. The tool is simple enough that the description is 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 schema already fully describes the 'root' parameter (100% coverage), including that it is a Base58 public key and never a secret. The description adds no additional parameter meaning, so baseline 3 is appropriate.
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 states the action 'Fetch' and the resource 'GrokAccount PDA', with the condition 'if it exists'. It distinguishes itself from siblings like create_account, issue_grant, and get_grant by focusing on fetching the account rather than creating or granting.
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 provides context like 'Read-only' and 'No signing' but does not explicitly contrast this tool with alternatives such as get_grant or check_grant. Usage is implied for reading account data, but no direct guidance on when to prefer this over siblings is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_grantB
Read-only. Fetch the Grant PDA if it exists. No signing. label is untrusted text.
| Name | Required | Description | Default |
|---|---|---|---|
| root | No | Base58 Solana public key. Never a secret. | |
| agent | No | Base58 Solana public key. Never a secret. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses read-only behavior and that the resource may not exist ('if it exists'), and mentions 'label is untrusted text' as a security hint. However, it omits details on return format, error behavior, or permissions, which are important for such a 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 description is very concise, with each clause earning its place: 'Read-only.' states the operation type, 'Fetch the Grant PDA if it exists.' states the purpose, 'No signing.' reinforces safety, and 'label is untrusted text.' adds an important note. It is front-loaded and efficient.
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?
Despite being simple, the description lacks crucial context: it does not explain the distinction between 'root' and 'agent' parameters, nor does it clarify what 'label' refers to. With no output schema, the return structure is also unaddressed, leaving real ambiguity for an agent.
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%, so both parameters are documented. The description adds minimal parameter meaning beyond that; the mention of 'label' does not map to schema properties. Thus it does not exceed the baseline for well-documented schemas.
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 states it fetches the Grant PDA with a specific verb ('Fetch') and resource ('Grant PDA'), and explicitly marks it as read-only. However, it does not differentiate from the sibling 'check_grant' tool, so an agent cannot easily decide which to use without additional context.
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 mentions 'Read-only' and 'No signing' but does not provide any when-to-use guidance or alternatives. It does not say why one would use this over check_grant or when not to use it, leaving the agent to infer applicability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
issue_grantA
Issue a capability Grant PDA to an agent pubkey. Root signs. Agent does not sign issue. expires_at_unix required and must be in the future. allowed_programs max 8, no duplicates, empty deny-all. cap 0 = call-only. v1 allowlist is router mode: localnet allowlists the local-only INTENTS id; devnet allowlists the grokchain-devnet INTENTS id (EYhYtq…). sponsor_eligible means this grant may use YOUR paymaster — not a promise Grok Chain pays.
| Name | Required | Description | Default |
|---|---|---|---|
| root | No | Base58 Solana public key. Never a secret. | |
| agent | Yes | Agent identity pubkey (public, not a secret) | |
| label | No | Optional 32-byte UTF-8 label. Untrusted text. Not a secret. | |
| dry_run | No | ||
| expires_at_unix | Yes | Required unix expiry. 0 is rejected. | |
| allowed_programs | Yes | Program allowlist, max 8. Empty means check_grant is denied. Router mode: localnet allowlists the local-only INTENTS id; devnet allowlists the grokchain-devnet INTENTS id (EYhYtq…), not every inner DEX. | |
| sponsor_eligible | No | This grant may use YOUR paymaster — not a promise Grok Chain pays. | |
| spend_cap_lamports | Yes | Spend cap counter in lamports. 0 = call-only. Not a vault. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure — and it delivers. It discloses the signing model (root signs, agent does not), hard validation rules (expires_at_unix must be future, allowed_programs max 8 with no duplicates, empty = deny-all), semantic meaning (cap 0 = call-only, sponsor_eligible is 'your paymaster — not a promise Grok Chain pays'), and network-dependent allowlist behavior. Exceptionally thorough for an annotation-free 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?
Dense and front-loaded with the core purpose, every clause earns its place. The telegraphic style (e.g., 'v1 allowlist is router mode') is efficient but slightly cryptic, and the paragraph lacks structural segmentation, which costs a point. Still, no wasted words.
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 an 8-parameter tool with no output schema and no annotations, the description covers a great deal: signing, validation, network specifics, and grant semantics. Minor gaps — the dry_run parameter's behavior is never explained, and the distinct role/semantics of the root parameter beyond 'Root signs' is left to the schema — keep this from a 5, but it is far above minimally viable.
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 high at 88%, so the baseline is 3, but the description adds genuine value beyond the schema: 'cap 0 = call-only' clarifies spend_cap_lamports, 'empty deny-all' and 'max 8, no duplicates' augment allowed_programs, and 'must be in the future' adds the validity requirement for expires_at_unix that the schema's '0 is rejected' only hints at. Solid additive semantics.
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+target: 'Issue a capability Grant PDA to an agent pubkey.' This clearly differentiates the action from sibling tools with overlapping domains (revise_grant, revoke_grant, check_grant, get_grant) — 'issue' is unambiguously the creation path, and the signing statement (Root signs, Agent does not) tightens the definition further.
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 gives strong contextual guidance: who signs, what the expiry must satisfy, allowlist constraints, and environment-specific router behavior (localnet vs devnet INTENTS ids). However, it never explicitly names alternatives or states when-not conditions — e.g., it does not direct the agent away from revise_grant/revoke_grant for later lifecycle steps. Clear context, but no explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
payB
Implemented INTENTS pay. On localnet uses the local-only intents id. On devnet builds against the grokchain-devnet INTENTS program. Agent signs. Relayer is the outer fee payer. Bot never holds SOL. Human-funded SpendVault is the SOL source. Optional sponsor reimburses the relayer from YOUR paymaster. Lands only if the human has rooted the account, issued a grant allowlisting the INTENTS id, funded SpendVault + Paymaster, and set RELAYER_KEYPAIR. Otherwise need_human_signature / need_human_setup.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient pubkey | |
| root | No | Root pubkey if GROKCHAIN_ROOT_KEYPAIR is unset | |
| dry_run | No | ||
| amount_lamports | Yes | Lamports to pay from SpendVault. Must be > 0. | |
| sponsor_lamports | No | Optional reimbursement to the relayer from YOUR paymaster. 0 = none. Max 10000000. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full disclosure burden. It clearly explains who signs (agent), the fee payer (relayer), that the bot never holds SOL, the funding source (SpendVault), optional sponsor reimbursement, and failure modes (need_human_signature / need_human_setup). This is strong behavioral transparency, though it omits the return value on success.
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 dense paragraph that is not front-loaded with the primary purpose; it starts with implementation details rather than a clear action statement. While it is not excessively long, it mixes environment specifics, signing, fee payer, funding, and preconditions without clear structure, making it harder to parse quickly.
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 complexity of the payment flow, the description covers many crucial aspects: environment-specific behavior, signing, fee payer, funding source, sponsor reimbursement, and required setup. It does not describe the return value or successful output, and it leaves dry_run semantics unexplained, but the coverage is strong for a payment tool without an output schema.
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 descriptions cover 4 of 5 parameters (80%), so the baseline is 3. The description adds some context by linking sponsor_lamports to the optional reimbursement and indicating SpendVault as the source for amount_lamports. However, it does not systematically explain each parameter; for dry_run and root it adds nothing beyond the schema, leaving some ambiguity about their exact roles.
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 'Implemented INTENTS pay' which largely restates the tool name and does not clearly articulate the high-level function (sending lamports to a recipient from a SpendVault). The purpose is implied through context like 'Agent signs' and 'Human-funded SpendVault is the SOL source', but a concise, explicit statement of what the tool does is missing.
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 provides concrete preconditions for success (rooting, grant, funding, RELAYER_KEYPAIR) and environment-specific behavior (localnet vs devnet), which helps an agent understand operational requirements. However, it does not explicitly instruct when to use this tool versus alternatives like swap or call, nor does it state conditions under which this tool is inappropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
revise_grantA
Replace Grant policy fields. Root signs. Agent cannot revise. Same policy rules as issue_grant. Cannot change the agent (different PDA).
| Name | Required | Description | Default |
|---|---|---|---|
| root | No | Base58 Solana public key. Never a secret. | |
| agent | Yes | Agent whose grant PDA to revise | |
| label | No | ||
| dry_run | No | ||
| expires_at_unix | Yes | ||
| allowed_programs | Yes | ||
| sponsor_eligible | No | This grant may use YOUR paymaster — not a promise Grok Chain pays. | |
| spend_cap_lamports | Yes | Lamports as integer or decimal string. Not a vault debit. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses key behaviors: it replaces policy fields, requires root signing, and prohibits the agent from revising or changing the agent field. It also references issue_grant's rules, implying validation constraints. However, it does not describe outcomes or side effects such as whether fields are overwritten or if the operation is irreversible, leaving room for ambiguity.
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 concise with no wasteful sentences. It opens with the primary action, then follows with essential constraints, making it easy to parse quickly. All sentences contribute to understanding the tool's 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?
Given the tool's complexity (8 parameters, 4 required, no annotations, no output schema), the description is missing key information. It doesn't explain the meaning of parameters like label, dry_run, or expires_at_unix, nor does it describe the return value or success feedback. The reference to issue_grant rules helps but relies on external knowledge. Overall, an agent would have difficulty confidently calling this tool without additional context.
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 descriptions for half of the parameters, and the description does not add meaning for the others (label, dry_run, expires_at_unix). It does not map the mentioned 'policy fields' to specific parameters, so the agent must rely on the schema for parameter details, which is incomplete for half of them. This is insufficient compensation for the 50% schema coverage.
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 states a specific operation ('Replace Grant policy fields') and differentiates from related tools by noting it cannot change the agent and shares policy rules with issue_grant. This clearly communicates the tool's role relative to its siblings.
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 usage for revising an existing grant's policy fields, contrasting with issue_grant by stating it cannot change the agent. It also notes the same policy rules apply, but does not explicitly mention when alternatives like revoke_grant or check_grant should be used. It gives enough context to select the tool for the right scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
revoke_grantB
Revoke a Grant. Root signs. Account is not closed. Agent cannot revoke.
| Name | Required | Description | Default |
|---|---|---|---|
| root | No | Base58 Solana public key. Never a secret. | |
| agent | Yes | Agent whose grant to revoke | |
| dry_run | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavior. It does mention authentication (Root signs) and a precondition (Account is not closed), plus a permission restriction (Agent cannot revoke). But it does not describe side effects (e.g., whether the grant is permanently removed), what happens on failure (e.g., if account is closed), or the meaning of dry_run. This is a partial disclosure.
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 three terse sentences, each carrying distinct information: the action, the signing requirement, and the permission restriction. It is front-loaded with the core purpose and wastes no words. The brevity is appropriate for the level of detail provided.
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 mutation tool with no annotations and no output schema, the description is under-specified. It does not explain return values, error conditions (e.g., what happens if root lacks authority or account is closed), the effect of dry_run, or how the grant revocation impacts other state. It also lacks guidance on distinguishing it from sibling grant tools, making it incomplete for correct invocation.
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 2 of 3 parameters (root, agent) with descriptions, but dry_run lacks any description. The tool description does not add any parameter meaning beyond what the schema already provides, and fails to compensate for the dry_run gap. No elaboration on parameter syntax, defaults, or edge cases is given.
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 states the action ('Revoke a Grant') and the resource. It adds meaningful constraints (Root signs, Account not closed, Agent cannot revoke) that hint at the tool's scope, but it doesn't explicitly differentiate from sibling tools like issue_grant or revise_grant. An agent could infer it's the opposite of issue_grant but not from the text alone.
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 provides context on when the tool can be used (root signature required, account must be open, agent lacks permission) which implies the intended caller and conditions. However, it does not state when to prefer this tool over alternatives like revise_grant or check_grant, nor does it list exclusions. The guidance is implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swapA
Honest STUB. INTENTS swap returns IntentStub. Not implemented. Does not call a DEX.
| 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 carries the full burden of behavioral disclosure. It transparently states that the tool returns 'IntentStub', is 'Not implemented', and does not call a DEX. This fully discloses the no-op nature and lack of side effects, which is honest and clear. The only minor gap is that it doesn't explain what IntentStub is, but that's not critical for a stub.
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, compact sentence that front-loads the most critical information ('Honest STUB', 'Not implemented') before adding secondary details. Every word contributes value, and there is no unnecessary fluff. This is exemplary conciseness for a stub definition.
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 stub, this description is complete: it tells the agent not to use it, what it returns, and that it has no side effects. There's no output schema, but the return type is explicitly mentioned. It doesn't need to explain the semantics of a real swap because the tool is purely a placeholder. The context signals confirm simplicity, so nothing important is missing.
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 and the schema is empty, so there are no parameters to document. Per the baseline for 0-parameter tools, a score of 4 is appropriate. The description doesn't need to add parameter information because there are none, and it doesn't introduce any confusion.
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 the tool as an 'Honest STUB' and explicitly states 'Not implemented', making it obvious that it is a placeholder for a swap operation. It names the specific intent ('INTENTS swap') and the return type ('IntentStub'), which distinguishes it from functional sibling tools even though it doesn't describe what a real swap would do. This is clear enough for an agent to recognize it as a non-functional stub.
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 says 'Not implemented', serving as a direct warning not to invoke this tool. It also clarifies that it 'Does not call a DEX', indicating no side effects. While it doesn't point to alternative tools, the primary usage guidance is to avoid this stub, which is exactly what an agent needs to know. This is more explicit than typical guidance because it completely rules out usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a distinct purpose: account creation/read, grant lifecycle (issue, revise, revoke, check), payment, and stubs for swap/deploy/call. Even the stubs are clearly labeled as not implemented, preventing confusion. The only slight overlap between check_grant and pay is resolved by descriptions: check_grant only increments spent_lamports without moving SOL, while pay executes an actual payment.
The naming pattern is inconsistent: some tools follow verb_noun (create_account, issue_grant, get_grant) while others are single verbs (pay, swap, deploy, call). Additionally, verbs for similar actions vary (issue vs create, revise vs update). Despite this, the names are readable and convey meaning, but the lack of a uniform pattern reduces predictability.
With 11 tools, the server is well-scoped. It covers account management, grant lifecycle, payment, and read operations without excessive fragmentation. Each tool serves a clear role in the domain, and the count fits comfortably within the ideal 3-15 range.
The tool set covers the core workflows: creating and reading accounts, issuing/revising/revoking/checking grants, and making payments. The stubs for swap/deploy/call indicate planned features, not gaps. Missing operations like listing all grants or funding the vault are minor and can be handled externally, so the surface is largely complete.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Agent payments, API key vaulting, and governed mandates. Agents spend within user-defined limits.
Agent-to-agent escrow on Base. Post quests with ETH/USDC bounties and settle on-chain.
Complete financial infrastructure for AI agents — payments, lending, escrow & more.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceEnables AI agents to perform financial transactions such as direct payments, escrows, and bounty management using natural language with zero code integration. It provides a comprehensive suite of tools for fund streaming, subscriptions, and reputation tracking to facilitate secure agent-to-agent commerce.22MIT
- AlicenseAqualityDmaintenanceProvides permissionless wallet infrastructure for AI agents to manage wallets, sign transactions, and handle tokens across Solana and all EVM-compatible chains. It includes 29 specialized tools for on-chain operations, featuring built-in security guards and automated x402 payment processing without KYC requirements.294023MIT
- AlicenseAqualityDmaintenanceEnables AI agents to manage USDC wallets on Solana, allowing them to send payments, create invoices, and access paid APIs within human-defined spending limits. It uses threshold signatures to provide agents with financial autonomy while ensuring secure oversight and transaction approval.36233Apache 2.0
- AlicenseAqualityDmaintenanceEnables AI agents to check balances and send transactions across multiple blockchains with automatic spending limit protection and policy enforcement.3MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/grokloop/grokchain-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server