
FirstKey
io.github.FirstKeyHQPublished by GitHub account FirstKeyHQv0.1.0Updated Oct 24, 2026
FirstKey MCP: agent wallets, free cycles faucet, and one-command site deploys on ICP.
The publisher's own server: First
Overview
Remote MCP server on the Internet Computer that lets an assistant create agent wallets, claim free cycles, deploy static sites and read swap quotes.
- What you can do
- Create an Ed25519 wallet and return its principal plus a one-time private key
- Claim a one-time free cycles grant and check a principal's cycles balance
- Deploy a static site canister, upload large files in chunks, and get the live site URL
- Get a Fuel card-payment link to refuel an agent
- Fetch read-only ICPSwap swap quotes between tokens or ledger principals
- When to use it
- Useful when an agent needs its own on-chain identity and hosting on the Internet Computer without running infrastructure: spinning up a wallet, getting starter cycles, publishing a small static site, or checking swap prices before acting.
- Requirements
- A remote Streamable HTTP endpoint at mcp.firstkey.io; no package, API key or environment variable is declared. The client must speak JSON-RPC 2.0 over HTTP and accept plain JSON responses; the server is stateless and CORS is open.
Installation
In SourceWeft
- Open FirstKey in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Use with an agent
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.FirstKeyHQ%2Ffirstkey-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Other MCP clients
Add this to your client's mcpServers config.
{
"mcpServers": {
"firstkey": {
"type": "http",
"url": "https://mcp.firstkey.io/mcp"
}
}
}README
FirstKey MCP Server
An MCP (Model Context Protocol) server running as a canister on the Internet Computer. One integration point that every MCP-compatible agent framework consumes natively: LangChain/LangGraph, CrewAI, AutoGen, Vercel AI SDK, OpenAI Agents SDK, Google ADK, Claude Desktop, Cursor, and more.
Endpoint: POST https://mcp.firstkey.io/mcp (JSON-RPC 2.0, Streamable HTTP)
Plain JSON responses, stateless (no session ids). CORS enabled (*).
Tools
Quick test
Architecture
http_request(query): servesinitialize,tools/list,ping, CORS preflight,/.well-known/ic-domains, and a landing page.tools/callupgrades tohttp_request_update(update context) because it makes inter-canister calls:raw_rand(wallet), the faucet'sclaim_for(grants), the cycles ledger (balances), and the management canister (create_canister_with_extra_cycles/install_code/update_settingsfor deploys).- The static-site host WASM (
firstkey-static-host) is embedded viainclude_bytes!and installed into every deployed site canister. - Deploy pool: the canister's own cycles balance. One free deploy per agent principal (tracked in stable memory); when the pool can't cover a deploy the tool returns the Fuel link instead.
Build & deploy
Custom domain (mcp.firstkey.io)
DNS records needed at Porkbun (see DNS.md):
CNAME mcp.firstkey.io→mcp.firstkey.io.icp1.ioTXT _canister-id.mcp.firstkey.io→<canister-id>CNAME _acme-challenge.mcp.firstkey.io→_acme-challenge.mcp.firstkey.io.icp2.io
Then validate + register:
The canister already serves /.well-known/ic-domains.
Registry publishing
- Official MCP registry (
registry.modelcontextprotocol.io): seeregistry/server.json(draft). Publish via GitHub OIDC from the repo's CI. - Smithery (
smithery.ai/new): submit the public HTTPS URL oncemcp.firstkey.iois live.
Faucet counterpart
claim_for(agent) lives on the faucet canister (3l667-lyaaa-aaaam-ajkqa-cai,
source ~/workspace/firstkey-faucet/). It enforces the once-per-principal rule
against the agent principal and performs the standard 1T ledger grant. Only the
principal set via set_mcp_canister (controller-only) may call it.
Source: README.md at commit 90944a4
Tools
0Version history
1- v0.1.0LatestSep 24, 2026
Score
75% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 daysRequired25 pts
- Auth declaredRequired10 pts
- Tools listedRequired15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Declare a license in the repository or the registry entry.
Other First integrations
First
cx.firstOfficial publisher
First is a remote MCP endpoint for First's AI-powered hiring platform, letting an assistant help find and progress talent.
First AI Employee
Published by GitHub account Strah0ta
Remote MCP server that gives an assistant access to an AI receptionist's business records and approved front-desk workflows.

FirstAGI Arena
Published by GitHub account realbtr
Browses FirstAGI Arena's scored research challenges, reads project docs, runs tests and experiments in a local clone, and validates findings.

Binance (security-first) + crypto analyst
Published by GitHub account KumailQazi
Security-first Binance MCP. 26 tools, human-confirmed spot trades, offline quant research.

First Epss Mcp Server
Published by GitHub account cyanheads
Looks up FIRST EPSS exploitation scores and daily history for CVEs, finds CVEs by score threshold, and tiers them using caller-supplied CVSS severity.