Connect EmblemAI over hosted MCP.
Use the hosted MCP endpoint when you want Claude Code, GitHub Copilot CLI, or another MCP client to call EmblemAI tools without building a wrapper around the app.
The shortest path is simple: copy a vault API key from the app, point your client at POST /api/mcp, and send that header from the first request.
- Log in to EmblemAI.
- Open Settings -> Vault Access Key and copy your key.
- Configure your client to call
https://emblemvault.ai/api/mcp. - Send either
x-api-keyorAuthorization: Bearer <JWT>.
Hosted MCP is auth-first. Your client needs headers on initialize, tools/list, and tools/call.
Public endpoint
Base URL: https://emblemvault.ai/api/mcp
- Transport: hosted HTTP MCP
- Protocol version:
2025-06-18 - Methods:
initialize,ping,tools/list,tools/call - CORS preflight is enabled for hosted client integrations.
Authentication
Send exactly one of these auth surfaces on every MCP request:
x-api-key: <apiKey>Authorization: Bearer <JWT>— either a user-issued Emblem token or one obtained via the hosted OAuth 2.0 flow atapi.emblemvault.ai/.well-known/oauth-authorization-server
API key is the easiest path for scripts and server-to-server calls. OAuth is the right choice for interactive clients like Claude Code — it handles install, consent, and token refresh without any secret to paste.
What the hosted MCP exposes
Read-only tools ship by default. State-changing (transaction) tools are opt-in via a single request header — once enabled they surface with a -transaction suffix so clients can filter them with a *-transaction wildcard.
- Coinglass market data
- advanced search and research tools
- Nansen analytics
- wallet and balance reads across major chains
- Bitcoin, ordinals, runes, and stamp research
- OpenSea and Emblem read-safe NFT surfaces
- transfers and sends across EVM, Solana, Bitcoin, Hedera
- swaps and buys (including ChangeNow cross-chain)
- prediction market order placement and redemption
- NFT listing, offers, and transfer flows
- Emblem vault creation, minting, and key reveal
- Conditional trading position create / update / cancel
Enable by sending x-mcp-transactions: enabled on every request. Omit the header (or any other value) to stay on the read-only surface.
Opt in to transaction tools
Transaction tools move value — they send, swap, trade, mint, and mutate vaults. Clients must opt in per connection by sendingx-mcp-transactions: enabled alongside your auth header. Without it, tools/list and tools/call behave as a pure research surface, and any transaction tool call returns Unknown tool.
When opted in, every transaction tool ships with a -transaction suffix (for example ethNativeSend-transaction, baseSwap-transaction). The suffix makes it trivial to scope allowlists with wildcards in clients that support pattern-based filtering, and it lets annotation-aware clients rely on the destructiveHint: true flag as a second signal.
GitHub Copilot CLI (key-based, transactions enabled):
{
"mcpServers": {
"emblemai": {
"type": "http",
"url": "https://emblemvault.ai/api/mcp",
"headers": {
"x-api-key": "YOUR_API_KEY",
"x-mcp-transactions": "enabled"
},
"tools": ["*"]
}
}
}Claude Code (key-based, transactions enabled):
claude mcp add --transport http EmblemAI https://emblemvault.ai/api/mcp \
--header "x-api-key: YOUR_API_KEY" \
--header "x-mcp-transactions: enabled"Client allowlist patterns — keep research-only surface even after opting in, or allow everything:
// Read-only surface only (default — no header needed)
"tools": ["*"]
// Opt in to everything including transactions
"tools": ["*"] // with x-mcp-transactions: enabled
// Opt in, then filter transactions out client-side by suffix
"tools": ["*", "!*-transaction"]OAuth flows don't let you add custom headers during consent, so the header-based opt-in is currently API key-first. For OAuth sessions, stick to the read-only surface or contact us for a token policy that pre-approves transactions.
Smoke test the endpoint
Want to verify auth and protocol handling before you wire a client? Start with a plain tools/list request.
curl https://emblemvault.ai/api/mcp \
-H 'Content-Type: application/json' \
-H 'MCP-Protocol-Version: 2025-06-18' \
-H 'x-api-key: YOUR_API_KEY' \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list",
"params": {}
}'Copy-paste client configs
These are the fastest review-ready ways to connect the hosted endpoint in real clients.
Save this as ~/.copilot/mcp-config.json or pass it session-only with --additional-mcp-config @file.
{
"mcpServers": {
"emblemai": {
"type": "http",
"url": "https://emblemvault.ai/api/mcp",
"headers": {
"x-api-key": "YOUR_API_KEY"
},
"tools": ["*"]
}
}
}The fastest path — no API key, no secret to paste. Run the command and Claude Code walks you through the hosted OAuth flow in your browser:
claude mcp add --transport http EmblemAI https://emblemvault.ai/api/mcpPrefer an API key (for headless agents or CI)? Use the key-based form:
claude mcp add --transport http EmblemAI https://emblemvault.ai/api/mcp --header "x-api-key: YOUR_API_KEY"If you want a shareable project config, use a standard.mcp.json file with the same hosted endpoint:
{
"mcpServers": {
"emblemai": {
"type": "http",
"url": "https://emblemvault.ai/api/mcp",
"headers": {
"x-api-key": "YOUR_API_KEY"
}
}
}
}If your Claude Desktop build only accepts local stdio MCP servers, bridge the hosted endpoint with mcp-remote inside claude_desktop_config.json.
{
"mcpServers": {
"emblemai": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://emblemvault.ai/api/mcp",
"--header",
"x-api-key:${EMBLEM_AI_API_KEY}"
],
"env": {
"EMBLEM_AI_API_KEY": "YOUR_API_KEY"
}
}
}
}If your Claude Desktop build exposes direct remote MCP connectors, use the same hosted URL and auth header instead of the bridge.
Run cline mcp and pick Add server. Pick Remote (HTTP), point at the hosted endpoint, choose Static headers, and pass both x-api-key and x-mcp-transactions:enabled in one comma-separated line.
$ cline mcp
┌ MCP Servers
│
◇ What would you like to do? Add server
◇ Server name EmblemAI
◇ Server type Remote (HTTP)
◇ Server URL https://emblemvault.ai/api/mcp
◇ Authentication Static headers
◇ Headers (KEY:VALUE, comma-separated)
│ x-api-key:YOUR_API_KEY, x-mcp-transactions:enabled
│
◆ Added "EmblemAI" to ~/.cline/data/settings/cline_mcp_settings.jsonCline runs an agent loop that calls the MCP tools, and that loop needs its own LLM provider — separate from EmblemAI MCP auth. The managed cline provider may carry a $0 balance; bring your own:
# Cline runs the agent loop with its own LLM provider —
# this is separate from EmblemAI MCP auth. The managed
# "cline" provider may carry a $0 balance; bring your own:
cline auth anthropic
# paste ANTHROPIC_API_KEY when prompted, then pick a model:
cline model claude-haiku-4-5-20251001Curl-verify the key against the endpoint first. Dev keys only work on dev.emblemvault.ai; prod keys only on emblemvault.ai.
Client notes worth knowing
- Tested locally in GitHub Copilot CLI and Claude Code and Cline.
- Copilot CLI tool allowlists flatten to names like
emblemai-getCoinglassCDRIIndex. - Claude Code tool allowlists use names like
mcp__emblemai__getCoinglassCDRIIndex. - Because the endpoint is auth-first, clients must send headers before they ask for
tools/list. - Transaction tools always carry the
-transactionsuffix when exposed — use*-transactionin client allowlists to scope or exclude the destructive surface. - Cline tool allowlists use names like
emblem__emblemListMyVaults(double-underscore server delimiter).
Related resources
- A2A auth docs: /docs/a2a-auth
- x402 discovery: /.well-known/x402
- Agent card: /.well-known/agent-card.json
