safe mcp server
An MCP server that enables interaction with Safe (formerly Gnosis Safe) smart contract wallets, allowing users to query transactions, get multisig details, and decode transaction data through natural language.
An MCP server that enables interaction with Safe (formerly Gnosis Safe) smart contract wallets, allowing users to query transactions, get multisig details, and decode transaction data through natural language.
An MCP (Model Context Protocol) server implementation for interacting with Safe (formerly Gnosis Safe) smart contract wallets.
npm install
npm run build
npm start
No configuration is required - the server uses the Safe Transaction API mainnet endpoint by default.
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
});
Get details of a specific multisig transaction.
getMultisigTransaction({
safeTxHash: "0x456...", // Transaction hash to query
});
Decode transaction data using Safe API.
decodeTransactionData({
data: "0x789...", // Transaction data to decode
to: "0xabc...", // Optional contract address
});
By default, the server uses the Safe Transaction API mainnet endpoint:
https://safe-transaction-mainnet.safe.global/api/v1
If 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 start
npm run dev
MIT
[
{
"description": "Get all transactions for a Safe address",
"inputSchema": {
"properties": {
"address": {
"description": "Safe address",
"type": "string"
},
"limit": {
"description": "Number of transactions to return",
"type": "number"
},
"offset": {
"description": "Offset for pagination",
"type": "number"
}
},
"required": [
"address"
],
"type": "object"
},
"name": "getSafeTransactions"
},
{
"description": "Get details of a specific multisig transaction",
"inputSchema": {
"properties": {
"safeTxHash": {
"description": "Safe transaction hash",
"type": "string"
}
},
"required": [
"safeTxHash"
],
"type": "object"
},
"name": "getMultisigTransaction"
},
{
"description": "Decode transaction data using Safe API",
"inputSchema": {
"properties": {
"data": {
"description": "Transaction data in hex format",
"type": "string"
},
"to": {
"description": "Optional contract address",
"type": "string"
}
},
"required": [
"data"
],
"type": "object"
},
"name": "decodeTransactionData"
}
]