Onesource MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ONESOURCE_BASE_URL | No | API base URL | https://skills.onesource.io |
| X402_ANALYTICS_KEY | No | API key for dashboard analytics | |
| ONESOURCE_ANALYTICS | No | Set to `false` to disable analytics | |
| ONESOURCE_ANALYTICS_URL | No | Dashboard endpoint for analytics |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 1s_allowance_liveA | 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. |
| 1s_contract_info_liveA | Detect contract type and supported interfaces via eth_getCode and ERC165 supportsInterface. Returns detected standards (ERC20, ERC721, ERC1155, ERC165). |
| 1s_erc1155_balance_liveA | Get real-time ERC1155 token balance via balanceOf(address,uint256) RPC call. Returns the raw balance as a numeric string. |
| 1s_erc20_balance_liveA | 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. Returns raw token units (divide by 10^decimals); non-standard tokens may return empty name/symbol. |
| 1s_erc20_transfers_liveA | Query ERC20 Transfer(from, to, value) event logs via eth_getLogs directly from the node. Filter by token contract and/or wallet address. Block params are hex-encoded (e.g. 0x1234). Returns decoded transfer events with sender, recipient, and value. WARNING: Keep block ranges small (10 blocks or fewer) to avoid huge responses. Omitting from_block/to_block queries only the latest block. |
| 1s_erc721_tokens_liveA | 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. |
| 1s_events_liveA | Query raw event logs via eth_getLogs directly from the node. Filter by contract address and/or topic0 (keccak256 hash of event signature, e.g. Transfer(address,address,uint256)). Block params are hex-encoded (e.g. 0x1234). Returns raw log entries with topics, data, and block context. WARNING: Keep block ranges small (10 blocks or fewer) to avoid huge responses. Always specify a contract address when possible. Omitting from_block/to_block queries only the latest block. |
| 1s_multi_balance_liveA | 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. |
| 1s_nft_metadata_liveA | 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. |
| 1s_nft_owner_liveA | Get the current NFT owner via ownerOf(tokenId) RPC call. Only works for ERC721 tokens. |
| 1s_total_supply_liveA | 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. |
| 1s_tx_details_liveA | Get full transaction data and receipt directly from the RPC node. Returns both transaction fields and receipt (status, gas used, logs). |
| 1s_block_by_numberA | Get full block details by block number via RPC. Returns transactions, gas used, miner, timestamp, and other header fields. Accepts decimal (e.g. "21000000") or hex (e.g. "0x1406F40") block numbers. |
| 1s_block_numberA | Get the latest block number for a network. Returns the current chain head as a hex-encoded value. Use 1s_network_info to also get chain ID and gas price in the same call. |
| 1s_chain_idA | Get the EIP-155 chain ID for a network as a hex-encoded value. Use this to verify the network before signing transactions. Use 1s_network_info to get chain ID, block number, and gas price together. |
| 1s_contract_codeA | Get the deployed bytecode of a contract via eth_getCode. Returns '0x' for EOA (non-contract) addresses. Bytecode can be very large for complex contracts. Prefer 1s_proxy_detect or 1s_contract_info_live for type checks without fetching full bytecode. |
| 1s_ens_resolveA | 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). |
| 1s_estimate_gasA | 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. |
| 1s_network_infoA | 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. |
| 1s_nonceA | 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. |
| 1s_pending_blockA | Get the current pending block from the mempool. Use this to see transactions waiting for inclusion. WARNING: Response can be very large (1MB+) on mainnet as it includes all pending transactions. Prefer 1s_network_info for chain status or 1s_tx_details_live for specific transactions. Not all nodes expose pending block data; results vary by RPC provider. |
| 1s_proxy_detectA | 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. |
| 1s_simulate_callA | 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. |
| 1s_storage_readA | 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. |
| 1s_tx_receiptA | 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. |
| 1s_setup_checkA | Check OneSource MCP server health — version (current vs latest), authentication status (API key or x402), API connectivity, and setup instructions if anything is missing. Free, no authentication required. Call this first when troubleshooting. |
| 1s_report_bugA | Report a bug or issue to the OneSource team. Use when a tool returns an unexpected error or when the user asks to report a problem. Free, no payment required. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/blockparty-global/1s-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server