Skip to main content
Glama

0G MCP Server πŸš€

License: MIT TypeScript 0G Network

A Model Context Protocol (MCP) server for seamless AI agent integration with the 0G blockchain network. This server enables AI assistants to query blockchain data, check balances, retrieve transactions, and perform blockchain operations through natural language.

🌟 Tested and Production Ready - Successfully connects to live 0G testnet with real-time data

✨ Features

  • πŸ” Balance Queries - Check wallet balances on 0G mainnet/testnet

  • πŸ“Š Transaction Lookup - Get detailed transaction information by hash

  • 🧱 Block Information - Retrieve block details by number or hash

  • πŸ“ˆ Network Statistics - Live gas prices and network metrics

  • β›½ Gas Estimation - Calculate transaction costs

  • 🌐 Multi-network Support - Seamless mainnet/testnet switching

  • πŸ€– AI-First Design - Built specifically for AI agent interactions

Related MCP server: wallet-inspector-mcp

πŸš€ Quick Start

Prerequisites

  • Node.js 18+

  • npm or yarn

  • An MCP-compatible client (Claude Desktop, etc.)

1. Installation

# Clone the repository
git clone https://github.com/yourusername/0g-mcp-server.git
cd 0g-mcp-server

# Install dependencies
npm install

# Build the project
npm run build

2. Test the Server

# Run the test suite
node test-server.js

# Expected output:
# βœ… Server initialization successful
# βœ… All 5 blockchain tools registered
# βœ… Live connection to 0G testnet confirmed

3. Configure Your MCP Client

For Claude Desktop:

  1. Open your Claude Desktop configuration file:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

    • Windows: %APPDATA%/Claude/claude_desktop_config.json

  2. Add the 0G MCP server:

{
  "mcpServers": {
    "0g-blockchain": {
      "command": "node",
      "args": ["/full/path/to/0g-mcp-server/dist/index.js"]
    }
  }
}
  1. Restart Claude Desktop

For Other MCP Clients:

Refer to your client's documentation for MCP server configuration.

4. Start Using!

Once configured, you can interact with the 0G blockchain through natural language:

"Check the balance of address 0x1234... on 0G testnet"
"Get details for transaction 0xabcd... on 0G mainnet"
"What's the current gas price on 0G network?"
"Show me block 4259504 information"

πŸ› οΈ Available Tools

Tool

Description

Required Parameters

Optional Parameters

get_balance

Get wallet balance

address

network (mainnet/testnet)

get_transaction

Transaction details by hash

txHash

network

get_block

Block information

blockIdentifier

network

get_network_info

Network statistics

-

network

estimate_gas

Gas cost estimation

to

value, data, network

πŸ’‘ Usage Examples

Development Mode

npm run dev

Production Mode

npm start

Manual Testing

# Test specific functionality
node test-server.js

# Check server health
curl -X POST http://localhost:3000/health

🌐 Network Configuration

Network

RPC Endpoint

Chain ID

Explorer

Mainnet

https://evmrpc-mainnet.0g.ai

TBD

chainscan.0g.ai

Testnet

https://evmrpc-testnet.0g.ai

TBD

chainscan.0g.ai

πŸ”§ Advanced Configuration

Environment Variables

Create a .env file for custom configuration:

# Custom RPC endpoints (optional)
ZG_MAINNET_RPC=https://your-custom-mainnet-rpc.com
ZG_TESTNET_RPC=https://your-custom-testnet-rpc.com

# Default network
DEFAULT_NETWORK=testnet

# Request timeout (ms)
REQUEST_TIMEOUT=30000

Custom Client Integration

import { ZGMCPServer } from './src/index.js';

const server = new ZGMCPServer({
  defaultNetwork: 'mainnet',
  customRpcEndpoints: {
    mainnet: 'https://your-rpc.com',
    testnet: 'https://your-testnet-rpc.com'
  }
});

await server.run();

πŸ§ͺ Testing

The server includes comprehensive testing:

# Run all tests
npm test

# Test specific functionality
node test-server.js

# Test with live network
npm run test:live

