OneSource MCP
About
43 tools for live blockchain queries across Ethereum, Sepolia, and Avalanche — including token balances, NFT metadata, event logs, contract detection, ENS resolution, and GraphQL API documentation.
Details
- Author
- blockparty-global
- Categories
- Developer Tools, Knowledge Base, Other
Jump to
Alternative: Set as an Environment Variable
Instead of theenvconfig block, you can set any of these variables as a shell or system environment variable:export ONESOURCE_API_KEY=<key>(bash/zsh) or$env:ONESOURCE_API_KEY = "<key>"(PowerShell). Set it at the OS level for persistence across sessions.
By default each paid call signs one payment per call (x402-exacton Base,mpp-chargeon Tempo). For a burst of calls, open apayment channel— one on-chain deposit funds many off-chain calls, settled together — which is cheaper than paying per call:
- x402 (Base):switch tox402-batchwith1s_payment_mode { "mode": "x402-batch" }(orX402_PAYMENT_MODE=batch). The first call depositsprice × X402_DEPOSIT_MULTIPLIER(default 10).
- MPP (Tempo):switch tompp-sessionwith1s_payment_mode { "mode": "mpp-session" }(orMPP_PAYMENT_MODE=session). The first call deposits up toMPP_MAX_DEPOSIT(default 1).
Reclaim the unused balance any time with the1s_refundtool (works for both rails); the residual is always recoverable on-chain. An idle x402 channel also auto-refunds after a few hours, and an MPP session settles automatically on clean shutdown.
When paying via a wallet, the agent receives channel guidance in its system prompt at startup, so it can manage this for you rather than leaving it as a manual step: when it anticipates a burst of calls it offers to switch to the channel mode for the active rail and reminds you to1s_refundwhen finished. Control how proactive it is withX402_BATCH_PROMPT(ask/auto/off) andX402_BATCH_THRESHOLD(how many anticipated calls count as a burst — shared across both rails) — seeEnvironment Variables.1s_setup_checkreports your current mode, whether the channel is available, and all settings.
Never commit keys to source control. Use environment variables, a.envfile (excluded from git), or a secrets manager.
After any config change:Run/reload-pluginsin Claude Code, or restart Claude Desktop / Cursor. The MCP server must be reloaded to pick up new environment variables.
Set one to access the blockchain API tools. Without any, only the no-auth Setup & Ops tools work. The API key takes priority when set alongside a wallet key.
All have sensible defaults — channel modes run out of the box. Set these only to override an endpoint, tune how channel modes behave, or adjust analytics. Payment modes can also be switched at runtime with the1s_payment_modetool. The channel knobs below (X402_PAYMENT_MODE,X402_DEPOSIT_MULTIPLIER,MPP_PAYMENT_MODE,MPP_MAX_DEPOSIT,X402_BATCH_PROMPT,X402_BATCH_THRESHOLD) can be set and persisted from a session with the1s_batch_configtool — no config editing or restart required; a saved config takes priority over these env vars.
1s_setup_checkshows "Active auth method: none" (blockchain tools locked)UnderCurrent configuration, "Active auth method:none" means no authentication is set. Set one ofONESOURCE_API_KEY(API key),X402_PRIVATE_KEY(x402 on Base), orMPP_PRIVATE_KEY(MPP on Tempo) — or just run1s_setup_checkand let it walk you through it. Reload the MCP server after setting any variable (see note above). If the key still isn't reaching the server, set it as a shell environment variable directly.
Getting 403 / wrong key active despite correct setupA key set in your shell profile (e.g.~/.zshrc,~/.bash_profile) is picked up by the MCP server process even if it isn't in your Claude MCP config. Runecho $ONESOURCE_API_KEYin your terminal to check. If it prints a value you didn't intend, unset it (unset ONESOURCE_API_KEY) or explicitly clear it when adding the server:claude mcp add onesource -e ONESOURCE_API_KEY= -e X402_PRIVATE_KEY=<key> -- npx -y @one-source/mcp@latest.1s_setup_checkshows the first 6 characters of whichever key is active so you can confirm which one the server is using.
Instructions show wrong auth method after reinstall/reload-pluginsin Claude Code reconnects tools but may not refresh the system prompt the LLM sees. If you switch auth method (e.g. API key → x402), do a full Claude Code restart to ensure the instructions reflect the new auth.
"MCP server onesource already exists" errorRunclaude mcp remove onesourcefirst, then re-add with your updated config.
Windows:npxrequirescmd /cwrapperClaude Code's/doctorcommand may warn about this. Update your MCP config to use"command": "cmd"with"args": ["/c", "npx", "-y", "@one-source/mcp@latest"].
npxhangs with no output That's normal — stdio mode waits for JSON-RPC input on stdin. Use--httpif you want an HTTP server you can curl.
Port already in useSpecify a different port:npx -y @one-source/mcp@latest --http --port=8080
This package is listed on theofficial MCP Registryunder the verified namespaceio.onesource/mcpand onGlama. When releasing a new version, update both registries.
Download the installer for your platform fromgo.dev/dland run it. Verify:
go install github.com/modelcontextprotocol/registry/cmd/mcp-publisher@latest
If the Go module path has changed and the command fails, download the binary directly from themcp-publisher GitHub releasespage instead.
On Windows, add Go's bin directory to your PATH if the command isn't recognized:
$env:PATH += ";$env:USERPROFILE\go\bin"
Theonesource.iodomain has a DNS TXT record that proves ownership of theio.onesourcenamespace. This is already configured — you don't need to redo it.
The record is on the root domain (onesource.io, not_mcp-registry.onesource.io):
v=MCPv1; k=ed25519; p=7D3U5rufgNXb/lH2MthTRZdDzEGeE7/Jvg8YkiArQc8=
Authentication requires the ed25519 private key inhex formatthat corresponds to the public key in the DNS record. Ask the team lead for this key — it's stored in the team's password manager / vault.
If you need to regenerate the keypair (this invalidates the current DNS record and requires updating it):
- Generate a new ed25519 keypair (e.g.,openssl genpkey -algorithm Ed25519 -out key.pem)
- Extract the raw 32-byte private key seed and convert to hex:
openssl pkey -in key.pem -outform DER | tail -c 32 | xxd -p -c 32
- Extract the public key in base64 for the DNS TXT record:
openssl pkey -in key.pem -pubout -outform DER | tail -c 32 | base64
- Update the DNS TXT record ononesource.iowith the new public key:
v=MCPv1; k=ed25519; p=<base64-public-key>
- Wait for DNS propagation before attempting to log in.
Use the release script.Releases are normally run via the coordinated release script in the sre-services repo (scripts/release-mcp.mjs— seesre-services/RELEASING.md), which performs all of the steps below across both@one-source/api-mcpand@one-source/mcpin the correct order, including theserver.jsonbump andmcp-publisher publish. The First-Time Setup above is still the prerequisite for the registry step. The manual steps below are the fallback for registry-only fixes or when the script can't run.
Every time you release a new npm version, update the MCP Registry:
- Publish to npm(the registry validates the package exists, so this must happen first):
npm run build npm publish --access public
- Updateserver.json— set bothversionfields to match the new npm version:
{ "version": "x.y.z", ... "packages": [{ "version": "x.y.z", ... }] }
ThemcpNamefield inpackage.jsonmust be"io.onesource/mcp"and must match thenamefield inserver.json. This is already set — don't remove it. 3.Authenticate(tokens expire, so do this each time):
mcp-publisher login dns --domain onesource.io --private-key <ed25519-hex-private-key>
curl "https://registry.modelcontextprotocol.io/v0.1/servers?search=onesource"
Glama auto-syncs from the GitHub repo daily. No manual steps needed after a release — just make sure changes are pushed todevelop(the default branch). Theglama.jsonfile in the repo root controls ownership. Manual re-sync is available from theGlama admin panelafter claiming the server.
Use of this extension connects to the OneSource API. See theOneSource Privacy Policyfor details on how data is handled.
This is a web browser that enables your coding agent, such as Claude Code, to visit websites on your behalf and assist you in identifying bugs or creating UI test cases.
Extentos is a multi-vendor development platform for adding smart-glasses capabilities to existing iOS and Android apps. The simplest analogy is Stripe for smart glasses
An MCP server tailored for React Native–first development using Gluestack UI
Unified MCP server forOneSource— 38 tools for blockchain data, live chain queries, and REST API documentation in a single server.
claude mcp add onesource -- npx -y @one-source/mcp@latest
{ "mcpServers": { "onesource": { "command": "npx", "args": ["-y", "@one-source/mcp@latest"] } } }
npx -y @one-source/mcp@latest --http npx -y @one-source/mcp@latest --http --port=8080
Then connect your MCP client tohttp://localhost:3000/(or your--portvalue, e.g.8080in the second example above).
Health check:GET http://localhost:3000/health(substitute your port).
Blockchain API — Chain Utilities (13 tools)
No authentication required. These answer from a documentation corpus bundled with the server, so they cost nothing and work even before a payment method is configured. They share their names with the standalone@one-source/docs-mcpserver, which serves the same corpus.
All blockchain API tools accept an optionalnetworkparameter:
Blockchain API tools require authentication. Three options are available — if an API key is set alongside a wallet key, the API key takes priority and the wallet is ignored.
Tip:the fastest way to configure any of these is the1s_setup_checktool — it walks you through every option interactively and hands you a ready-to-run command, so you never have to hand-edit env vars or config files. The manual instructions below are the reference.
- Go toapp.onesource.ioand create an account.
- Complete the API key subscription through Stripe checkout.
- Navigate toAPI Keysand generate a key.
- Copy the key — it starts withsk_.
claude mcp add onesource -e ONESOURCE_API_KEY=<key> -- npx -y @one-source/mcp@latest
{ "mcpServers": { "onesource": { "command": "npx", "args": ["-y", "@one-source/mcp@latest"], "env": { "ONESOURCE_API_KEY": "<key>" } } } }
ONESOURCE_API_KEY=<key> npx -y @one-source/mcp@latest
After adding, reload the MCP server and call1s_setup_check— underCurrent configurationit should reportActive auth method: API key(with the first 6 characters of your key).
Blockchain API endpoints are priced in USDC on Base viax402. When you setX402_PRIVATE_KEY, the server automatically handles payments — tool calls are paid and retried transparently without any extra work from the agent.
- Get an EVM private key— export one from MetaMask, Coinbase Wallet, or any EVM wallet, or generate a fresh one. The key is a 64-character hex string. The0xprefix is optional — both formats are accepted.
- Pass the key to the serverusing one of the methods below.
- Reload and find your wallet address— reload the MCP server, then call1s_setup_check. UnderCurrent configurationit lists yourx402 (Base) wallet— the address derived from your key.
- Fund that address with USDC on Base— send USDC to the address shown in1s_setup_check, on theBasenetwork. A few dollars ($1–5 USDC) is enough for hundreds of calls. If your USDC is on Ethereum mainnet, bridge it using theBase Bridge.
- Verify— call1s_network_infofor ethereum. If it returns chain data (block number, gas price), x402 payments are working end-to-end.
claude mcp add onesource -e X402_PRIVATE_KEY=<key> -- npx -y @one-source/mcp@latest
{ "mcpServers": { "onesource": { "command": "npx", "args": ["-y", "@one-source/mcp@latest"], "env": { "X402_PRIVATE_KEY": "<key>" } } } }
X402_PRIVATE_KEY=<key> npx -y @one-source/mcp@latest
claude mcp add onesource -e MPP_PRIVATE_KEY=<key> -- npx -y @one-source/mcp@latest
{ "mcpServers": { "onesource": { "command": "npx", "args": ["-y", "@one-source/mcp@latest"], "env": { "MPP_PRIVATE_KEY": "<key>" } } } }
MPP_PRIVATE_KEY=<key> npx -y @one-source/mcp@latest
By default MPP pays per call (mpp-charge). For a burst of calls, switch to a Tempo voucher channel with1s_payment_mode { "mode": "mpp-session" }(or setMPP_PAYMENT_MODE=session) — one deposit funds many off-chain calls; reclaim the unspent balance any time with1s_refund, or it settles automatically on clean shutdown.
If you prefer editing the config file directly instead of using CLI commands:
Add theonesourceentry inside"mcpServers"using the JSON block shown above.
Alternative: Set as an Environment Variable
Instead of theenvconfig block, you can set any of these variables as a shell or system environment variable:export ONESOURCE_API_KEY=<key>(bash/zsh) or$env:ONESOURCE_API_KEY = "<key>"(PowerShell). Set it at the OS level for persistence across sessions.
By default each paid call signs one payment per call (x402-exacton Base,mpp-chargeon Tempo). For a burst of calls, open apayment channel— one on-chain deposit funds many off-chain calls, settled together — which is cheaper than paying per call:
- x402 (Base):switch tox402-batchwith1s_payment_mode { "mode": "x402-batch" }(orX402_PAYMENT_MODE=batch). The first call depositsprice × X402_DEPOSIT_MULTIPLIER(default 10).
- MPP (Tempo):switch tompp-sessionwith1s_payment_mode { "mode": "mpp-session" }(orMPP_PAYMENT_MODE=session). The first call deposits up toMPP_MAX_DEPOSIT(default 1).
Reclaim the unused balance any time with the1s_refundtool (works for both rails); the residual is always recoverable on-chain. An idle x402 channel also auto-refunds after a few hours, and an MPP session settles automatically on clean shutdown.
When paying via a wallet, the agent receives channel guidance in its system prompt at startup, so it can manage this for you rather than leaving it as a manual step: when it anticipates a burst of calls it offers to switch to the channel mode for the active rail and reminds you to1s_refundwhen finished. Control how proactive it is withX402_BATCH_PROMPT(ask/auto/off) andX402_BATCH_THRESHOLD(how many anticipated calls count as a burst — shared across both rails) — seeEnvironment Variables.1s_setup_checkreports your current mode, whether the channel is available, and all settings.
Never commit keys to source control. Use environment variables, a.envfile (excluded from git), or a secrets manager.
After any config change:Run/reload-pluginsin Claude Code, or restart Claude Desktop / Cursor. The MCP server must be reloaded to pick up new environment variables.
Set one to access the blockchain API tools. Without any, only the no-auth Setup & Ops tools work. The API key takes priority when set alongside a wallet key.
All have sensible defaults — channel modes run out of the box. Set these only to override an endpoint, tune how channel modes behave, or adjust analytics. Payment modes can also be switched at runtime with the1s_payment_modetool. The channel knobs below (X402_PAYMENT_MODE,X402_DEPOSIT_MULTIPLIER,MPP_PAYMENT_MODE,MPP_MAX_DEPOSIT,X402_BATCH_PROMPT,X402_BATCH_THRESHOLD) can be set and persisted from a session with the1s_batch_configtool — no config editing or restart required; a saved config takes priority over these env vars.
1s_setup_checkshows "Active auth method: none" (blockchain tools locked)UnderCurrent configuration, "Active auth method:none" means no authentication is set. Set one ofONESOURCE_API_KEY(API key),X402_PRIVATE_KEY(x402 on Base), orMPP_PRIVATE_KEY(MPP on Tempo) — or just run1s_setup_checkand let it walk you through it. Reload the MCP server after setting any variable (see note above). If the key still isn't reaching the server, set it as a shell environment variable directly.
Getting 403 / wrong key active despite correct setupA key set in your shell profile (e.g.~/.zshrc,~/.bash_profile) is picked up by the MCP server process even if it isn't in your Claude MCP config. Runecho $ONESOURCE_API_KEYin your terminal to check. If it prints a value you didn't intend, unset it (unset ONESOURCE_API_KEY) or explicitly clear it when adding the server:claude mcp add onesource -e ONESOURCE_API_KEY= -e X402_PRIVATE_KEY=<key> -- npx -y @one-source/mcp@latest.1s_setup_checkshows the first 6 characters of whichever key is active so you can confirm which one the server is using.
Instructions show wrong auth method after reinstall/reload-pluginsin Claude Code reconnects tools but may not refresh the system prompt the LLM sees. If you switch auth method (e.g. API key → x402), do a full Claude Code restart to ensure the instructions reflect the new auth.
"MCP server onesource already exists" errorRunclaude mcp remove onesourcefirst, then re-add with your updated config.
Windows:npxrequirescmd /cwrapperClaude Code's/doctorcommand may warn about this. Update your MCP config to use"command": "cmd"with"args": ["/c", "npx", "-y", "@one-source/mcp@latest"].
npxhangs with no output That's normal — stdio mode waits for JSON-RPC input on stdin. Use--httpif you want an HTTP server you can curl.
Port already in useSpecify a different port:npx -y @one-source/mcp@latest --http --port=8080
This package is listed on theofficial MCP Registryunder the verified namespaceio.onesource/mcpand onGlama. When releasing a new version, update both registries.
Download the installer for your platform fromgo.dev/dland run it. Verify:
go install github.com/modelcontextprotocol/registry/cmd/mcp-publisher@latest
If the Go module path has changed and the command fails, download the binary directly from themcp-publisher GitHub releasespage instead.
On Windows, add Go's bin directory to your PATH if the command isn't recognized:
$env:PATH += ";$env:USERPROFILE\go\bin"
Theonesource.iodomain has a DNS TXT record that proves ownership of theio.onesourcenamespace. This is already configured — you don't need to redo it.
The record is on the root domain (onesource.io, not_mcp-registry.onesource.io):
v=MCPv1; k=ed25519; p=7D3U5rufgNXb/lH2MthTRZdDzEGeE7/Jvg8YkiArQc8=
Authentication requires the ed25519 private key inhex formatthat corresponds to the public key in the DNS record. Ask the team lead for this key — it's stored in the team's password manager / vault.
If you need to regenerate the keypair (this invalidates the current DNS record and requires updating it):
- Generate a new ed25519 keypair (e.g.,openssl genpkey -algorithm Ed25519 -out key.pem)
- Extract the raw 32-byte private key seed and convert to hex:
openssl pkey -in key.pem -outform DER | tail -c 32 | xxd -p -c 32
- Extract the public key in base64 for the DNS TXT record:
openssl pkey -in key.pem -pubout -outform DER | tail -c 32 | base64
- Update the DNS TXT record ononesource.iowith the new public key:
v=MCPv1; k=ed25519; p=<base64-public-key>
- Wait for DNS propagation before attempting to log in.
Use the release script.Releases are normally run via the coordinated release script in the sre-services repo (scripts/release-mcp.mjs— seesre-services/RELEASING.md), which performs all of the steps below across both@one-source/api-mcpand@one-source/mcpin the correct order, including theserver.jsonbump andmcp-publisher publish. The First-Time Setup above is still the prerequisite for the registry step. The manual steps below are the fallback for registry-only fixes or when the script can't run.
Every time you release a new npm version, update the MCP Registry:
- Publish to npm(the registry validates the package exists, so this must happen first):
npm run build npm publish --access public
- Updateserver.json— set bothversionfields to match the new npm version:
{ "version": "x.y.z", ... "packages": [{ "version": "x.y.z", ... }] }
ThemcpNamefield inpackage.jsonmust be"io.onesource/mcp"and must match thenamefield inserver.json. This is already set — don't remove it. 3.Authenticate(tokens expire, so do this each time):
mcp-publisher login dns --domain onesource.io --private-key <ed25519-hex-private-key>
curl "https://registry.modelcontextprotocol.io/v0.1/servers?search=onesource"
Glama auto-syncs from the GitHub repo daily. No manual steps needed after a release — just make sure changes are pushed todevelop(the default branch). Theglama.jsonfile in the repo root controls ownership. Manual re-sync is available from theGlama admin panelafter claiming the server.
Use of this extension connects to the OneSource API. See theOneSource Privacy Policyfor details on how data is handled.
This is a web browser that enables your coding agent, such as Claude Code, to visit websites on your behalf and assist you in identifying bugs or creating UI test cases.
Extentos is a multi-vendor development platform for adding smart-glasses capabilities to existing iOS and Android apps. The simplest analogy is Stripe for smart glasses
An MCP server tailored for React Native–first development using Gluestack UI
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





