Skip to main content
Glama

FirstKey

Server Details

FirstKey MCP: agent wallets, free cycles faucet, and one-command site deploys on ICP.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
FirstKeyHQ/firstkey-mcp
GitHub Stars
0

TDQS

A4.3/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct action: checking balances, claiming grants, creating wallets, deploying sites, uploading chunks, and generating payment links. Even the two funding-related tools are clearly separated by free grant versus paid refuel.

Naming Consistency4/5

Most tools follow a clean verb_noun pattern like check_cycles, create_wallet, and deploy_site. deploy_upload_chunk is a minor deviation because it stacks two verbs awkwardly, but the overall style remains predictable and readable.

Tool Count5/5

Six tools is well-scoped for the server's purpose: wallet creation, cycle management, and static site deployment. Each tool has a clear role without unnecessary redundancy.

Completeness4/5

The core agent lifecycle is covered: create a wallet, fund it, check cycles, and deploy a static site. Minor gaps exist such as site management or removal operations, but agents can complete the primary workflow without dead ends.

Available Tools

6 tools
check_cyclesAInspect

Read an ICP principal's cycles balance on the cycles ledger.

ParametersJSON Schema
NameRequiredDescriptionDefault
principalYesICP principal (text form).

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. The word 'Read' clearly signals a non-mutating operation, and 'cycles ledger' provides useful scoping. It does not describe error cases or output format, but for a simple balance read these are minor omissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no filler. It front-loads the action and resource without wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read operation with full schema coverage, the description plus input schema is sufficient for an agent to select and invoke the tool correctly. The term 'cycles balance' makes the expected return value obvious even without an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already defines 'principal' as an 'ICP principal (text form)'. The description adds no new parameter semantics beyond reinforcing that the principal is whose balance is being read, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Read') and a specific resource ('an ICP principal's cycles balance on the cycles ledger'). This clearly differentiates it from sibling tools, which are all write/deploy/claim operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The use case is implied: call this when you need to check a principal's cycles balance. However, there is no explicit guidance about when not to use it or which alternative to prefer, so the guidance remains implicit rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

claim_faucet_grantAInspect

Claim the one-time free 1T cycles grant from the FirstKey faucet for an agent principal. One claim per principal, ever. The grant lands on the cycles ledger and funds the agent's first canister deploy.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentYesThe agent's ICP principal (text form) receiving the grant.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral burden. It discloses the effect (grant lands on cycles ledger and funds the first deploy) and the one-time limitation. However, it does not specify what happens on a second call (error, no-op, etc.) or the return format, leaving a gap for a mutating tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences, front-loaded with the action and the critical constraint. There is no fluff or repetition; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with no output schema, the description covers the purpose, effect, and key constraint. It omits error behavior on repeated claims, but this is a minor gap given the tool's simplicity. The description is sufficiently complete for an agent to know what to expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already describes the agent parameter accurately. The description adds no additional meaning beyond what the schema provides, so it does not enhance parameter understanding. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'claim', the resource 'one-time free 1T cycles grant from the FirstKey faucet', and the recipient 'an agent principal'. It also names the one-time constraint, which distinguishes it from sibling tools like check_cycles and get_fuel_link that serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states the 'one claim per principal, ever' constraint, which is a clear when-not to call repeatedly. It implies usage for the first canister deploy, but does not explicitly mention alternative tools or when to use them. This is adequate but not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_walletAInspect

Generate a fresh Ed25519 wallet for an AI agent: returns the ICP principal and the PKCS#8 PEM private key. The private key is returned exactly once over this call and is never stored anywhere. No signup, no on-chain registration — the keypair IS the wallet.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that the private key is returned exactly once and never stored, which is critical behavioral information. It also clarifies that no registration is involved. It does not mention any side effects or prerequisites, but for a wallet generation tool this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the primary purpose and outputs, and includes the key behavioral caveat (one-time return, no storage) without any fluff. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (no params, no output schema), but the description explains what is returned (principal and PEM key) and the one-time nature. It does not specify the exact return structure (e.g., JSON field names), but given the low complexity and the explicit mention of the two outputs, it is sufficiently complete for an agent to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema coverage is 100% (empty schema). Per the rubric, a baseline of 4 is appropriate for 0 parameters. The description adds no parameter-specific meaning because there are none to explain.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Generate'), a specific resource ('fresh Ed25519 wallet'), and explicitly names the outputs (ICP principal and PKCS#8 PEM private key). It is clearly distinct from all siblings (check_cycles, claim_faucet_grant, deploy_site, deploy_upload_chunk, get_fuel_link), none of which relate to wallet creation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it: when a new wallet is needed, and clarifies that no signup or on-chain registration is required, so it is the direct way to obtain a keypair. It does not explicitly name alternatives, but no sibling serves a similar purpose, so the context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