Test Coverage:

  • βœ… MCP protocol compliance

  • βœ… All blockchain tools

  • βœ… Network connectivity

  • βœ… Error handling

  • βœ… Live data retrieval

🀝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development Setup

# Fork and clone the repo
git clone https://github.com/yourusername/0g-mcp-server.git

# Install dependencies
npm install

# Start development server
npm run dev

# Run tests
npm test

πŸ“š About 0G Network

0G is a modular AI-first blockchain that revolutionizes decentralized AI:

  • 🧠 AI-Optimized Storage - Ultra-low cost data storage for AI models

  • ⚑ High-Performance Execution - Scalable compute for AI workloads

  • πŸ”’ Trustless AI Inference - Cryptographically verifiable AI operations

  • πŸ—οΈ Modular Architecture - Pick only the components you need

Learn More:

πŸ“„ License

MIT License - see LICENSE file for details.

πŸ†˜ Support


Available Tools

5 tools
estimate_gasB

Estimate gas for a transaction on 0G network

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesRecipient address
dataNoTransaction data (optional)
valueNoValue to send in wei
networkNoNetwork to query (default: testnet)testnet

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must convey behavioral traits. It states the tool 'estimates' gas, which strongly implies it does not broadcast the transaction, but it does not explicitly confirm the read-only nature or mention that the estimate is not an execution. The description also omits potential side effects, error conditions, or how the network parameter influences the estimate, leaving key safety aspects undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that directly states the purpose without any filler or repetition. Every word contributes to the meaning, and it is appropriately sized for a tool with a self-explanatory name and well-documented schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description should indicate what the estimate returns (e.g., gas limit or gas price) and how parameters affect the result. It provides none of this, leaving the agent to guess the return format, range, or potential errors. Given the tool's complexity (four parameters, estimation logic), the description is insufficient for reliable invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Since the schema provides descriptions for all four parameters (to, data, value, network), the baseline is 3. The description adds no extra meaning beyond the schema, such as clarifying that value is in wei or that network defaults to testnet. The tool description does not need to repeat schema details, but it also offers no additional parameter context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool's function with a specific verb ('Estimate') and resource ('gas for a transaction'), distinguishing it from sibling tools like get_balance and get_transaction. The phrase 'on 0G network' adds necessary context, though it is somewhat redundant given the tool name. Overall, it is immediately obvious what this tool does and how it differs from its siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when preparing or analyzing a transaction, but it does not explicitly state when to use this tool versus alternatives, nor does it mention prerequisites such as valid recipient address or network selection. There is no guidance on exclusions or complementary tools, so the agent must infer the intended context from the name and schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_balanceA

Get the balance of an address on 0G network

ParametersJSON Schema
NameRequiredDescriptionDefault
addressYesThe wallet address to check balance for
networkNoNetwork to query (default: testnet)testnet

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of behavioral disclosure. It clarifies the tool performs a read operation ('Get'), but does not mention any potential side effects, network-specific behavior, or error handling. The schema covers the network default, so the description adds minimal transparency beyond the obvious.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that gets straight to the point. Every word earns its place, and it is front-loaded with the verb and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple balance lookup, the description covers the core function. The schema handles parameter semantics, and no output schema exists to elaborate on return values. Given the tool's low complexity, the description is sufficiently complete, though it could have mentioned the network default explicitly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both parameters ('address' and 'network') already described in the schema. The description adds no parameter details, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and resource ('balance of an address'), and adds the network context ('on 0G network'). This clearly distinguishes the tool from its siblings (get_transaction, get_block, get_network_info, estimate_gas).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is used to check an address balance, but it does not explicitly state when to use it versus alternatives or mention any prerequisites. There is no 'use this for X, not Y' guidance, so usage is merely implied from the clear purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_blockB

Get block information by number or hash

