Safe MCP Server
Provides tools for interacting with Safe (formerly Gnosis Safe) smart contract wallets, enabling querying of wallet transactions, fetching multisig transaction details, and decoding transaction data through the Safe Transaction API.
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., "@Safe MCP Servershow me recent transactions for my safe wallet"
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.
Safe MCP Server
An MCP (Model Context Protocol) server implementation for interacting with Safe (formerly Gnosis Safe) smart contract wallets.
Features
Query Safe transactions for any Safe address
Get multisig transaction details
Decode transaction data
Safe API integration
Related MCP server: Hermes Blockchain Oracle
Installation
npm installUsage
npm run build
npm startNo configuration is required - the server uses the Safe Transaction API mainnet endpoint by default.
Available Tools
getSafeTransactions
Get all transactions for any Safe address. The Safe address is determined by the LLM at runtime based on the context of the conversation.
// Example tool call
getSafeTransactions({
address: "0x123...", // Safe address determined by LLM
limit: 100, // optional
offset: 0, // optional
});getMultisigTransaction
Get details of a specific multisig transaction.
getMultisigTransaction({
safeTxHash: "0x456...", // Transaction hash to query
});decodeTransactionData
Decode transaction data using Safe API.
decodeTransactionData({
data: "0x789...", // Transaction data to decode
to: "0xabc...", // Optional contract address
});Configuration (Optional)
By default, the server uses the Safe Transaction API mainnet endpoint:
https://safe-transaction-mainnet.safe.global/api/v1If you need to use a different endpoint (e.g., for testnet), you can set it via environment variable:
SAFE_API_URL=https://safe-transaction-goerli.safe.global/api/v1 npm startDevelopment
npm run devLicense
MIT
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.
TDQS
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
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
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
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.
MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceAn 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.2MIT
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/5ajaki/safe-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server