deploy_siteAInspect

Deploy a static website for an agent: creates a canister on the Internet Computer, installs the FirstKey static host, uploads every file, and returns the live https URL. The agent is added as a controller of its site canister. One free deploy per agent principal, funded from the FirstKey deploy pool; files must fit in one call (total under ~1.4 MB decoded) — use deploy_upload_chunk for larger files.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentYesThe agent's ICP principal — becomes a controller of the site canister.
filesYesFiles to publish. Include at least index.html.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the agent's controller role, the free-deploy funding mechanism, the ~1.4 MB decoded size limit, and the fallback tool. This goes well beyond a basic action statement and covers key side effects and constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, all information-dense and front-loaded with the core action. No filler, no redundant restatement of schema fields, and every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a deployment tool with no output schema and no annotations, the description covers the full process, output URL, cost/funding, controller role, size limit, and alternative tool. Nothing essential for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds meaningful context: the agent parameter's consequence (becomes controller) and the files parameter's size constraint and chunking alternative. That extra semantic value justifies a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: 'Deploy a static website for an agent' and enumerates the concrete steps (create canister, install host, upload files, return URL). Clearly distinguishes from the sibling deploy_upload_chunk by naming it explicitly for larger files.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'use deploy_upload_chunk for larger files', giving a direct when-to-use vs alternative condition. Also provides the one-free-deploy policy and size limit, which clarify when this tool is the right choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

deploy_upload_chunkAInspect

Upload one chunk of a large file to an already-deployed agent site (for files that don't fit in a single deploy_site call). Chunks are appended in order; set is_last on the final chunk to publish the file.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesSite path, e.g. assets/video.mp4
agentYesThe agent's ICP principal (must own the site).
is_lastYesTrue on the final chunk: assembles and publishes the file.
canisterYesThe site canister principal returned by deploy_site.
chunk_indexYes0-based chunk number. 0 starts a new upload for this path.
total_bytesNoTotal file size in bytes, as a decimal string (only used on the first chunk).
chunk_base64YesChunk bytes, base64-encoded.
content_typeNoMIME type (only used on the first chunk).

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries full disclosure burden. It discloses the stateful behavior clearly: chunks accumulate in order, and only the final chunk (is_last=true) assembles and publishes the file. It does not describe failure modes (e.g., out-of-order chunks or abandoned partial uploads) or auth requirements beyond the schema's agent ownership note, but the core behavioral contract is visible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler, front-loaded with the purpose and selection condition before the essential workflow detail. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 8 parameters fully documented in the schema and no output schema, the description covers the core chunked-upload workflow and ties it to the deploy_site sibling. The main gap is that it does not indicate what the tool returns or whether is_last produces a publish confirmation, but this is a minor omission for an otherwise well-specified stateful operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, giving a baseline of 3. The description adds relational meaning beyond individual parameter descriptions: it explains that chunk_index order matters ('Chunks are appended in order') and that is_last is the publication trigger. This cross-parameter semantics is genuinely useful and not directly inferable from the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Upload'), resource ('one chunk of a large file to an already-deployed agent site'), and names the sibling deploy_site as the alternative for files that fit in a single call. An agent can clearly tell what this tool is for without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly provides the decision context: use this tool when files 'don't fit in a single deploy_site call', referencing the sibling directly. It also encodes the workflow rule — chunks are appended in order, with is_last triggering publication — so an agent knows exactly how to complete the operation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updates
    • First observedcheck_cycles
    • First observedclaim_faucet_grant
    • First observedcreate_wallet
    • First observeddeploy_site
    • First observeddeploy_upload_chunk
    • First observedget_fuel_link

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables verifiable AI agent identity and reputation management on ICP via MCP, allowing agents to register, create handshake proofs, and verify credentials.
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    AgentKey is the execution layer between AI agents and the real internet. One MCP install gives your Claude / Cursor / n8n agent unified access to web search, scraping, and 20+ social platforms — no API juggling, one bill.
    643
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server for AgentPay — the payment gateway for autonomous AI agents. Fund a wallet once, give your agent the key, and it discovers, provisions, and pays for tool APIs on its own. One key, every tool.
    112 npm
    1
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.