{"id":30719771,"url":"https://github.com/fireblocks/fireblocks-mcp","last_synced_at":"2025-09-03T10:42:00.967Z","repository":{"id":310469806,"uuid":"1010530779","full_name":"fireblocks/fireblocks-mcp","owner":"fireblocks","description":null,"archived":false,"fork":false,"pushed_at":"2025-09-01T15:22:50.000Z","size":387,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-01T16:27:57.431Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fireblocks.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-29T09:15:57.000Z","updated_at":"2025-09-01T15:22:53.000Z","dependencies_parsed_at":"2025-08-18T11:16:16.896Z","dependency_job_id":"186839b3-64a0-4b07-b3b2-27fcc71e3b2c","html_url":"https://github.com/fireblocks/fireblocks-mcp","commit_stats":null,"previous_names":["fireblocks/fireblocks-mcp"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/fireblocks/fireblocks-mcp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fireblocks%2Ffireblocks-mcp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fireblocks%2Ffireblocks-mcp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fireblocks%2Ffireblocks-mcp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fireblocks%2Ffireblocks-mcp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fireblocks","download_url":"https://codeload.github.com/fireblocks/fireblocks-mcp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fireblocks%2Ffireblocks-mcp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273431361,"owners_count":25104491,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-03T02:00:09.631Z","response_time":76,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-09-03T10:41:59.999Z","updated_at":"2025-09-03T10:42:00.952Z","avatar_url":"https://github.com/fireblocks.png","language":"TypeScript","funding_links":[],"categories":["Agent Wallets and On-chain Actions"],"sub_categories":[],"readme":"# Fireblocks MCP Server\n\n[![CI](https://github.com/fireblocks/fireblocks-mcp/actions/workflows/release.yml/badge.svg)](https://github.com/fireblocks/fireblocks-mcp/actions/workflows/release.yml)\n[![NPM Version](https://badge.fury.io/js/%40fireblocks%2Fmcp-server.svg)](https://badge.fury.io/js/%40fireblocks%2Fmcp-server)\n\nA Model Context Protocol (MCP) server implementation for the Fireblocks API, enabling AI assistants to interact with Fireblocks services through a standardized protocol.\n\n## Overview\n\nThis MCP server provides secure access to Fireblocks functionality, allowing AI assistants to:\n\n- Query and create transactions\n- Retrieve and manage vault accounts and assets\n- Access exchange account information\n- Query network connections and policies\n- Query blockchain information and whitelisted IP addresses\n- Query external and internal wallets\n- Query and filter workspace users\n\n## Prerequisites\nNode.js (v18 or higher) - [Download here](https://nodejs.org/)\n\n## Installation\n\n### Step 1: Create an API key\n\nTo get started, you'll need a **Fireblocks API Key** and its corresponding **secret key file**.\n\n1. Follow the [Fireblocks guide on creating an API key](https://support.fireblocks.io/hc/en-us/articles/4407823826194-Adding-new-API-Users).\n\n🔒 *Security Note: When configuring an API user for the MCP server, it is critical to grant only the minimum permissions required for its specific tasks. For example, for read-only tasks like viewing transaction history, the \"Viewer\" role is the most secure option. For a detailed guide on user roles, please refer to the [best practices for choosing user roles](https://support.fireblocks.io/hc/en-us/articles/5254222799900-Best-practices-for-choosing-user-roles)*.\n\n2. Once created, securely store both the API Key and the secret key file (e.g., `fireblocks-secret.key`). You will need both for the next steps.\n\n### Step 2: Configure your MCP Client\n\n#### For Claude Desktop\n\n1. Open **Claude Desktop**.\n2. Go to **Settings → Developer → Edit Config** to open the `claude_desktop_config.json` file.\n3. Add a new server with this configuration:\n```json\n{\n  \"mcpServers\": {\n    \"fireblocks\": {\n      \"command\": \"npx\",\n      \"args\": [\"@fireblocks/mcp-server\"],\n      \"env\": {\n        \"FIREBLOCKS_API_KEY\": \"your-api-key\",\n        \"FIREBLOCKS_PRIVATE_KEY_PATH\": \"your-fireblocks-api-secret-key-filepath\",\n        \"ENABLE_WRITE_OPERATIONS\": \"false\",\n        \"FIREBLOCKS_API_BASE_URL\": \"https://api.fireblocks.io/v1\"\n      }\n    }\n  }\n}\n```\n\n#### For Cursor\n\n1. Open **Cursor**.\n2. Go to **Settings → Cursor Settings → Tools \u0026 Integrations**.\n3. Select **MCP Tools** and click **Add Custom MCP** to open the `mcp.json` file.\n4. Add a new server with this configuration:\n```json\n{\n  \"mcpServers\": {\n    \"fireblocks\": {\n      \"command\": \"npx\",\n      \"args\": [\"@fireblocks/mcp-server\"],\n      \"env\": {\n        \"FIREBLOCKS_API_KEY\": \"your-api-key\",\n        \"FIREBLOCKS_PRIVATE_KEY_PATH\": \"your-fireblocks-api-secret-key-filepath\",\n        \"ENABLE_WRITE_OPERATIONS\": \"false\",\n        \"FIREBLOCKS_API_BASE_URL\": \"https://api.fireblocks.io/v1\"\n      }\n    }\n  }\n}\n```\n\n### Step 3: Customize MCP Server Settings (Optional)\n* To enable write operations, set the `ENABLE_WRITE_OPERATIONS` environment variable to `true`. Be sure to read the **[Security Considerations](#security-considerations)** section before doing so.\n* If you need to use a **non-default Fireblocks environment** (e.g., Non-US, Sandbox), set `FIREBLOCKS_API_BASE_URL` to the base URL of the specific environment's API.\n\n## Available Tools\n\nThe Fireblocks MCP server provides the following tools:\n\n### Transaction Management\n\n#### `get_transactions`\n\nRetrieve Fireblocks transactions with comprehensive filtering options.\n\n**Parameters:**\n\n- `before` (optional): Unix timestamp in milliseconds - get transactions before this date\n- `after` (optional): Unix timestamp in milliseconds - get transactions after this date\n- `status` (optional): Filter by transaction status\n- `orderBy` (optional): Order by 'createdAt' or 'lastUpdated'\n- `sort` (optional): Sort direction ('ASC' or 'DESC')\n- `limit` (optional): Number of results (1-200, default: 50)\n- `sourceType` (optional): Source type (VAULT_ACCOUNT, EXCHANGE_ACCOUNT, INTERNAL_WALLET, EXTERNAL_WALLET, CONTRACT, FIAT_ACCOUNT, NETWORK_CONNECTION, COMPOUND, UNKNOWN, GAS_STATION, END_USER_WALLET)\n- `sourceId` (optional): Source ID\n- `destType` (optional): Destination type (VAULT_ACCOUNT, EXCHANGE_ACCOUNT, INTERNAL_WALLET, EXTERNAL_WALLET, CONTRACT, FIAT_ACCOUNT, NETWORK_CONNECTION, COMPOUND, ONE_TIME_ADDRESS, END_USER_WALLET)\n- `destId` (optional): Destination ID\n- `assets` (optional): Comma-separated list of asset IDs\n- `txHash` (optional): Filter by transaction hash\n- `sourceWalletId` (optional): Filter by source wallet ID\n- `destWalletId` (optional): Filter by destination wallet ID\n\n#### `create_transaction`\n\nCreate a new transaction in Fireblocks.\n\n### Vault Management\n\n#### `get_vault_accounts`\n\nRetrieve vault accounts with filtering and pagination.\n\n**Parameters:**\n\n- `namePrefix` (optional): Filter by account name prefix\n- `nameSuffix` (optional): Filter by account name suffix\n- `minAmountThreshold` (optional): Filter accounts with balance above threshold\n- `assetId` (optional): Filter by asset ID\n- `orderBy` (optional): Sort direction ('ASC' or 'DESC')\n- `before` (optional): Pagination cursor for previous results\n- `after` (optional): Pagination cursor for next results\n- `limit` (optional): Number of results (1-200, default: 50)\n\n#### `get_vault_account_by_id`\n\nGet details of a specific vault account by ID.\n\n**Parameters:**\n\n- `vaultAccountId` (required): The ID of the vault account to retrieve\n\n#### `get_vault_account_asset`\n\nGet asset information for a specific vault account.\n\n**Parameters:**\n\n- `vaultAccountId` (required): The ID of the vault account\n- `assetId` (required): The ID of the asset\n\n#### `get_vault_assets`\n\nGet asset balance for chosen assets with optional filtering.\n\n**Parameters:**\n\n- `accountNamePrefix` (optional): Filter vault accounts by name prefix\n- `accountNameSuffix` (optional): Filter vault accounts by name suffix\n\n#### `get_vault_balance_by_asset`\n\nGet vault balance information for a specific asset.\n\n**Parameters:**\n\n- `assetId` (required): The ID of the asset\n\n### Exchange Management\n\n#### `get_exchange_accounts`\n\nRetrieve exchange accounts with pagination.\n\n**Parameters:**\n\n- `limit` (optional): Number of results per page (1-5, default: 3)\n- `before` (optional): Pagination cursor for previous results\n- `after` (optional): Pagination cursor for next results\n\n### Network\n\n#### `get_network_connections`\n\nRetrieve network connection information.\n\n### Blockchain Information\n\n#### `get_blockchains`\n\nRetrieve information about supported blockchains.\n\n#### `get_blockchain_asset`\n\nGet asset information for a specific blockchain.\n\n**Parameters:**\n\n- `id` (required): The ID or legacyId of the blockchain asset\n\n#### `get_assets`\n\nGet assets supported by Fireblocks with comprehensive filtering options.\n\n**Parameters:**\n\n- `blockchainId` (optional): Blockchain ID of the assets\n- `assetClass` (optional): Assets class (NATIVE, FT, FIAT, NFT, SFT)\n- `symbol` (optional): Assets onchain symbol\n- `scope` (optional): Scope of the assets (GLOBAL, LOCAL)\n- `deprecated` (optional): Are assets deprecated (boolean)\n- `ids` (optional): A list of asset IDs (max 100)\n- `pageCursor` (optional): Next page cursor to fetch\n- `pageSize` (optional): Items per page (100-1000, default: 500)\n\n### Wallet Management\n\n#### `get_external_wallets`\n\nRetrieve external wallets under the workspace.\n\n#### `get_internal_wallets`\n\nRetrieve internal wallets under the workspace.\n\n### Security \u0026 Governance\n\n#### `get_active_policy`\n\nGet the currently active policy configuration.\n\n#### `get_whitelist_ip_addresses`\n\nRetrieve whitelisted IP addresses.\n\n### User Management\n\n#### `get_users`\n\nList all users for the workspace with optional filtering (requires Admin permissions).\n\n**Parameters:**\n\n- `id` (optional): Filter users by specific user ID\n- `email` (optional): Filter users by specific email address (case-insensitive)\n- `query` (optional): Search users by name or email (case-insensitive partial matching)\n\n\n## Prompt Examples\n\nHere are some example prompts you can use with the Fireblocks MCP server:\n\n```\nShow me all my vault accounts and their balances\n```\n\n```\nGet the last 10 transactions from today\n```\n\n```\nWhat is my total Bitcoin balance across all accounts?\n```\n\n```\nTop up my Bitstamp account to have 1000 USDC or USDT\n```\n\n```\nWhy did the policy block my last transaction?\n```\n\n**Note:** Transaction creation and top-up examples require `ENABLE_WRITE_OPERATIONS=true` and appropriate permissions.\n\n## Security Considerations\n\nThe use of an AI assistant to interact with your Fireblocks workspace presents inherent risks. Since AI models may produce unintended results, it is imperative to implement a robust security strategy to safeguard your assets. The following practices are highly recommended:\n\n\n### Default Safe Configuration\n\n⚠️ **Security Warning**: Write operations, such as creating transactions and modifying data in your Fireblocks workspace, are enabled by an AI assistant. For enhanced security, these operations (e.g., `create_transaction`) are disabled by default. They can be enabled by explicitly setting the `ENABLE_WRITE_OPERATIONS` environment variable to `true`. This should only be done in trusted environments with appropriate access controls.\n\n### Principle of Least Privilege\n\nWhen configuring an API user for the MCP server, it is essential to grant only the minimum permissions necessary for its intended function. For read-only tasks, a \"Viewer\" role, which is restricted to viewing transaction history, is the most secure option.\n\nFor a detailed guide on user roles, please refer to the [the best practices for choosing user roles](https://support.fireblocks.io/hc/en-us/articles/5254222799900-Best-practices-for-choosing-user-roles).\n\nInstructions for creating a new API user can be found in the [Fireblocks guide on creating an API key](https://support.fireblocks.io/hc/en-us/articles/4407823826194-Adding-new-API-Users).\n\n### Human in the Loop\n\nWe strongly advise utilizing the Fireblocks Policy Engine to ensure human oversight in the transaction approval process. A policy can be configured to require a manual designated signer to approve any transaction initiated by the AI assistant. More information can be found [here](https://support.fireblocks.io/hc/en-us/articles/7365877039004-Rule-parameters).\n\n### Secure API Credentials\n\nYour Fireblocks API Key and Private Key are highly sensitive credentials. Adherence to these best practices is mandatory:\n\n- API credentials must never be shared publicly.\n- The private key should be stored securely, preferably as a file with restricted access, as specified in the Configuration section.\n\n\n## How to develop in the repo\n\n### Getting Started\n\nFollow these steps to set up the project for local development:\n\n1. Clone the repository\n\n```bash\ngit clone https://github.com/fireblocks/fireblocks-mcp.git\ncd fireblocks-mcp\n```\n\n2. Install dependencies\n\n```bash\nnpm install\n```\n\n3. Build the project:\n\n```bash\nnpm run build\n```\n\n### Available Scripts\n\n- `npm run dev` - Start development server with auto-reload\n- `npm run build` - Build the project\n- `npm run test` - Run tests\n- `npm run test:watch` - Run tests in watch mode\n- `npm run lint` - Run ESLint\n- `npm run format` - Format code with Prettier\n- `npm run inspector` - Run with MCP Inspector for debugging\n\n### Testing\n\nRun the test suite:\n\n```bash\n# Run all tests\nnpm test\n\n# Run tests in watch mode\nnpm run test:watch\n```\n\n## Contributing\n\nFor more detailed contribution guidelines, see [CONTRIBUTING.md](CONTRIBUTING.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffireblocks%2Ffireblocks-mcp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffireblocks%2Ffireblocks-mcp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffireblocks%2Ffireblocks-mcp/lists"}