NEAR MCP
OfficialThe NEAR MCP server enables AI models and agents to securely interact with the NEAR blockchain with the following capabilities:
Account Management: List, import, export, create, and delete NEAR accounts; transfer balances; get account summaries
Access Key Management: List, add, and delete access keys (FullAccess or FunctionCall)
Transactions: Sign data, verify signatures, send NEAR tokens or fungible tokens (USDC, USDT, WNEAR, etc.)
Smart Contracts: View available functions, get function arguments, call functions (read-only view methods or transaction-based methods)
Security Operations: Manage local keystore and private keys securely
Enables interaction with the NEAR blockchain, providing tools for managing NEAR accounts, checking balances, signing and sending transactions, creating new accounts, managing access keys, and sending NEAR tokens.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@NEAR MCPcheck my account balance for alice.near"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
NEAR MCP
This project is a Model Context Protocol (MCP) compatible server for interacting with the NEAR blockchain. This tool provides a way for LLMs and AI agents to securely access and interact with NEAR accounts and blockchain functionality.
Quickstart
Here is how to get started with the near-mcp server quickly with the claude code cli
npm install -g @anthropic-ai/claude-code
claude mcp add near-mcp npx @nearai/near-mcp@latest run
claudeOr deploy the MCP server remotely on Phala Cloud, check the instructions here
Related MCP server: near-hydra-mcp
Installing
near-mcp is meant to be used is with an MCP compatible client. Learn more in the MCP docs
Adding to the claude code cli:
claude mcp add near-mcp npx @nearai/near-mcp@latest runAdding to claude desktop via JSON config:
{
"mcpServers": {
"near-mcp": {
"command": "npx",
"args": ["-y", "@nearai/near-mcp@latest", "run"],
"env": {}
}
}
}Adding to goose
┌ goose-configure
│
◇ What would you like to configure?
│ Add Extension
│
◇ What type of extension would you like to add?
│ Command-line Extension
│
◇ What would you like to call this extension?
│ near-mcp
│
◇ What command should be run?
│ npx @nearai/near-mcp@latest run
│
◇ Please set the timeout for this tool (in secs):
│ 60
│
◇ Would you like to add environment variables?
│ No
│
└ Added near-mcp extensionOr you can install it globally and use it directly.
# Install globally
npm install -g @nearai/near-mcp@latest
# Or use directly with npx
npx @nearai/near-mcp@latest runAvailable Tools
see TOOLS.md for a list of available tools and arguments.
Integration with AI Models
This tool is designed to be used with AI models that support the Model Context Protocol. It enables AI assistants to:
Manage NEAR accounts on behalf of users
Check account balances and status
Sign and send transactions
Create new accounts and manage access keys
Inspect and execution smart contracts
Security Considerations
This MCP is meant to be run locally. Account private keys are stored in a local unencrypted keystore where the MCP server is running.
The underlying models should not have access to see the private keys of the accounts they are interacting with with one exception. The
import_accounttool allows the model to import an account from a private key. This requires the user to provide the private key to the model.
Contributing
We welcome contributions to the NEAR MCP server! Please see the CONTRIBUTING.md file for more information.
Reporting Issues
If you find a bug or have a feature request, please open an issue on the GitHub repository.
Available Tools
23 toolsaccount_add_access_keyC
Add an access key to an account. This can be used to grant full access to an account, or allow the specified account to have specific function call access to a contract.
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | ||
| networkId | No | mainnet | |
| accessKeyArgs | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It only states the action and permissions, but fails to disclose side effects, prerequisites (e.g., need for signing), or outcomes. Minimal behavioral 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 concise (two sentences) but lacks critical details. It is not overly verbose, but could be improved by adding parameter/behavior info without becoming lengthy.
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 tool complexity (3 parameters, nested schema, no annotations, no output schema), the description is highly incomplete. It fails to provide enough context for an agent to use 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?
Input schema coverage is 0%, and the description does not explain any parameter (accountId, networkId, accessKeyArgs). The nested permission object is not described, leaving the agent to infer from the schema alone.
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?
Description clearly states the action ('Add an access key') and specifies two purposes (grant full access or function call access). However, it does not explicitly distinguish from sibling tools like 'account_delete_access_keys' or 'account_list_access_keys'.
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?
No usage guidance provided. The description does not indicate when to use this tool versus alternatives (e.g., deleting or listing access keys, or creating accounts).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_create_accountA
Create a new NEAR account with a new account ID. The initial balance of this account will be funded by the account that is calling this tool. This account will be created with a random public key. If no account ID is provided, a random one will be generated. Ensure that mainnet accounts are created with a .near suffix, and testnet accounts are created with a .testnet suffix.
| Name | Required | Description | Default |
|---|---|---|---|
| signerAccountId | Yes | The account that will fund the new account. | |
| newAccountId | No | The account id of the new account. If not provided, a random one will be generated. | |
| initialBalance | Yes | The initial balance of the new account in NEAR. If not provided, the new account will be funded with 0.1 NEAR. | |
| networkId | No | mainnet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that the account is funded by the signer, uses a random public key, and can generate a random account ID, but does not mention potential costs (gas), signing requirements, or failure conditions (e.g., duplicate ID) despite no annotations.
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?
Four sentences with no redundancy; key information is front-loaded and every sentence contributes directly to understanding tool usage.
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?
Covers creation process, funding, and account ID rules well, but lacks details about return value and error scenarios; still adequate given no 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?
Adds value beyond the schema by detailing the suffix rule for newAccountId and the default initial balance (0.1 NEAR), complementing the schema descriptions which already cover basic purpose.
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 verb 'Create' and the resource 'new NEAR account', and distinguishes from siblings like account_create_implicit_account by specifying 'with a new account ID'.
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?
Provides explicit guidance on suffix conventions for mainnet (.near) and testnet (.testnet), and implies usage for creating explicit accounts, but lacks explicit comparison to implicit account creation or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_create_implicit_accountA
Create an implicit account on the NEAR blockchain. An implicit account is a new random keypair that is not associated with an account ID. Instead the account ID is derived from the public key of the keypair (a 64-character lowercase hexadecimal representation of the public key). This implicit account id can be used just as a regular account id, but remember it is not an official account id with a .near or .testnet suffix. Creating implicit accounts is useful for adding new access keys to an existing account.
| Name | Required | Description | Default |
|---|---|---|---|
| networkId | No | mainnet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It explains keypair generation and ID derivation, but fails to mention whether the keypair is stored locally, any network interaction, or the output format. This leaves some ambiguity about side effects.
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 concise paragraph of five sentences. It front-loads the core action and provides useful context. Could be slightly tighter but overall 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?
Given low complexity (1 param, no output schema), the description covers the concept and use case. However, it lacks details on what the tool returns (e.g., public key/account ID) and whether the keypair is stored. For a simple tool, this is adequate but not complete.
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 0%, and the description does not mention the single parameter (networkId) at all. The enum values are clear from the schema, but the description adds no semantic meaning about the parameter's role or default behavior.
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 tool creates an implicit account on NEAR blockchain, explains what an implicit account is, and distinguishes it from named accounts by noting it lacks .near or .testnet suffix. It differentiates from sibling tool 'account_create_account' by describing the nature of the generated account ID.
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 a specific use case: 'useful for adding new access keys to an existing account.' However, it does not explicitly state when not to use this tool or directly compare with alternatives like account_create_account.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_delete_access_keysB
Delete an access key from an account based on it's public key.
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | ||
| networkId | No | mainnet | |
| publicKey | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only states the operation is a deletion. It does not disclose potential side effects, required permissions, or consequences (e.g., irreversible removal, impact on account access).
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 short sentence, which is concise, but it contains a typo ('it's' instead of 'its') and lacks structure (no paragraphs or bullet points). It could be more informative without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no annotations, and no output schema, the description is insufficient. It does not explain return values, confirmation of deletion, or prerequisites. Among many sibling tools, more context is needed 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?
With 0% schema description coverage, the description should explain the parameters. It mentions publicKey and implicitly accountId, but networkId is completely undocumented. Only one of three parameters is partially explained.
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 (delete), the resource (access key from an account), and the method (based on public key). It effectively distinguishes from sibling tools like account_add_access_key and account_list_access_keys.
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?
No explicit guidance on when to use this tool versus alternatives like account_add_access_key or account_list_access_keys. The purpose is clear from the name, but the description does not provide context-specific instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_delete_accountA
Delete an account from the NEAR blockchain. This will also remove the account from the local keystore and any associated keypair.
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | The account to delete. | |
| beneficiaryAccountId | Yes | The account that will receive the remaining balance of the deleted account. | |
| networkId | No | mainnet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description covers the main behaviors: deleting from blockchain and from local keystore. It does not detail irreversibility or balance handling, but the beneficiary parameter addresses that.
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?
Two sentences, no redundancy. Directly states the action and additional effects.
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 delete operation with 3 parameters and no output schema, the description covers the key action and local side effect. Could mention success confirmation but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, and the description adds no extra parameter meaning beyond the schema's descriptions. It does not compensate for the missing networkId description.
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 tool's function: 'Delete an account from the NEAR blockchain.' It also specifies additional effects like removing from local keystore and keypair. This distinguishes it from sibling tools like account_create_account or account_add_access_key.
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 no guidance on when to use this tool versus alternatives (e.g., system_remove_local_account for local-only removal). No prerequisites or contraindications are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_export_accountC
Export a NEAR account from the local keystore to a file.
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | ||
| networkId | No | mainnet | |
| filePath | No | The path to the file to write the account to. If not provided, the account will be written to the current working directory. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits like error handling (e.g., account not found), file overwrite behavior, or output format. The description carries the full burden but adds little.
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 sentence with no fluff, making it concise. However, it is overly brief and could benefit from additional details without becoming verbose.
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 simplicity (export with 3 parameters, no output schema), the description is incomplete. It does not explain accountId format, networkId purpose, or filePath default behavior, leaving gaps 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 description coverage is only 33% (only filePath has a description). The description does not add meaning for accountId or networkId beyond what the schema provides. The enum for networkId is present but not explained.
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 verb 'Export', the resource 'NEAR account from the local keystore', and the output 'to a file'. It distinguishes from sibling tools like account_create_account or account_delete_account.
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?
No guidance is provided on when to use this tool versus alternatives, such as system_import_account. No prerequisites or context for export are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_list_access_keysC
List all access keys for an given account.
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | ||
| networkId | No | mainnet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are given. The description implies a read-only operation via 'list,' but lacks explicit statements about side effects, authentication needs, rate limits, or error handling. This is insufficient given the absence of annotations.
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, clear sentence with no unnecessary words. However, it is almost too concise, lacking details that could improve completeness without sacrificing brevity.
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 no output schema and no annotations, the description leaves out important context: what the returned list contains, pagination, errors, or prerequisites. It is incomplete for effective use.
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?
With 0% schema description coverage, the description adds minimal value. It implies accountId is the account but does not explain networkId or its enum values, nor any format or constraints. The schema details are not supplemented.
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 'list' and the resource 'access keys for an given account,' effectively distinguishing it from siblings like account_add_access_key and account_delete_access_keys.
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?
No guidance is provided on when to use this tool versus alternatives such as account_add_access_key or account_delete_access_keys. There are no prerequisites, exclusions, or context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_sign_dataB
Cryptographically sign a piece of data with a local account's private key, then encode the result with the specified encoding. Outputs the curve, encoded signature, and encoding used.
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | The account id of the account that will sign the data. This account must be in the local keystore. | |
| networkId | No | mainnet | |
| data | Yes | The data to sign as a string. | |
| signatureEncoding | No | The encoding to use for signature creation. | base58 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for disclosing behavioral traits. It mentions that the account must be local and that the output includes curve and encoding, but omits critical details like whether the operation is irreversible, what happens if the account is missing, or any security implications.
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 two short sentences that front-load the action and immediately follow with the output. Every sentence contributes meaningful information without redundancy or unnecessary detail.
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 moderate complexity of a signing tool, the description covers the core operation and output. However, it lacks explicit mention of common failure modes (e.g., invalid account, unsupported curve) and does not reference the sibling verification tool for context. Still, it is mostly complete for its purpose.
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 provides detailed descriptions for three out of four parameters (75% coverage). The description adds minimal extra meaning beyond restating the encoding process and output structure, so it meets the baseline but does not significantly enhance parameter understanding.
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 tool's primary action: cryptographically signing data with a local private key and encoding the result. It specifies the verb 'sign' and the resource 'data with a local account's private key', and implicitly distinguishes from the sibling 'account_verify_signature' tool by focusing on signing rather than verification.
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 does not provide explicit guidance on when to use this tool versus alternatives such as 'account_verify_signature'. It does not mention prerequisites, edge cases, or situations where this tool should not be used, leaving the agent without clear decision criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_verify_signatureB
Cryptographically verify a signed piece of data against a NEAR account's public key.
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | The account id to verify the signature against and search for a valid public key. | |
| networkId | No | mainnet | |
| data | Yes | The data to verify. | |
| signatureArgs | Yes | The signature arguments to verify. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states the operation without mentioning side effects (likely none), return values, or error handling. The agent cannot infer whether this is a read-only call or what happens on failure.
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 efficiently communicates the core purpose. However, it could be slightly expanded to include key behavioral details without becoming verbose.
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 lack of output schema and the complexity of a cryptographic verification tool, the description is insufficient. It omits expected return type (e.g., boolean result) and any assumptions about the signature format beyond what's in the 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 description coverage is 75%, so baseline is 3. The description adds no extra information about parameters beyond what the schema already provides, such as constraints or relationships between accountId, data, and signatureArgs.
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 uses a specific verb 'verify' and clearly states the resource 'a signed piece of data against a NEAR account's public key'. It distinctly sets the tool apart from its sibling 'account_sign_data' which performs the opposite operation.
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?
No guidance is provided on when to use this tool versus alternatives, nor are there any preconditions or context for usage. For example, it does not mention that the account's public key must be available or that verification is typically done after signing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
account_view_account_summaryA
Get summary information about any NEAR account. This calls a public RPC endpoint to get this information.
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | ||
| networkId | No | mainnet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that it calls a public RPC endpoint, indicating it is read-only and requires no authentication. No annotations exist, so the description carries full burden; it covers key behavioral traits but omits error handling or rate limits.
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?
Two sentences, each adding value. The description is front-loaded with purpose and avoids redundant or verbose language. Every word earns its place.
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 two-parameter tool with no output schema, the description covers the core purpose and the nature of the RPC call. It lacks mention of error scenarios but is otherwise complete.
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?
With 0% schema description coverage, the description must compensate. It clarifies accountId's purpose ('any NEAR account') but does not explain the networkId parameter or its default/options, leaving a gap for the agent.
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 verb 'Get' and resource 'summary information about any NEAR account'. It distinguishes this read-only tool from sibling write operations like account_create_account or account_delete_account.
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 retrieving account summary but does not explicitly state when to use it over alternatives like contract_view_functions or other account tools. No exclusion criteria are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contract_call_raw_functionB
Call a function of a contract as a raw function call action. This tool creates a function call as a transaction which costs gas and NEAR.
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | The account id of the signer. | |
| contractAccountId | Yes | The account id of the contract. | |
| methodName | Yes | The name of the method to call. | |
| networkId | No | mainnet | |
| args | Yes | The arguments to pass to the method. | |
| gas | No | The amount of gas to use for the function call in yoctoNEAR (default to 30TGas). | |
| attachedDeposit | No | The amount to attach to the function call (default to 1 yoctoNEAR). Can be specified as a number (in NEAR) or as a bigint (in yoctoNEAR). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that it creates a transaction costing gas and NEAR, but lacks details on side effects, authorization requirements, or error states. With no annotations, the description carries full burden and falls short.
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?
Two short sentences, no redundancy. Efficient but misses important details for context.
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 7 parameters and no output schema, the description is too minimal. It doesn't explain how to structure args, what the return value is, or error handling. A more complete description would improve usability.
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 (86%), so most parameters are documented. Description adds no extra meaning beyond schema. 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?
Description clearly states it calls a contract function via a raw transaction costing gas and NEAR. Differentiates from read-only operations by mentioning cost, but doesn't explicitly distinguish from the read-only sibling tool.
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?
Implies use for write operations (costs gas/NEAR), but provides no explicit when-to-use or when-not-to-use guidance. Does not mention alternatives like the read-only variant.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contract_call_raw_function_as_read_onlyB
Call a function of a contract as a read-only call. This is equivalent to saying we are calling a view method of the contract.
| Name | Required | Description | Default |
|---|---|---|---|
| contractId | Yes | The account id of the contract. | |
| methodName | Yes | The name of the method to call. | |
| networkId | No | mainnet | |
| args | Yes | The arguments to pass to the method. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the call is read-only and equivalent to a view method, which is a key behavioral trait. However, with no annotations provided, the description carries full burden and lacks details on other traits like gas costs, prerequisites, or error handling.
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 at two sentences, front-loads the purpose, and contains no extraneous information. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters, no output schema, and no annotations, the description omits important context such as return values, error conditions, and network defaults. The description is too brief for the tool's complexity.
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 (75% or more) with all parameters described in the schema. The description adds no extra parameter semantics beyond the schema, 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 (call a function), the resource (contract), and distinguishes it as a read-only call equivalent to a view method, avoiding tautology and providing specificity.
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?
No explicit guidance on when to use this tool versus the sibling 'contract_call_raw_function' (presumably a write call). The description does not mention alternatives or exclusions, leaving the agent to infer the context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contract_get_function_argsB
Get the arguments of a function call by parsing the contract's ABI or by using the nearblocks.io API (as a fallback). This function API checks recent execution results of the contract's method being queried to determine the likely arguments of the function call. Warning: This tool is experimental and is not garunteed to get the correct arguments.
| Name | Required | Description | Default |
|---|---|---|---|
| contractId | Yes | ||
| methodName | Yes | ||
| networkId | No | mainnet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that it is experimental, checks recent execution results, and is not guaranteed, which adds behavioral context beyond the schema. However, it does not clarify if the tool is read-only or any error behaviors, which would be helpful given the lack of annotations.
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, consisting of two main sentences plus a warning. It is front-loaded with the core purpose, and every sentence adds value. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with 3 parameters, and the description covers the basic approach and caveat. However, it omits details like how the arguments are returned or example usage, which would improve completeness for an experimental tool.
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?
With 0% schema coverage, the description should explain each parameter. It only vaguely implies contractId and methodName are used, but does not define them explicitly or provide format hints. NetworkId is not mentioned in the description at all.
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 tool gets arguments of a function call by parsing ABI or using an API. It specifies the action (get) and resource (arguments), distinguishing it from sibling tools like contract_view_functions that list functions rather than arguments.
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?
No guidance is provided on when to use this tool versus alternatives such as contract_call_raw_function or contract_view_functions. The description lacks explicit when-to-use or when-not-to-use criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
contract_view_functionsB
View available functions on a NEAR smart contract.
| Name | Required | Description | Default |
|---|---|---|---|
| contractId | Yes | ||
| networkId | No | mainnet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits like read-only nature, error handling, or authentication requirements. For a tool with no annotations, this is insufficient.
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?
Single sentence, concise, no fluff. Front-loaded with the action and resource.
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?
No output schema and minimal description. Does not explain return format, possible errors, or provide examples. Incomplete for a tool with 2 parameters and no annotations.
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?
Schemas have 0% description coverage, and the description adds no meaning beyond parameter names. Does not explain what contractId or networkId represent or how to use them.
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 verb 'View' and the resource 'available functions on a NEAR smart contract', distinguishing it from sibling tools like contract_call_raw_function.
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?
No guidance on when to use this tool versus alternatives such as contract_get_function_args or contract_call_raw_function. Missing context on prerequisites or network selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ref_finance_execute_swapC
Execute a swap on Ref Finance based on two tokens and a pool id. Prioritize pools with higher liquidity and better rates for the user.
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | The account id of the user doing the swap | |
| tokenIn | Yes | ||
| tokenOut | Yes | ||
| amount | Yes | The amount of the input tokens to swap | |
| swapType | No | The type of estimate to get. Defaults to the ref finance smart router to find the best price over all available pools | |
| networkId | No | mainnet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden but offers minimal behavioral details: it mentions 'prioritize pools with higher liquidity and better rates' but does not disclose atomicity, return value, failure modes, or authorization needs (e.g., token approval).
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?
Two concise sentences, front-loaded with core action. The second sentence adds some value but is somewhat redundant with the smart routing default. 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?
Given the tool's complexity (nested objects, two swap methods, no output schema), the description is insufficient. It omits key aspects: what the return value is, how to interpret the swap types, and the significance of slippage/path depth parameters.
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 50%, but the schema itself describes many parameters (tokenIn, tokenOut, amount, swapType). The description adds a high-level prioritization hint but does not clarify the pool id parameter's optionality or refine the swapType choices beyond the schema.
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 (execute a swap) and resource (Ref Finance), but it ambiguously mentions 'based on two tokens and a pool id' while the schema supports both pool-specific and smart routing. It does not fully differentiate the two modes.
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?
No explicit guidance on when to use this tool versus alternatives like 'ref_finance_get_swap_estimate' or prerequisites for a swap. The description only implies the core action without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ref_finance_get_poolsC
Search for liquidity pools on the Ref Finance exchange contract based on two tokens. Prioritize pools with higher liquidity and better rates for the user.
| Name | Required | Description | Default |
|---|---|---|---|
| tokenA | Yes | ||
| tokenB | Yes | ||
| networkId | No | mainnet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states it 'searches' and 'prioritizes' but does not disclose whether the tool is read-only, how many pools are returned, how prioritization works, or any side effects. This lacks sufficient behavioral context.
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?
Two concise sentences with no fluff. Front-loaded with the primary action. Every sentence adds value.
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 having 3 parameters and no output schema, the description does not cover what the tool returns, how prioritization works, or any limitations. It is insufficient for an agent to reliably use the 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?
With 0% schema description coverage, the description must explain parameters. It only says 'based on two tokens', adding no meaning beyond the schema itself. It does not explain the structure of tokenA/tokenB or the networkId parameter.
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 verb 'search' and the resource 'liquidity pools on the Ref Finance exchange contract', and distinguishes it from sibling tools like ref_finance_execute_swap and ref_finance_get_swap_estimate by specifying it is based on two tokens.
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 says to use it for searching pools based on tokens and prioritizes liquidity, but provides no explicit guidance on when to use this tool vs alternatives (e.g., when to use get_swap_estimate instead), nor any conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ref_finance_get_swap_estimateC
Get a swap estimate from the Ref Finance exchange contract based on two tokens and a pool id.
| Name | Required | Description | Default |
|---|---|---|---|
| tokenIn | Yes | ||
| tokenOut | Yes | ||
| amount | Yes | The amount of the input tokens to swap | |
| estimateType | No | The type of estimate to get. Defaults to the ref finance smart router to find the best price over all available pools | |
| networkId | No | mainnet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry full burden. It only says 'Get a swap estimate' with no mention of side effects (should be read-only), permissions, rate limits, or return format. Minimal behavioral context.
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?
Single sentence, no wasted words. It is concise, though could be slightly more informative without losing brevity.
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 (5 parameters, nested objects, two estimate types), the description is too brief. No mention of output (estimated amount), network selection, or the smart route vs pool id distinction. Schema fills some gaps but description should summarize.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has rich descriptions for most parameters, so the description adds little extra meaning. It mentions 'two tokens and a pool id' which maps to tokenIn, tokenOut, and optional poolId, but schema already covers these.
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 tool gets a swap estimate, which is a specific verb+resource. It mentions two tokens and a pool id, differentiating it from sibling tools like execute_swap (execution) and get_pools (listing). However, it does not explicitly contrast with these 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?
No guidance on when to use this tool vs. alternatives (e.g., when to use execute_swap instead). The context of 'estimate' implies a preview before swap, but this is not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_near_fungible_tokensA
Search for fungible token contract information for the NEAR blockchain, based on search terms. This tool works by 'grepping' through a list of contract information JSON objects. Be careful with this tool, it can return a lot of results. Ensure that your query is specific.
| Name | Required | Description | Default |
|---|---|---|---|
| accountIDSearchTerm | No | The grep-like search term to use for finding fungible token contract information by account ID. | |
| symbolSearchTerm | No | The grep-like search term to use for finding fungible token contract information by symbol. | |
| nameSearchTerm | No | The grep-like search term to use for finding fungible token contract information by name. | |
| maxNumberOfResults | No | The maximum number of results to return. This is a limit to the number of results returned by the API. Keep this number low to avoid overwhelming the API. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that the tool uses 'grepping' and can return many results, which is helpful. However, no annotations exist, and the description omits whether it is read-only, idempotent, or requires authentication.
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?
Two sentences with no fluff. First sentence states purpose; second adds critical usage advice. 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?
Lacks output schema explanation; does not describe return format or that results are a list. For a search tool, this omission reduces completeness. Also does not clarify if it is read-only.
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% with clear parameter descriptions. The description adds the 'grepping' analogy and a warning about query specificity, but does not significantly enhance understanding beyond the schema.
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?
Clearly states verb (search), resource (fungible token contract info), and context (NEAR blockchain). Distinguishes from siblings like tokens_send_ft or ref_finance_* by focusing on searching contract metadata.
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?
Implies that users should be specific to avoid too many results, but does not give explicit when-to-use or alternatives. No mention of when not to use compared to other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_import_accountB
Import an account into the local keystore. This will allow the user to use this account with other tools. Remember mainnet accounts are created with a .near suffix, and testnet accounts are created with a .testnet suffix.
| Name | Required | Description | Default |
|---|---|---|---|
| args | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It mentions keystore import and suffix conventions, but does not disclose side effects (e.g., overwrite behavior), error conditions, or auth/permissions needed. The description is insufficient for a mutation 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 extremely concise with three short sentences. Every sentence adds unique value: purpose, usage context, and a naming tip. No redundant or irrelevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the concise description, it lacks important details such as return values, error handling, the two distinct import methods, and prerequisites (e.g., keystore existence). The input schema complexity is not addressed in the description, making it incomplete for an agent to use 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?
The schema already describes privateKey and filePath. The tool description adds value by explaining the .near/.testnet suffix convention for accountId, which is undocumented in the schema. However, it does not describe the 'op' parameter or the structure of the 'args' object, so schema description coverage is low.
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 'Import an account into the local keystore', which is a specific verb and resource. It distinguishes the tool from siblings like system_list_local_keypairs and system_remove_local_account by its import function.
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 a context hint ('This will allow the user to use this account with other tools') and a naming convention tip for account IDs. However, it lacks guidance on when to use import_from_private_key vs import_from_file, and does not mention prerequisites or when not to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_list_local_keypairsA
List all NEAR accounts and their keypairs in the local keystore by network.
| Name | Required | Description | Default |
|---|---|---|---|
| networkId | No | mainnet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description discloses reading from local keystore and returning accounts/keypairs. However, it does not mention if any network call is involved or other side effects. Adequate but basic.
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?
Single sentence that is concise and front-loaded with the key action. 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 tool with one optional parameter and no output schema, the description covers the core functionality. It might be improved by noting it operates on the local keystore only, but overall 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 description mentions 'by network' which hints at the networkId parameter, but does not explain its enum values (testnet/mainnet) or default (mainnet). With 0% schema description coverage, the description adds minimal meaning beyond the schema.
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 verb 'List', the resource 'NEAR accounts and their keypairs', and the scope 'local keystore by network'. It distinguishes from sibling tools like account_list_access_keys which list keys for a specific account.
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?
No guidance on when to use this tool versus alternatives such as account_list_access_keys for a single account. No when-not-to or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
system_remove_local_accountA
Removes a local NEAR account from the local keystore. Once removed, the account will no longer be available to the user. This does not delete the account from the NEAR blockchain, it only removes the account from the local keystore.
| Name | Required | Description | Default |
|---|---|---|---|
| accountId | Yes | The local account id to remove from the local keystore. | |
| networkId | No | mainnet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that removal is local only and does not affect the blockchain, which is critical. However, it does not mention what happens if the account doesn't exist, whether the action is reversible, or any permission requirements.
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, front-loading the core action and adding a clarifying negative statement. No unnecessary 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 removal tool with no output schema, the description covers the essential 'what it does' and 'what it does not do'. It is complete enough, though it could mention reversibility or error handling.
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 accountId parameter is already well-described in the schema. The networkId parameter has enum and default but no description, and the tool description does not add any context for it. With 50% schema coverage, the description does not compensate for the missing parameter details.
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 verb 'removes' and the resource 'local NEAR account from the local keystore', clearly distinguishing it from blockchain deletion. It also differentiates from siblings like system_import_account and system_list_local_keypairs by focusing on removal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (when user wants to remove local access) by stating the effect, but does not explicitly state when not to use or provide alternative tools. Given the clear context and opposite siblings, it is still reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tokens_send_ftC
Send Fungible Tokens (FT) like USDC native, USDT, WNEAR, etc. based on the NEP-141 and NEP-148 standards to an account. The signer account is the sender of the tokens, and the receiver account is the recipient of the tokens. Ensure the contract account id exists and is in the same network as the signer and receiver accounts.
| Name | Required | Description | Default |
|---|---|---|---|
| signerAccountId | Yes | The account that will send the tokens. | |
| receiverAccountId | Yes | The account that will receive the tokens. | |
| networkId | No | mainnet | |
| fungibleTokenContractAccountId | Yes | The account id of the fungible token contract. Ensure the contract account id exists and is in the same network as the signer and receiver accounts. | |
| amount | Yes | The amount of tokens to send in the fungible token contract. e.g. 1 USDC, 0.33 USDT, 1.5 WNEAR, etc. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It states the signer is sender and receiver is recipient, and emphasizes network alignment. However, it fails to disclose critical traits: that this is a write/mutation operation, irreversibility, authorization requirements, or any limitations. The behavioral transparency is insufficient.
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 sentences with no wasted words. It is concise and to the point, though it lacks structural elements like bullet points or sections. The information is front-loaded with the primary action.
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 no output schema, the description should mention return values (e.g., transaction receipt). It also lacks error conditions, decimal handling, and standard implications. While it covers network and contract existence, it omits important contextual details for a tool with 5 parameters and many siblings.
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 80% of parameters with descriptions; the description adds context for signer, receiver, contract, and amount (e.g., examples like '1 USDC'). However, it does not add meaning for networkId. The added value is modest but acceptable given high schema coverage, earning a baseline score of 3.
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 tool sends fungible tokens like USDC, USDT, WNEAR, referencing NEP-141 and NEP-148 standards. It specifies the verb 'send' and the resource 'fungible tokens' with examples. However, it does not explicitly differentiate from the sibling tool tokens_send_near, which sends native NEAR tokens, leaving the distinction implicit.
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 basic prerequisites (ensure contract exists and same network) but provides no guidance on when to use this tool versus alternatives like tokens_send_near or ref_finance_execute_swap. There is no mention of when not to use it or context for selecting this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tokens_send_nearA
Send NEAR tokens to an account (in NEAR). The signer account is the sender of the tokens, and the receiver account is the recipient of the tokens. Remember mainnet accounts are created with a .near suffix, and testnet accounts are created with a .testnet suffix. The user is sending tokens as the signer account. Please ensure that the sender and receiver accounts are in the same network.
| Name | Required | Description | Default |
|---|---|---|---|
| signerAccountId | Yes | ||
| receiverAccountId | Yes | ||
| amount | No | The amount of NEAR to send in NEAR. e.g. 1.5 | |
| networkId | No | mainnet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It mentions signer as sender and network constraints, but lacks disclosure on destructive nature, required permissions, return value, or error cases.
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 at 4 sentences with no redundancy, though structure could be improved with bullet points for clarity.
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 4 parameters, no output schema, and no annotations, the description is adequate but missing guidance on error handling, preconditions (balance), and return values.
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?
Despite only 25% schema description coverage, the description adds meaning for signerAccountId, receiverAccountId, and networkId by explaining roles and network suffixes, compensating for the schema gap.
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 ('Send NEAR tokens'), the resource (NEAR tokens in NEAR), and distinguishes from sibling tools like tokens_send_ft which sends fungible tokens.
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 account network consistency and suffixes, but does not explicitly state when to use this tool versus alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
23 tool updates
v1.0.0- First observed
account_add_access_key - First observed
account_create_account - First observed
account_create_implicit_account - First observed
account_delete_access_keys - First observed
account_delete_account - First observed
account_export_account - First observed
account_list_access_keys - First observed
account_sign_data - First observed
account_verify_signature - First observed
account_view_account_summary - First observed
contract_call_raw_function - First observed
contract_call_raw_function_as_read_only - First observed
contract_get_function_args - First observed
contract_view_functions - First observed
ref_finance_execute_swap - First observed
ref_finance_get_pools - First observed
ref_finance_get_swap_estimate - First observed
search_near_fungible_tokens - First observed
system_import_account - First observed
system_list_local_keypairs - First observed
system_remove_local_account - First observed
tokens_send_ft - First observed
tokens_send_near
TDQS
Each tool belongs to a distinct category (account, contract, ref_finance, system, tokens, search) with clear action verbs. No two tools have overlapping purposes, making it easy for an agent to select the correct one.
All tools consistently use snake_case with a domain prefix (account_, contract_, etc.) followed by a verb_noun pattern. Even the longer names like contract_call_raw_function_as_read_only adhere to this pattern.
23 tools cover account management, contract interaction, Ref Finance, token transfers, and system keystore operations. While slightly on the higher end, each tool serves a distinct purpose and the count is appropriate for the breadth of functionality.
The tool surface covers the most common NEAR operations: account lifecycle, key management, contract calling, token transfers, and Ref Finance. Minor gaps like contract deployment or staking are absent but do not hinder basic workflows.
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
MEOK ABCI Bridge MCP — read-only Tendermint / Cosmos blockchain query for agents. Built-in registry
Hosted MCP server for live Bittensor chain reads and self-custodial on-chain writes.
Multi-chain wallet MCP. 18 tools: balance, swap, bridge, stake, claim. Pay-per-call USDC (x402 v2).
Ethereum MCP: Chainlink feeds, gas, ERC-20, ENS, ABI, contract calls, ERC-8004, EAS.
Related MCP Servers
- AlicenseBqualityDmaintenanceFacilitates interaction with Starknet blockchain via MCP by exposing various RPC methods, allowing users to query chain states, transaction details, and block information using natural language queries.1169MIT
- AlicenseNot gradedqualityCmaintenanceEnables cross-chain transactions (swap, send, balance) on 10 blockchains from a single NEAR account, designed for AI agents and humans via MCP.6Apache 2.0
- AlicenseAqualityDmaintenanceThe NEAR MCP Server enables AI agents to interact with the NEAR Protocol blockchain, providing smart contract interaction, transaction handling, and event listening with AI-driven processing.3151ISC
- AlicenseNot gradedqualityDmaintenanceEnables interaction with the Casper Network blockchain via MCP, providing tools for wallet creation, CSPR transfers, staking/delegation, and account queries.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/nearai/near-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server