ToolTrust
A2/100
Smithery

one-source-mcp-1s

mcpsmithery

@Smithery

# @one-source/mcp Unified MCP server for [OneSource](https://docs.onesource.io) — 31 tools for blockchain data, live chain queries, and API documentation in a single server. Combines [`@one-source/api-mcp`](https://www.npmjs.com/package/@one-source/api-mcp) (22 tools) and [`@one-source/docs-mcp`](https://www.npmjs.com/package/@one-source/docs-mcp) (9 tools) so your AI assistant gets full access to OneSource with one MCP connection. > **What is MCP?** The [Model Context Protocol](https://modelcontextprotocol.io) lets AI assistants call tools and access data sources. This server exposes both the OneSource blockchain API and its documentation as tools. ## Quick Start ### Claude Code ```bash claude mcp add onesource -- npx @one-source/mcp ``` ### Claude Desktop / Cursor Add to your MCP config: ```json { "mcpServers": { "onesource": { "command": "npx", "args": ["-y", "@one-source/mcp"] } } } ``` ### Any MCP Client (stdio) ```bash npx @one-source/mcp ``` ### HTTP Server (self-hosted) ```bash npx @one-source/mcp --http npx @one-source/mcp --http --port=8080 ``` Then connect your MCP client to `http://localhost:3000/`. ## Tools (31) ### Blockchain API — Live Chain (12 tools) | Tool | Description | |------|-------------| | `1s_allowance_live` | ERC20 allowance check | | `1s_contract_info_live` | Contract type detection via ERC165 | | `1s_erc1155_balance_live` | ERC1155 balance via RPC | | `1s_erc20_balance_live` | ERC20 balance via balanceOf | | `1s_erc20_transfers_live` | ERC20 Transfer logs via eth_getLogs | | `1s_erc721_tokens_live` | ERC721 token enumeration | | `1s_events_live` | Event logs via eth_getLogs | | `1s_multi_balance_live` | ETH + multiple ERC20 balances | | `1s_nft_metadata_live` | NFT metadata via tokenURI | | `1s_nft_owner_live` | NFT owner via ownerOf | | `1s_total_supply_live` | Token total supply | | `1s_tx_details_live` | Transaction + receipt via RPC | ### Blockchain API — Chain Utilities (10 tools) | Tool | Description | |------|-------------| | `1s_contract_code` | Contract bytecode | | `1s_ens_resolve` | ENS name/address resolution | | `1s_estimate_gas` | Gas estimation | | `1s_network_info` | Chain ID, block number, gas price | | `1s_nonce` | Transaction count | | `1s_pending_block` | Pending block from mempool | | `1s_proxy_detect` | Proxy contract detection | | `1s_simulate_call` | Simulate eth_call | | `1s_storage_read` | Read storage slot | | `1s_tx_receipt` | Transaction receipt | ### Documentation (9 tools) Read-only, no API key required. | Tool | Purpose | When to use | |------|---------|-------------| | `search_docs` | Keyword search across all documentation | Finding guides, concepts, or API patterns | | `get_query_reference` | Full reference for a root GraphQL query | Building a specific query with correct args/filters | | `get_type_definition` | Schema definition for any type/enum/input | Understanding field shapes and return types | | `list_examples` | Browse or search working GraphQL examples | Finding ready-to-use query patterns | | `list_supported_chains` | All supported blockchain networks + endpoints | First question: "What chains are supported?" | | `get_filter_reference` | Filter fields and operators for a list query | Building filtered queries with correct syntax | | `get_pagination_guide` | Cursor-based pagination pattern with examples | Implementing pagination for list queries | | `get_schema_overview` | High-level summary of the entire schema | Exploring the API surface before diving in | | `get_authentication_guide` | API key format, headers, and endpoints | Setting up authentication for the first time | ## Networks All blockchain API tools accept an optional `network` parameter: | Network | Description | |---------|-------------| | `ethereum` | Ethereum mainnet (default) | | `sepolia` | Ethereum Sepolia testnet | | `avax` | Avalanche C-Chain | ## Payment (x402) Blockchain API endpoints are priced in USDC on Base via [x402](https://github.com/coinbase/x402). When the backend has payments enabled, tool calls return a 402 with payment details. Agents using [`@x402/fetch`](https://www.npmjs.com/package/@x402/fetch) handle this automatically. Documentation tools are always free — no API key or authentication needed. ## License Apache 2.0

