Safe MCP Server
安全 MCP 服务器
用于与 Safe(以前称为 Gnosis Safe)智能合约钱包交互的 MCP(模型上下文协议)服务器实现。
特征
查询任意 Safe 地址的 Safe 交易
获取多重签名交易详情
解码交易数据
安全的 API 集成
Related MCP server: Hermes Blockchain Oracle
安装
npm install用法
npm run build
npm start无需配置 - 服务器默认使用安全交易 API 主网端点。
可用工具
获取安全交易
获取任意 Safe 地址的所有交易。Safe 地址由 LLM 在运行时根据对话上下文确定。
// Example tool call
getSafeTransactions({
address: "0x123...", // Safe address determined by LLM
limit: 100, // optional
offset: 0, // optional
});获取多重签名交易
获取特定多重签名交易的详细信息。
getMultisigTransaction({
safeTxHash: "0x456...", // Transaction hash to query
});解码交易数据
使用安全 API 解码交易数据。
decodeTransactionData({
data: "0x789...", // Transaction data to decode
to: "0xabc...", // Optional contract address
});配置(可选)
默认情况下,服务器使用安全交易 API 主网端点:
https://safe-transaction-mainnet.safe.global/api/v1如果您需要使用不同的端点(例如,对于测试网),您可以通过环境变量进行设置:
SAFE_API_URL=https://safe-transaction-goerli.safe.global/api/v1 npm start发展
npm run dev执照
麻省理工学院
Available Tools
3 toolsdecodeTransactionDataC
Decode transaction data using Safe API
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Transaction data in hex format | |
| to | No | Optional contract address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('decode') but doesn't describe what the tool returns, error conditions, rate limits, or authentication needs. This is a significant gap for a tool that likely processes sensitive transaction data.
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, efficient sentence with zero waste. It's appropriately sized for a simple tool and front-loads the core purpose without unnecessary elaboration.
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 annotations and no output schema, the description is incomplete. It doesn't explain what the decoded output looks like, potential errors, or how it integrates with the Safe API context. For a data processing tool, this leaves critical 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 100%, so the schema already documents both parameters ('data' as hex format, 'to' as optional contract address). The description adds no additional parameter semantics beyond what the schema provides, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('decode') and resource ('transaction data'), and specifies the method ('using Safe API'), which provides a specific technical context. However, it doesn't explicitly differentiate from sibling tools like 'getMultisigTransaction' or 'getSafeTransactions', which appear to retrieve rather than decode data.
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. It doesn't mention prerequisites, typical use cases, or how it differs from sibling tools like 'getMultisigTransaction' or 'getSafeTransactions', leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getMultisigTransactionC
Get details of a specific multisig transaction
| Name | Required | Description | Default |
|---|---|---|---|
| safeTxHash | Yes | Safe transaction hash |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. While 'Get details' implies a read-only operation, it doesn't explicitly confirm this or describe what details are returned, error conditions, or any rate limits. For a tool with zero annotation coverage, this leaves significant behavioral gaps.
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, efficient sentence that directly states the tool's purpose with zero wasted words. It's appropriately sized for a simple lookup tool and front-loads the essential 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?
Given the lack of annotations and output schema, the description is incomplete for a tool that retrieves transaction details. It doesn't explain what details are returned, potential error cases, or how this differs from sibling tools. For a tool with no structured behavioral or output information, the description should provide more context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the single parameter 'safeTxHash' clearly documented in the schema. The description doesn't add any meaning beyond what the schema provides (e.g., it doesn't explain hash format or where to obtain it). With high schema coverage, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get details') and target resource ('specific multisig transaction'), making the purpose immediately understandable. However, it doesn't differentiate this tool from its sibling 'getSafeTransactions' (which likely retrieves multiple transactions), missing the opportunity to clarify this is for retrieving a single transaction by hash.
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. It doesn't mention the sibling tools 'decodeTransactionData' or 'getSafeTransactions', nor does it specify prerequisites like needing a transaction hash. The agent must infer usage context from the tool name and parameter alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getSafeTransactionsC
Get all transactions for a Safe address
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Safe address | |
| limit | No | Number of transactions to return | |
| offset | No | Offset for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states it 'Get all transactions' but doesn't clarify aspects like whether this is a read-only operation, potential rate limits, authentication needs, or what 'all' entails (e.g., historical vs. recent). This leaves significant gaps in understanding the tool's behavior beyond basic functionality.
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 wasted words, making it easy to parse and front-loaded with the core action. It efficiently communicates the basic purpose without unnecessary elaboration.
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 no annotations, no output schema, and 3 parameters, the description is incomplete. It doesn't address behavioral traits, return values, or usage context, leaving the agent with insufficient information to fully understand how to invoke and interpret results from this 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?
Schema description coverage is 100%, so the input schema already documents parameters like 'address', 'limit', and 'offset' with their types and descriptions. The description adds no additional meaning beyond implying retrieval for a Safe address, which aligns with the schema but doesn't provide extra context such as format examples or constraints.
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 ('all transactions for a Safe address'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'getMultisigTransaction' which might also retrieve transactions, leaving room for confusion about scope or type differences.
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 'getMultisigTransaction' or 'decodeTransactionData'. The description lacks context about prerequisites, exclusions, or specific use cases, leaving the agent to infer usage based on tool names alone.
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.
3 tool updates
v1.0.0- First observed
decodeTransactionData - First observed
getMultisigTransaction - First observed
getSafeTransactions
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: decodeTransactionData handles data decoding, getMultisigTransaction retrieves a specific transaction, and getSafeTransactions lists all transactions for a Safe. There is no overlap in functionality, making tool selection straightforward.
The naming follows a consistent verb_noun pattern with camelCase (e.g., decodeTransactionData, getMultisigTransaction). However, the verb 'get' is used for two tools while 'decode' is used for one, which is a minor deviation from perfect uniformity.
With only 3 tools, the set feels thin for a Safe MCP server, as it lacks operations like creating or executing transactions, which are core to multisig workflows. The count is borderline for the apparent scope of Safe management.
The tool surface is significantly incomplete for Safe management, missing essential CRUD operations such as creating, proposing, or executing transactions. This will likely cause agent failures when trying to perform full lifecycle actions on Safes.
Maintenance
Related MCP Connectors
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
MCP server for Gainium — manage trading bots, deals, and balances via AI assistants
Self-hosted MCP server: 26 deterministic dev, security, and EVM tools.
The OpenZeppelin Solidity Contracts MCP server integrates OpenZeppelin's security and style rules into AI-driven development workflows, enabling AI assistants to generate safe, correct, and production-ready smart contracts. It automatically validates generated code against OpenZeppelin standards (including imports, modifiers, naming conventions, and security checks) and supports various contract types including ERC-20, ERC-721, ERC-1155, Stablecoins, RWA, Governor, and Account contracts through prompt-driven workflows.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceAn MCP server that connects Claude for Desktop with blockchain functionality, allowing users to check balances and send tokens on EVM and Solana chains through natural language interactions.-
- AlicenseNot gradedqualityDmaintenanceAn MCP server that connects Hermes Agent to the Solana blockchain, enabling natural language queries for wallets, tokens, NFTs, transactions, whale movements, and network health.6MIT
- FlicenseNot gradedqualityBmaintenanceThis MCP server provides authentication via wallet sign-in (SIWE) and authorization with scoped access to read and trade portfolios, enabling secure portfolio management through natural language.-
- AlicenseNot gradedqualityAmaintenanceMCP server that lets any AI agent operate a wallet directly on-chain: create wallets, send, swap, bridge, and deploy contracts across EVM and Bitcoin networks.1MIT