OneSource MCP MCP server
46 tools for blockchain data, Deepstate market data, live chain queries, and REST API documentation.
verified publishersource repositorytool list publishedupdated recentlyactive entry
Local VERIFIED Finance and Market Data
Details
- Registry name
- io.onesource/mcp
- Publisher
- onesource
- Version
- 5.12.0
- Distribution
- Local. the server runs as a process on your own machine and talks to the client over stdio. You install the package first, and your data stays on your machine.
- Transports
- stdio
- Source repository
- blockparty-global/1s-mcp
- Website
- https://mcp.onesource.io
- First published
- Registry updated
- Credentials required
- 2 environment variables
- Schema generation
- 2025-12-11
Packages
npm @one-source/mcp
- Version
- 5.12.0
- Transport
- stdio
- Runtime
- not specified
| Variable | Required | Secret | Purpose |
|---|---|---|---|
| X402_PRIVATE_KEY | Yes | Yes | EVM private key (64-char hex, 0x prefix optional) for automatic x402 USDC payments on Base |
| ONESOURCE_API_KEY | Yes | Yes | OneSource API key for Bearer token auth |
Install OneSource MCP
Pick your client. The configuration below is generated from this server's published package and endpoint data.
Claude Code command line
Configuration file: .mcp.json or ~/.claude.json
claude mcp add mcp-onesource --env X402_PRIVATE_KEY=<x402_private_key> --env ONESOURCE_API_KEY=<onesource_api_key> -- npx -y @one-source/mcpReplace each placeholder with your own value before saving.
Check it worked: Run claude mcp list and check the server reports connected.
Cursor IDE
Configuration file: .cursor/mcp.json or ~/.cursor/mcp.json
{
"mcpServers": {
"mcp-onesource": {
"command": "npx",
"args": ["-y", "@one-source/mcp"],
"env": {
"X402_PRIVATE_KEY": "<x402_private_key>",
"ONESOURCE_API_KEY": "<onesource_api_key>"
}
}
}
}Replace each placeholder with your own value before saving.
Check it worked: The server appears under Settings, then MCP with a green dot.
Claude Desktop desktop app
Configuration file: ~/Library/Application Support/Claude/claude_desktop_config.json or %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"mcp-onesource": {
"command": "npx",
"args": ["-y", "@one-source/mcp"],
"env": {
"X402_PRIVATE_KEY": "<x402_private_key>",
"ONESOURCE_API_KEY": "<onesource_api_key>"
}
}
}
}Replace each placeholder with your own value before saving.
Quit the app completely and reopen it.
Check it worked: Look for the tools icon in the message composer.
Visual Studio Code IDE
Configuration file: .vscode/mcp.json or user settings.json under mcp
{
"servers": {
"mcp-onesource": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@one-source/mcp"],
"env": {
"X402_PRIVATE_KEY": "<x402_private_key>",
"ONESOURCE_API_KEY": "<onesource_api_key>"
}
}
}
}Replace each placeholder with your own value before saving.
Check it worked: Open the Copilot chat tools picker and confirm the server is listed.
Codex CLI command line
Configuration file: ~/.codex/config.toml
codex mcp add mcp-onesource -- npx -y @one-source/mcpReplace each placeholder with your own value before saving.
Check it worked: Run codex mcp list and check the server is present.
More clients (9), including automation platforms
ChatGPT web app
This client cannot start a local process, and this server publishes no hosted endpoint.
Cline IDE
Configuration file: cline_mcp_settings.json, reachable from the MCP Servers pane
{
"mcpServers": {
"mcp-onesource": {
"command": "npx",
"args": ["-y", "@one-source/mcp"],
"env": {
"X402_PRIVATE_KEY": "<x402_private_key>",
"ONESOURCE_API_KEY": "<onesource_api_key>"
}
}
}
}Replace each placeholder with your own value before saving.
Check it worked: The server appears in the MCP Servers pane with its tool count.
Goose desktop app
Configuration file: ~/.config/goose/config.yaml
extensions:
mcp-onesource:
type: stdio
cmd: npx
args: ["-y", "@one-source/mcp"]
enabled: trueReplace each placeholder with your own value before saving.
Check it worked: Run goose session and confirm the extension loads.
LangChain agent framework
Install the MCP adapter package and construct a client in code
client = MultiServerMCPClient({
"mcp-onesource": {
"command": "npx",
"args": ["-y", "@one-source/mcp"],
"transport": "stdio",
}
})Replace each placeholder with your own value before saving.
Check it worked: Print the loaded tool list before running the agent.
Make automation platform
This client cannot start a local process, and this server publishes no hosted endpoint.
n8n automation platform
This client cannot start a local process, and this server publishes no hosted endpoint.
Windsurf IDE
Configuration file: ~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"mcp-onesource": {
"command": "npx",
"args": ["-y", "@one-source/mcp"],
"env": {
"X402_PRIVATE_KEY": "<x402_private_key>",
"ONESOURCE_API_KEY": "<onesource_api_key>"
}
}
}
}Replace each placeholder with your own value before saving.
Check it worked: The server appears in the Cascade plugin list.
Zapier automation platform
This client cannot start a local process, and this server publishes no hosted endpoint.
Zed IDE
Configuration file: ~/.config/zed/settings.json
{
"context_servers": {
"mcp-onesource": {
"command": {
"path": "npx",
"args": ["-y", "@one-source/mcp"]
}
}
}
}Replace each placeholder with your own value before saving.
Check it worked: The agent panel lists the server under context servers.
Tools
43 tools, from the publisher's manifest. A parameter marked with an asterisk is required. By intent: 41 answer and 2 not classified.
Intent says what a tool does with the world. Answer reads and returns information and changes nothing. Act changes state somewhere, by writing, creating, sending or deleting. Transact moves money, buys something or commits to a cost. A value marked declared is the publisher's own annotation on their own tool. A value marked inferred is this catalogue reading the tool name and description, and is not a claim by the publisher. Where neither settles it, the tool is left unclassified rather than guessed at.
| Tool | What it does | Intent | Parameters |
|---|---|---|---|
| 1s_address_txs | Get transaction history for an address (sent and received). Sorted by block number descending. Use from_block/to_block to narrow the range. | answer inferred | limit, address, network, to_block, from_block |
| 1s_block | Get indexed block details by block number. Returns block metadata including timestamp, transaction count, and gas used. For the latest pending block, use 1s_pending_block instead. | answer inferred | network, block_number |
| 1s_contract_info | Get indexed contract metadata including deployment info and detected standards. Use this for enriched contract data; use 1s_contract_info_live for real-time ERC standard detection via RPC. | answer inferred | address, network |
| 1s_erc1155_balance | Get indexed ERC1155 token balance. Use this for cached lookups; use 1s_erc1155_balance_live for real-time data. Requires the contract address and specific token ID. | answer inferred | account, network, contract, token_id |
| 1s_erc20_balance | Get indexed ERC20 token balance for a wallet. Use this for historical or cached balance lookups; use 1s_erc20_balance_live for real-time data. Returns token metadata (name, symbol, decimals) alongside the balance. | answer inferred | token, account, network |
| 1s_erc20_transfers | Get ERC20 transfer history filtered by token and/or wallet. Use this for indexed transfer records; use 1s_erc20_transfers_live for raw Transfer event logs. Sorted by block number descending. | answer inferred | limit, token, wallet, network |
| 1s_events | Search indexed event logs by contract address and/or event name. Use this for decoded, searchable events; use 1s_events_live for raw eth_getLogs against the node. Sorted by block number descending. | answer inferred | limit, network, contract, to_block, event_name, from_block |
| 1s_nft_media | Get processed media files (images, videos, thumbnails) for an NFT. Use this to get optimized media URLs with dimensions and content types. Only returns successfully processed media (status=OK). | answer inferred | network, contract, token_id |
| 1s_nft_metadata | Get NFT metadata including name, description, image URL, and traits from the index. Use this for enriched metadata; use 1s_nft_metadata_live to fetch directly from the token's URI. Excludes records with fetch errors. | answer inferred | network, contract, token_id |
| 1s_nft_owner | Get the current owner of an NFT from the index. Use this for quick ownership checks; use 1s_nft_owner_live for guaranteed real-time data. Filters out zero-balance holders automatically. | answer inferred | network, contract, token_id |
| 1s_tx_details | Get indexed transaction details with decoded event logs. Use this for rich transaction data; use 1s_tx_details_live for unindexed or very recent transactions. Returns both the transaction and up to 100 associated events. | answer inferred | hash, network |
| 1s_wallet_nfts | Get a wallet's complete NFT portfolio with metadata enrichment. Returns ERC721 and ERC1155 tokens with names, images, and collection info. Results sorted by most recently updated. | answer inferred | limit, account, network |
| 1s_allowance_live | Check ERC20 token allowance (approved spending amount) via the allowance(owner,spender) RPC call. Use this before executing transferFrom or to verify approvals. Returns the allowance amount in raw token units. | answer inferred | owner, token, network, spender |
| 1s_contract_info_live | Detect contract type and supported interfaces via eth_getCode and ERC165 supportsInterface. Use this for real-time standard detection; use 1s_contract_info for indexed metadata. Returns detected standards (ERC20, ERC721, ERC1155, ERC165). | answer inferred | address, network |
| 1s_erc1155_balance_live | Get real-time ERC1155 token balance via balanceOf(address,uint256) RPC call. Use this when you need guaranteed current balance; use 1s_erc1155_balance for cached lookups. Returns the raw balance as a numeric string. | answer inferred | account, network, contract, token_id |
| 1s_erc20_balance_live | Get real-time ERC20 token balance directly from the blockchain via balanceOf. Use this for pre-transaction checks or when zero indexing delay is needed; use 1s_erc20_balance for cheaper cached lookups. Returns raw token units (divide by 10^decimals); non-standard tokens may return empty name/symbol. | answer inferred | token, account, network |
| 1s_erc20_transfers_live | Query ERC20 Transfer event logs via eth_getLogs. Use this for real-time transfer monitoring; use 1s_erc20_transfers for indexed transfer history. Block params are hex-encoded. | answer inferred | token, wallet, network, to_block, from_block |
| 1s_erc721_tokens_live | Enumerate ERC721 tokens owned by an address via ERC721Enumerable. Only works for contracts that implement the Enumerable extension. Returns token IDs owned by the address. | not classified | owner, network, contract |
| 1s_events_live | Query raw event logs via eth_getLogs directly from the node. Use this for real-time or unindexed events; use 1s_events for decoded, searchable indexed events. Block params are hex-encoded (e.g. 0x1234). | answer inferred | topic, network, contract, to_block, from_block |
| 1s_multi_balance_live | Get ETH and multiple ERC20 balances in a single batched RPC call. Use this to check a wallet's holdings across multiple tokens efficiently. Individual token errors are returned per-token without failing the entire request. | answer inferred | tokens, address, network |
| 1s_nft_metadata_live | Fetch NFT metadata directly from the blockchain via tokenURI/uri RPC call. Resolves all URI formats: ipfs://, ar://, data: URIs, bare CIDs, and ERC1155 {id} templates. Use this for freshest metadata; use 1s_nft_metadata for cached lookups. | answer inferred | network, contract, token_id |
| 1s_nft_owner_live | Get the current NFT owner via ownerOf(tokenId) RPC call. Use this for real-time ownership verification; use 1s_nft_owner for cached lookups. Only works for ERC721 tokens. | answer inferred | network, contract, token_id |
| 1s_total_supply_live | Get the total supply of an ERC20 or ERC721 token via totalSupply() RPC call. Use this for real-time supply data. Returns raw token units for ERC20 (divide by 10^decimals) or total count for ERC721. | answer inferred | token, network |
| 1s_tx_details_live | Get full transaction data and receipt directly from the RPC node. Use this for very recent or unindexed transactions; use 1s_tx_details for enriched indexed data. Returns both transaction fields and receipt (status, gas used, logs). | answer inferred | hash, network |
| 1s_contract_code | Get the deployed bytecode of a contract via eth_getCode. Returns '0x' for EOA (non-contract) addresses. Use this to verify whether an address is a contract before interacting with it. | answer inferred | address, network |
| 1s_ens_resolve | Resolve ENS names to addresses (forward) or addresses to ENS names (reverse). Accepts either a .eth name or a 0x address. Only works on networks with ENS registry deployed (mainnet, sepolia). | answer inferred | input, network |
| 1s_estimate_gas | Estimate gas required for a transaction via eth_estimateGas. Use this before sending transactions to set appropriate gas limits. Returns the estimated gas as a hex value; reverts return the revert reason. | answer inferred | to, data, from, value, network |
| 1s_network_info | Get basic network information: chain ID, latest block number, and current gas price. Use this to verify which chain you are connected to or to check current gas conditions. Returns hex-encoded values; gas price is in wei. | answer inferred | network |
| 1s_nonce | Get the transaction count (nonce) for an address via eth_getTransactionCount. Use this to set the correct nonce when constructing transactions. Returns the count as a hex value. | answer inferred | address, network |
| 1s_pending_block | Get the current pending block from the mempool. Use this to see transactions waiting for inclusion. Not all nodes expose pending block data; results vary by RPC provider. | answer inferred | network |
| 1s_proxy_detect | Detect if a contract is a proxy and read its implementation address. Checks EIP-1967 (transparent/UUPS/beacon) storage slots. Returns the proxy type, implementation address, and admin if applicable. | answer inferred | address, network |
| 1s_simulate_call | Simulate a contract call via eth_call without sending a transaction. Use this to preview call results, decode return data, or check for reverts before sending. Returns the raw hex result or revert reason. | not classified | to, gas, data, from, value, network |
| 1s_storage_read | Read a raw storage slot from a contract via eth_getStorageAt. Use this for low-level state inspection (e.g. reading proxy implementation slots, packed storage). Slot must be a hex-encoded 32-byte value. | answer inferred | slot, network, contract |
| 1s_tx_receipt | Get a transaction receipt via RPC. Returns status (1=success, 0=revert), gas used, logs, and contract address if deployment. Use 1s_tx_details_live for both transaction data and receipt together. | answer inferred | hash, network |
| search_docs | Search OneSource documentation by keyword. Returns the top 5 matching sections. | answer inferred | query |
| get_query_reference | Get full reference for a OneSource root GraphQL query — arguments, filters, return type. There are 12 root queries: address, addresses, block, blocks, contract, contracts, nft, nfts, token, tokens, transaction, transactions. | answer inferred | query_name |
| get_type_definition | Get the schema definition for a GraphQL type, enum, scalar, input, or interface. Returns fields, values, and descriptions. | answer inferred | type_name |
| list_examples | List or search working GraphQL examples. Without a topic, returns a summary of all available examples. With a topic, returns full example content matching that keyword. | answer inferred | topic |
| list_supported_chains | List all blockchain networks supported by OneSource with endpoint URLs. | answer inferred | none |
| get_filter_reference | Get all filter fields and operators for a list query (e.g. transactions, tokens). | answer inferred | query_name |
| get_pagination_guide | Get the cursor-based pagination pattern with examples for a list query. | answer inferred | query_name |
| get_schema_overview | Get a high-level summary of the entire GraphQL schema — all queries, types, enums, and scalars. | answer inferred | none |
| get_authentication_guide | Get the authentication guide — API key format, endpoints, headers, and common mistakes. | answer inferred | none |
Command line alternative
None found. The published package declares no executable and no matching Homebrew formula exists, so the MCP server appears to be the only route. This is a negative result from automated checks, not a statement from the publisher.
Repository
Read from github on 2026-08-06.
- Stars
- 0
- Forks
- 1
- Open issues
- 6
- Primary language
- TypeScript
- Licence
- not declared by the publisher
- Last commit
- 2026-08-05
- Latest release
- no tagged release
- Created
- 2026-03-26
- Repository files
- readme, license, serverJson
Security, privacy and enterprise use
The publisher's website links no privacy policy, terms, security page or enterprise information that could be found automatically. It may still exist somewhere less obvious on their site.
Publisher
- Website
- mcp.onesource.io
- Profiles
- x
- Community
- no subreddit linked from the publisher's site
Review platforms
Ratings are not shown. G2, Trustpilot and Capterra all prohibit republishing their scores without a licence, and marking up a borrowed rating as our own would breach search engine policy. These are profile links only, and a profile may not exist for every publisher.
Frequently asked questions
- What does the OneSource MCP MCP server do?
- 46 tools for blockchain data, Deepstate market data, live chain queries, and REST API documentation.
- Do I need to install anything to use OneSource MCP?
- Yes. OneSource MCP runs as a local process, so the package has to be installed on the machine where the client runs.
- How do I install OneSource MCP?
- Install the npm package @one-source/mcp and run it with npx -y @one-source/mcp.
- Does OneSource MCP need an API key?
- Yes. It reads 2 environment variables from the environment, so you need to supply X402_PRIVATE_KEY, ONESOURCE_API_KEY before the server will start.
- What is X402_PRIVATE_KEY used for in OneSource MCP?
- EVM private key (64-char hex, 0x prefix optional) for automatic x402 USDC payments on Base.
- What is ONESOURCE_API_KEY used for in OneSource MCP?
- OneSource API key for Bearer token auth.
- Which transport does OneSource MCP use?
- Stdio. Your client has to support that transport to connect.
- Where is the source code for OneSource MCP?
- The publisher lists https://github.com/blockparty-global/1s-mcp as the source repository.
- Is OneSource MCP an official server?
- It is published under the namespace io.onesource, which means the publisher proved control of that domain when registering. That confirms who published it, not that it has been reviewed for quality or security.
- Which version of OneSource MCP is listed here?
- Version 5.12.0, taken from the latest registry entry.
Other servers in Finance and Market Data
Hive Intelligence MCP
Evidence-backed crypto due diligence with sources, freshness, and a runtime receipt on every call.MCP Holded
MCP server for Holded (Spanish ERP): invoicing, accounting, treasury, CRM, projects, payroll.Multimeter
Scaffold, validate, format, and run YAML.mmt API tests. Do not invent syntax.Macroaxis Financial Data
Financial market, fundamental, valuation, risk, ownership, forecast, and portfolio tools.aus-accounting-mcp
Local MCP for ATO benchmarks, Payday Super and limited Division 7A loan review. Not advice.Irs Taxpayer
44 local US tax estimation and planning tools for supported TY2024 through TY2026 scenarios.Korea Stay
Korean lodging: 84,490 stays from 4 government permit ledgers + KTO TourAPI, honest gaps.ccpcrate, Canadian CCPC corporate tax
Deterministic Canadian CCPC rate stack: small business deduction and grinds, Part IV, RDTOH.