By Smithery | 79 findings | Scanned 7/4/2026 | tooltrust-scanner/v0.3.19

9 Low70 Info

Risk Summary

Safe With Normal Controls

Dep Visibility is the main signal, but overall risk remains within an acceptable range.

Potential impact: This finding indicates the tool should be reviewed before it is trusted.

Recommended action: No high-risk findings were detected in this scan, but you should still apply least-privilege defaults and rescan after changes.

Suggested policy: keep this tool behind manual approval, do not allow unattended runs, and re-scan after narrowing risky permissions.

Security Findings (79)

  • LowAS-011

    ℹ️Missing Rate-Limit / Timeout ×9

    tool performs network or execution operations but declares no rate-limit, timeout, or retry configuration

    1s_nft_media1s_nft_metadata1s_allowance_live1s_nft_metadata_live1s_ens_resolve1s_network_infosearch_docsget_query_referencelist_supported_chains

    Fix: Declare explicit rate-limit, timeout, and retry configuration for all network and execution tools. Implement exponential back-off and surface resource state to the calling agent.

  • InfoAS-014

    ℹ️Dependency Inventory Unavailable ×43

    Tool did not expose metadata.dependencies or repo_url, so supply-chain coverage is limited.

    1s_address_txs1s_block1s_contract_info1s_erc1155_balance1s_erc20_balance1s_erc20_transfers1s_events1s_nft_media1s_nft_metadata1s_nft_owner1s_tx_details1s_wallet_nfts1s_allowance_live1s_contract_info_live1s_erc1155_balance_live1s_erc20_balance_live1s_erc20_transfers_live1s_erc721_tokens_live1s_events_live1s_multi_balance_live1s_nft_metadata_live1s_nft_owner_live1s_total_supply_live1s_tx_details_live1s_contract_code1s_ens_resolve1s_estimate_gas1s_network_info1s_nonce1s_pending_block1s_proxy_detect1s_simulate_call1s_storage_read1s_tx_receiptsearch_docsget_query_referenceget_type_definitionlist_exampleslist_supported_chainsget_filter_referenceget_pagination_guideget_schema_overviewget_authentication_guide

    Fix: Review and remediate the identified issue.

  • InfoAS-010

    🔑Insecure Secret Handling ×14

    input parameter "token_id" accepts a credential (informational; not evidence of insecure handling)

    1s_erc1155_balance1s_nft_media1s_nft_metadata1s_nft_owner1s_erc1155_balance_live1s_nft_metadata_live1s_nft_owner_live

    input parameter "token" accepts a credential (informational; not evidence of insecure handling)

    1s_erc20_balance1s_erc20_transfers1s_allowance_live1s_erc20_balance_live1s_erc20_transfers_live1s_total_supply_live

    input parameter "tokens" accepts a credential (informational; not evidence of insecure handling)

    1s_multi_balance_live

    Fix: Avoid accepting raw credentials as input parameters. Use secret managers (e.g. 1Password CLI, AWS Secrets Manager) and ensure credentials are never logged or stored in agent traces.

  • InfoAS-002

    ⚠️Excessive Permissions ×13

    declared capabilities: network access, filesystem access

    1s_nft_media

    declared capabilities: network access

    1s_nft_metadata1s_nft_metadata_live1s_ens_resolve1s_network_infosearch_docslist_supported_chains

    declared capabilities: code/command execution

    1s_allowance_live

    declared capabilities: database access

    1s_erc20_transfers_live1s_events_liveget_filter_referenceget_pagination_guide

    declared capabilities: network access, database access

    get_query_reference

    Fix: Tool requests broad permissions (exec/fs/network). Validate input parameters using Enums where possible, and restrict file system operations to explicit allowed directories.

Scan this tool yourself

Reproduce this audit locally, integrate into CI, or let your agent audit its own tools.

Install once, then scan any MCP server:

$ curl -sfL https://raw.githubusercontent.com/AgentSafe-AI/tooltrust-scanner/main/install.sh | bash
$ tooltrust-scanner scan --server "npx -y one-source-mcp-1s"

Adjust the package name if your npm registry name differs from the tool ID. View source

Add badge to your README

Copy this Markdown to show your ToolTrust grade on GitHub.

[![ToolTrust Grade A](https://raw.githubusercontent.com/AgentSafe-AI/tooltrust-directory/main/docs/badges/grade-a.svg)](https://github.com/AgentSafe-AI/tooltrust-directory)