Agentic Keychain
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Agent Skill ROI Registry & Benchmarking. It sells skills for log triage and repository mapping.
| Author | com.agentickeychain |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2547 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Agentic Keychain": {
"url": "https://agentickeychain.com/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (11)
resolve_taskread-onlyDescribe a task in plain words and get one compact answer: whether a registry capability is worth using for it, from registry-run benchmarks only, and the next step. Use when: you have a task and no capability name, and want one decision word (use, do_not_use, use_free_alternative, insufficient_evidence, blocked_by_constraints or no_match) with its reason codes. Not for: the full arithmetic, the offer and the operator message (evaluate_capability with the same inputs), a plain list of matches (search_capabilities) or a capability you can already name (get_capability). Input: task, plus optional model, expected_runs, baseline_cost_estimate_usd, context and constraints; any other field is refused with the allowed list. Output: ak.resolve.v1 with decision, capability id, reason codes, the measured saving per run with its interval or null, the estimate at your own baseline with its break-even runs or null, confidence, evidence label, price, free alternatives, next action, evaluation_id and the tool that gives the detail. do_not_use and no_match are normal answers.
Parameters:
task(required) — string — Plain description of the task you are about to do (at most 4000 characters).model— string — The model you run on, e.g. claude-sonnet-5. Savings are reported only for measured models.context— object — Facts about your situation, keyed by the capability's parameter names (e.g. log_lines).constraints— object — Limits you set for the answer; a capability outside them is reported as blocked, with the reason code.expected_runs— integer — How many times you expect to perform this kind of task.baseline_cost_estimate_usd— number — What one run of this task costs you today without the capability, in USD.
Hints: read-only yes · destructive no · idempotent yes · open-world no
evaluate_capabilityread-onlyDecide whether a registry capability is worth using or buying for your task, from registry-run benchmarks only. Use when: you have a task and want a recommend, do_not_recommend or undetermined answer with the arithmetic; name a capability to weigh only that one, or leave it out and the registry weighs its closest matches. Not for: one short answer without the arithmetic (resolve_task), a plain list of matches (search_capabilities), two to five named candidates side by side (compare_capabilities), or the break-even figures of one capability without a task (estimate_roi). Input: a plain task description; give model, expected_runs and baseline_cost_estimate_usd for a money estimate, and context for the conditions the capability declares. Output: ak.evaluation.v1 with decision, reasons, expected effect, price, confidence, operator_message, evaluation_id, next steps and an ak.offer.v1 offer (status, next_action, economics, the four evidence kinds listed apart). do_not_recommend is a normal answer.
Parameters:
task(required) — string — Plain description of the task you are about to do (at most 4000 characters).model— string — The model you run on, e.g. claude-sonnet-5. Savings are reported only for measured models.context— object — Facts about your situation, keyed by the capability's parameter names (e.g. log_lines).capability— string — Capability id (ak:publisher:name or ak:publisher:name:x.y.z), ak:// URI or slug.constraints— object — Limits you set for the answer; a capability outside them is reported as blocked, with the reason code.budget_policy— object — Your operator's spending policy; the answer says whether a purchase fits it. Every purchase still needs human approval.expected_runs— integer — How many times you expect to perform this kind of task.baseline_cost_estimate_usd— number — What one run of this task costs you today without the capability, in USD.
Hints: read-only yes · destructive no · idempotent yes · open-world no
search_capabilitiesread-onlySearch capability names, summaries, tasks and use-when conditions by keywords, ranked by lexical relevance only, never by payment. Use when: you want to see which capabilities exist for a topic, or you know part of a name. Not for: deciding whether one fits your task (resolve_task, or evaluate_capability for the full arithmetic) or reading a capability you can already name (get_capability). Input: search words, at most 500 characters; no earlier call is needed. Output: ak.search.v1 with id, name, summary, relevance, state, price and the strongest evidence label of each result, and no decision.
Parameters:
query(required) — string — Search words (at most 500 characters).limit— integer — How many results to return, from 1 to 50 (default 10).
Hints: read-only yes · destructive no · idempotent yes · open-world no
compare_capabilitiesread-onlyAssess two to five named capabilities side by side for the same inputs, with the same method and ak.offer.v1 offer shape as evaluate_capability. Use when: you already hold a shortlist of capability ids and want each one's decision, reasons and offer in one answer. Not for: finding candidates (search_capabilities) or a single capability (evaluate_capability). Input: the capability ids, plus the optional task, model, expected_runs, baseline_cost_estimate_usd, context and constraints that evaluate_capability reads. Output: ak.comparison.v1 with the results ranked by decision, lower-bound net saving, relevance and capability id, each with its reasons and an ak.offer.v1 offer.
Parameters:
capabilities(required) — array — Two to five capabilities to compare, each as an id, ak:// URI or slug.task— string — Plain description of the task you are about to do (at most 4000 characters).model— string — The model you run on, e.g. claude-sonnet-5. Savings are reported only for measured models.context— object — Facts about your situation, keyed by the capability's parameter names (e.g. log_lines).constraints— object — Limits you set for the answer; a capability outside them is reported as blocked, with the reason code.expected_runs— integer — How many times you expect to perform this kind of task.baseline_cost_estimate_usd— number — What one run of this task costs you today without the capability, in USD.
Hints: read-only yes · destructive no · idempotent yes · open-world no
estimate_roiread-onlyPer measured model: expected saving per run, break-even runs and net saving over expected_runs, with intervals, for one capability and no task. Use when: you know the capability and want its economics on each model the registry measured. Not for: a use-or-not answer for a task (evaluate_capability) or several candidates (compare_capabilities). Input: a capability id; add model to keep one model, and expected_runs with baseline_cost_estimate_usd for an estimate at your scale. Output: ak.roi.v1 with one economics entry per measured model; break-even runs is null when the interval does not show a saving, and your estimate is left out where success is not accepted or your baseline lies outside the measured range.
Parameters:
capability(required) — string — Capability id (ak:publisher:name or ak:publisher:name:x.y.z), ak:// URI or slug.model— string — The model you run on, e.g. claude-sonnet-5. Savings are reported only for measured models.expected_runs— integer — How many times you expect to perform this kind of task.baseline_cost_estimate_usd— number — What one run of this task costs you today without the capability, in USD.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_capabilityread-onlyThe capability's card: purpose, use-when and do-not-use-when conditions, permissions, price, evidence summary, trust checks, links and a task-independent ak.offer.v1 offer. Use when: you can name a capability and want its facts, or want to check the conditions an evaluation asked about. Not for: an answer for your task (evaluate_capability) or the full benchmark records (get_benchmark). Input: a capability id, ak:// URI or slug, from a search, an evaluation or a page. Output: ak.capability.v1 with the card fields, parameters, versions, terms, evidence, trust and links.
Parameters:
capability(required) — string — Capability id (ak:publisher:name or ak:publisher:name:x.y.z), ak:// URI or slug.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_benchmarkread-onlyRegistry-run benchmark summaries (labelled), publisher claims (labelled PUBLISHER CLAIMED) and the signed attestations of one capability. Use when: you want the measurements behind an answer (paired runs, model, fixtures, method) or want to check them yourself. Not for: an answer for your task (evaluate_capability) or artifact hashes and the log proof (get_provenance). Input: a capability id, ak:// URI or slug. Output: ak.benchmark.v1 with the evidence, the publisher claims, the attestations, the method and the limitations; publisher claims never decide anything.
Parameters:
capability(required) — string — Capability id (ak:publisher:name or ak:publisher:name:x.y.z), ak:// URI or slug.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_provenanceread-onlyArtifact hash, manifest hash, signed publisher and registry attestations and a transparency-log inclusion proof for one capability. Use when: you want to check that a package is the one the registry published and signed. Not for: benchmark results (get_benchmark) or the card (get_capability). Input: a capability id, ak:// URI or slug. Output: ak.provenance.v1 with the hashes, the attestations, an RFC 9162 inclusion proof against the signed tree head, the trust checks and the keys URL.
Parameters:
capability(required) — string — Capability id (ak:publisher:name or ak:publisher:name:x.y.z), ak:// URI or slug.
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_quoteread-onlyA signed 15-minute price quote with the hosted checkout link. It charges nothing; a purchase requires operator approval in the hosted checkout. Use when: your operator wants the price and the checkout link of a capability that is for sale, for example after an evaluation answered recommend. Not for: deciding whether a capability is worth it (evaluate_capability); a free capability needs no quote. Input: the capability id and, if you evaluated first, the evaluation_id, which links the quote to that evaluation. Output: a quote_id and signed claims bound to the capability version, price, currency, terms and expiry, the checkout link and the unlock request; the price comes from the registry record only.
Parameters:
capability(required) — string — Capability id (ak:publisher:name or ak:publisher:name:x.y.z), ak:// URI or slug.evaluation_id— string — The evaluation_id from evaluate_capability, if you evaluated first.
Hints: read-only yes · destructive no · idempotent no · open-world no
unlock_capabilityExchange the license key from the checkout (a purchase requires operator approval) for a signed entitlement and a download link that lasts at most 15 minutes. How the key is handled: the privacy page at /legal/privacy/. Repeating it with the same key is safe and never charges. Use when: your operator completed the hosted checkout and gave you the license key. Not for: a price or a checkout link (get_quote); a free capability downloads from its page. Input: the capability id and the license key, plus quote_id and evaluation_id when you have them. Output: a signed entitlement, a purchase_ref for report_outcome and the download link.
Parameters:
capability(required) — string — Capability id (ak:publisher:name or ak:publisher:name:x.y.z), ak:// URI or slug.license_key(required) — string — License key from the checkout.quote_id— string — The quote_id of the quote the purchase followed, if any (links the records; never changes the price).evaluation_id— string — The evaluation_id from evaluate_capability, if you evaluated first.
Hints: read-only no · destructive no · idempotent yes · open-world yes
report_outcomeReport how a capability worked for you. Stored as AGENT REPORTED; it never changes evidence labels, trust or ranking. Only the listed fields are accepted; no task text is kept. Use when: you ran a capability, or decided not to, and can say whether the task succeeded. Not for: questions about a capability (get_capability, get_benchmark). Input: the capability id and success; add evaluation_id or purchase_ref to link the report, the optional token, tool-call, latency and cost counts, and failure_reason only with success false. Output: whether the report was stored, its label and, for a failed paid capability, the remedy policy.
Parameters:
capability(required) — string — Capability id (ak:publisher:name or ak:publisher:name:x.y.z), ak:// URI or slug.success(required) — boolean — Whether the task reached its goal.model— string — The model you run on, e.g. claude-sonnet-5. Savings are reported only for measured models.cost_usd— number — What the run cost you in USD.tokens_in— integer — Input tokens the run used.latency_ms— integer — Wall-clock time of the run in milliseconds.tokens_out— integer — Output tokens the run used.tool_calls— integer — Tool calls the run made.purchase_ref— string — The purchase_ref from unlock_capability, if you bought the capability.evaluation_id— string — The evaluation_id from evaluate_capability, if you evaluated first.failure_reason— string — Only with success false.used_capability— boolean — Whether the capability was used in this run; false reports a run done without it.baseline_cost_estimate_usd— number — What one run of this task costs you without the capability, in USD.
Hints: read-only no · destructive no · idempotent no · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.