ParametersJSON Schema
NameRequiredDescriptionDefault
networkNoNetwork to query (default: testnet)testnet
blockIdentifierYesBlock number or hash

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It implies a read-only operation via 'Get' but does not disclose network default behavior, error handling for invalid identifiers, or whether the returned information includes transactions. The description adds minimal behavioral context beyond the basic operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no unnecessary words. It is concise and front-loads the core purpose effectively.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with two parameters, the description is minimally adequate. It tells the user what the tool does and how to specify a block, but without an output schema, it does not describe the returned block information structure or fields. It also does not mention the network parameter even though it exists in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond the schema; it simply repeats 'number or hash' already present in the blockIdentifier description. The network parameter is only documented in the schema, and the description does not clarify usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'block information', and specifies the identifier types (number or hash), which distinguishes it from sibling tools that handle balances, transactions, or network info. However, it does not explicitly differentiate from alternatives or elaborate on what information is returned.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 siblings like get_transaction or get_network_info. There are no exclusions, prerequisites, or context about suitable use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_network_infoB

Get 0G network information and statistics

ParametersJSON Schema
NameRequiredDescriptionDefault
networkNoNetwork to query (default: testnet)testnet

TDQS

B3.1/5.0
Behavior2/5

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 implies a read-only operation through 'Get' but does not disclose return format, output contents, or any limitations. Minimal behavioral detail is provided.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, succinct sentence with no verbosity or redundancy. It is front-loaded with the action and resource, maximizing clarity and efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with full schema coverage, the description is adequate but leaves gaps: no output schema exists, and the description does not specify what 'statistics' are included. It is minimally complete but could benefit from clarifying the expected return data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully documents the single optional 'network' parameter with enum values, a default, and a description, achieving 100% schema description coverage. The tool description adds no further parameter context, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb and resource: 'Get 0G network information and statistics.' It distinguishes itself from siblings which focus on balances, transactions, blocks, or gas. However, the nature of 'statistics' remains somewhat vague.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. It mentions no prerequisites, exclusions, or conditions under which sibling tools would be preferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_transactionA

Get transaction details by hash on 0G network

ParametersJSON Schema
NameRequiredDescriptionDefault
txHashYesTransaction hash to lookup
networkNoNetwork to query (default: testnet)testnet

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only states 'Get transaction details' which implies a read-only operation, but it does not mention what happens if the hash is invalid, whether authentication is needed, rate limits, or any side effects. This is a significant gap given no annotation support.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It efficiently delivers the core purpose and resource without any redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity tool with two parameters and no output schema, the description adequately identifies the operation and target, but it does not elaborate on the return format, error behavior, or network semantics beyond what the schema already lists. It is minimally complete but lacks additional context that would help an agent anticipate outcomes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both parameters (txHash and network) already well-described in the schema. The tool description adds no additional parameter semantics beyond what the schema provides, 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Get' with the resource 'transaction details' and clearly scopes to 'by hash on 0G network'. This clearly differentiates it from sibling tools like get_balance, get_block, and get_network_info, which target different data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when a transaction hash is available, but it does not explicitly state when to use this tool versus alternatives like get_block or get_balance. No exclusions or alternative tool references are provided, though the context is fairly clear.

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.

  1. 5 tool updatesv1.0.0
    • First observedestimate_gas
    • First observedget_balance
    • First observedget_block
    • First observedget_network_info
    • First observedget_transaction

TDQS

A3.7/5.0
Disambiguation5/5

Each tool targets a distinct aspect of the 0G network: balance, transaction, block, network info, and gas estimation. There is no overlap, making it straightforward for an agent to select the right tool.

Naming Consistency5/5

All tool names follow a clear verb_noun pattern in snake_case: get_balance, get_transaction, get_block, get_network_info, and estimate_gas. The slight deviation of estimate_ instead of get_ is semantically appropriate and does not break consistency.

Tool Count5/5

With 5 tools, the server is well-scoped for a read-only network query interface. Each tool earns its place, and the count is neither too sparse nor overwhelming.

Completeness4/5

The set covers essential read operations for a blockchain-like network. However, the presence of estimate_gas implies transaction preparation, yet there is no send_transaction tool, which is a notable gap for a complete workflow.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

Latest Blog Posts

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/opencolin/0g-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server