KeeSpecs
xyz.keespecs/keespecskeespecs.xyzstreamable-httpv1.0.0Scanned
Keeta network data for agents: free reads, plus x402 quotes for paid reports. No key needed.
39 tools: 3 do something that can't be undone, 15 change things and 21 only read.
- Reads private data · 2
- Reads text others write · 39
- Can send data out · 3
- 3 findings
Anlyon alternative
18 of these tools change something. Run those as governed actions.
Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.
Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.
Import an OpenAPI spec →Tools
Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.
39 tools
Can't be undone 3Claude Code: ask
quote_bridge_routeWhether a published one-hop bridge path exists between two chains for a token.Reads text others writeCan send data out1 finding
Why it is in this group
- The input addresses people (input.to): what it sends cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe input takes a destination (input.to): what the tool writes goes there.
Findings
- Warn
The server marks "quote_bridge_route" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The input addresses people (input.to): what it sends cannot be taken back.
Description, as the server wrote it Whether a published one-hop bridge path exists between two chains for a token. Not a quote or a transfer. Returns the x402 payment quote for this read (price, network, asset, pay-to, and the exact URL). It does not return data. To buy, GET the returned URL over HTTP and pay with x402; check get_x402_health first.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
quote_convert_checkGo, caution or no-go before a convert or bridge on Keeta.Reads text others writeCan send data out1 finding
Why it is in this group
- The name "quote_convert_check" says "convert": a word for a change.
- The input addresses people (input.to): what it sends cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe input takes a destination (input.to): what the tool writes goes there.
Findings
- Warn
The server marks "quote_convert_check" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "quote_convert_check" says "convert": a word for a change.
Description, as the server wrote it Go, caution or no-go before a convert or bridge on Keeta. Not a quote or a guarantee. Returns the x402 payment quote for this read (price, network, asset, pay-to, and the exact URL). It does not return data. To buy, GET the returned URL over HTTP and pay with x402; check get_x402_health first.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
quote_stablecoin_fxPeg check for Keeta's same-currency stablecoin anchor.Reads text others writeCan send data out1 finding
Why it is in this group
- The input addresses people (input.to): what it sends cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- outboundThe input takes a destination (input.to): what the tool writes goes there.
Findings
- Warn
The server marks "quote_stablecoin_fx" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The input addresses people (input.to): what it sends cannot be taken back.
Description, as the server wrote it Peg check for Keeta's same-currency stablecoin anchor. Not an FX rate. Returns the x402 payment quote for this read (price, network, asset, pay-to, and the exact URL). It does not return data. To buy, GET the returned URL over HTTP and pay with x402; check get_x402_health first.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
Changes things 15Claude Code: ask
quote_address_checkWhether a Keeta address has history, with a 0-100 score.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Whether a Keeta address has history, with a 0-100 score. Not proof of personhood. Returns the x402 payment quote for this read (price, network, asset, pay-to, and the exact URL). It does not return data. To buy, GET the returned URL over HTTP and pay with x402; check get_x402_health first.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
quote_alpacaAlpacaDEX pools with 24-hour volume, priced in KTA.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it AlpacaDEX pools with 24-hour volume, priced in KTA. Returns the x402 payment quote for this read (price, network, asset, pay-to, and the exact URL). It does not return data. To buy, GET the returned URL over HTTP and pay with x402; check get_x402_health first.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
quote_anchorsNewest movement of Keeta's anchors in one activity page, and the median block fee.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Newest movement of Keeta's anchors in one activity page, and the median block fee. Returns the x402 payment quote for this read (price, network, asset, pay-to, and the exact URL). It does not return data. To buy, GET the returned URL over HTTP and pay with x402; check get_x402_health first.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
quote_bridge_speedHow fast transfers move into and out of Keeta, measured on Keeta only.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it How fast transfers move into and out of Keeta, measured on Keeta only. Returns the x402 payment quote for this read (price, network, asset, pay-to, and the exact URL). It does not return data. To buy, GET the returned URL over HTTP and pay with x402; check get_x402_health first.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
quote_changesStored change history.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Stored change history. Returns the x402 payment quote for this read (price, network, asset, pay-to, and the exact URL). It does not return data. To buy, GET the returned URL over HTTP and pay with x402; check get_x402_health first.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
quote_deskDesk: one combined read in place of several single reads, priced per call.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Desk: one combined read in place of several single reads, priced per call. Returns the x402 payment quote for this read (price, network, asset, pay-to, and the exact URL). It does not return data. To buy, GET the returned URL over HTTP and pay with x402; check get_x402_health first.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
quote_moversCommunity tokens and official stablecoins ranked by send count.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Community tokens and official stablecoins ranked by send count. Returns the x402 payment quote for this read (price, network, asset, pay-to, and the exact URL). It does not return data. To buy, GET the returned URL over HTTP and pay with x402; check get_x402_health first.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
quote_networkLive throughput and settlement time in one call.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Live throughput and settlement time in one call. Returns the x402 payment quote for this read (price, network, asset, pay-to, and the exact URL). It does not return data. To buy, GET the returned URL over HTTP and pay with x402; check get_x402_health first.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
quote_persist_checkPer-account check before storing data on Keeta.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Per-account check before storing data on Keeta. Returns the x402 payment quote for this read (price, network, asset, pay-to, and the exact URL). It does not return data. To buy, GET the returned URL over HTTP and pay with x402; check get_x402_health first.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
quote_price_crossingsWhen the price marks crossed the 1% line or came back inside it.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it When the price marks crossed the 1% line or came back inside it. Returns the x402 payment quote for this read (price, network, asset, pay-to, and the exact URL). It does not return data. To buy, GET the returned URL over HTTP and pay with x402; check get_x402_health first.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
quote_pricesPrice check: two price marks for KTA and whether they agree within 1%.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Price check: two price marks for KTA and whether they agree within 1%. Returns the x402 payment quote for this read (price, network, asset, pay-to, and the exact URL). It does not return data. To buy, GET the returned URL over HTTP and pay with x402; check get_x402_health first.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
quote_pulseLedger totals, tx/s over the last minute, and the latest blocks.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Ledger totals, tx/s over the last minute, and the latest blocks. Returns the x402 payment quote for this read (price, network, asset, pay-to, and the exact URL). It does not return data. To buy, GET the returned URL over HTTP and pay with x402; check get_x402_health first.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
quote_regimeWhether Keeta's rail is quiet or slow over the last hour.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Whether Keeta's rail is quiet or slow over the last hour. Not a forecast. Returns the x402 payment quote for this read (price, network, asset, pay-to, and the exact URL). It does not return data. To buy, GET the returned URL over HTTP and pay with x402; check get_x402_health first.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
quote_settlementMedian and p95 settlement time across representatives, 15-minute window.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Median and p95 settlement time across representatives, 15-minute window. Returns the x402 payment quote for this read (price, network, asset, pay-to, and the exact URL). It does not return data. To buy, GET the returned URL over HTTP and pay with x402; check get_x402_health first.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
quote_token_checkWhether a Keeta token named by ticker or address is the official one.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Whether a Keeta token named by ticker or address is the official one. Pass token or symbol, not both. Returns the x402 payment quote for this read (price, network, asset, pay-to, and the exact URL). It does not return data. To buy, GET the returned URL over HTTP and pay with x402; check get_x402_health first.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
Only reads 21Show 21 read-only tools
get_accountHead block, height, representative, published name and balances for one address.Reads text others writeNo findings
Why it is in this group
- The name "get_account" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Head block, height, representative, published name and balances for one address. Free.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
get_activityLatest confirmed events that touched an address, up to 8.Reads text others writeNo findings
Why it is in this group
- The name "get_activity" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Latest confirmed events that touched an address, up to 8. Free.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
get_balanceOne token balance on one Keeta address.Reads text others writeNo findings
Why it is in this group
- The name "get_balance" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it One token balance on one Keeta address. Free.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
get_blockOne Keeta block by its 64-character hash.Reads text others writeNo findings
Why it is in this group
- The name "get_block" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it One Keeta block by its 64-character hash. Amounts are ledger integers. Free.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
get_directoryEvery token in the Keeta currency map with its reported supply.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "get_directory" says "get": a word for reading.
What it can reach
- private-dataThe name "get_directory" says "get" and "directory": it reads files.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Every token in the Keeta currency map with its reported supply. Free.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
get_ecosystemThe KeeSpecs directory: Keeta's own products and apps, plus community entries seeded from their own public pages.Reads private dataReads text others writeNo findings
Why it is in this group
- The name "get_ecosystem" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "directory": it reads files.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it The KeeSpecs directory: Keeta's own products and apps, plus community entries seeded from their own public pages. Community entries are unclaimed or self-claimed, not verified by KeeSpecs. Not a ranking. Free.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
get_outboxLatest blocks an address itself published, up to 8.Reads text others writeNo findings
Why it is in this group
- The name "get_outbox" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Latest blocks an address itself published, up to 8. Free.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
get_permissionsWho may act on an account.Reads text others writeNo findings
Why it is in this group
- The name "get_permissions" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Who may act on an account. Read only. Free.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
get_portfolioEvery token one address holds, up to 40.Reads text others writeNo findings
Why it is in this group
- The name "get_portfolio" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Every token one address holds, up to 40. Free.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
get_priceDollar price of KTA from the deepest pool, with 1-hour and 24-hour change.Reads text others writeNo findings
Why it is in this group
- The name "get_price" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Dollar price of KTA from the deepest pool, with 1-hour and 24-hour change. Not a forecast. Free.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
get_providersKeeta's published anchor providers and what their metadata says they connect.Reads text others writeNo findings
Why it is in this group
- The name "get_providers" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Keeta's published anchor providers and what their metadata says they connect. Not a quote. Free.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
get_representativesKeeta representatives holding voting weight, heaviest first.Reads text others writeNo findings
Why it is in this group
- The name "get_representatives" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Keeta representatives holding voting weight, heaviest first. Free.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
get_storage_quotasCurrent Keeta storage limits: max object size, objects and bytes per user.Reads text others writeNo findings
Why it is in this group
- The name "get_storage_quotas" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Current Keeta storage limits: max object size, objects and bytes per user. Free.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
get_supplyOn-chain supply of KTA, USDC, EURC and cbBTC.Reads text others writeNo findings
Why it is in this group
- The name "get_supply" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it On-chain supply of KTA, USDC, EURC and cbBTC. Token amounts, not prices. Free.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
get_tokenName, code, decimals and supply of one Keeta token.Reads text others writeNo findings
Why it is in this group
- The name "get_token" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Name, code, decimals and supply of one Keeta token. Free.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
get_x402_healthWhether the Keeta x402 facilitator answers right now.Reads text others writeNo findings
Why it is in this group
- The name "get_x402_health" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Whether the Keeta x402 facilitator answers right now. If it is down, paid reads cannot settle. Free.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
list_skillsList KeeSpecs skills: which read to call and when.Reads text others writeNo findings
Why it is in this group
- The name "list_skills" says "list": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it List KeeSpecs skills: which read to call and when. Free.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
lookup_usernameA keeta.xyz name to its Keeta address, or an address back to its name.Reads text others writeNo findings
Why it is in this group
- The name "lookup_username" says "lookup": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it A keeta.xyz name to its Keeta address, or an address back to its name. Pass both to check they still match. Free.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
quote_statusThree pass/fail/unknown checks for this minute: ledger activity, settlement time, price agreement.Reads text others writeNo findings
Why it is in this group
- The name "quote_status" says "status": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Three pass/fail/unknown checks for this minute: ledger activity, settlement time, price agreement. Returns the x402 payment quote for this read (price, network, asset, pay-to, and the exact URL). It does not return data. To buy, GET the returned URL over HTTP and pay with x402; check get_x402_health first.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
read_skillReturn one KeeSpecs skill as Markdown (for example read-price).Reads text others writeNo findings
Why it is in this group
- The name "read_skill" says "read": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Return one KeeSpecs skill as Markdown (for example read-price). Free.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
search_tokensTicker, name or description to matching Keeta token addresses.Reads text others writeNo findings
Why it is in this group
- The name "search_tokens" says "search": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Ticker, name or description to matching Keeta token addresses. Official addresses first. Free.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
234 paths in this server alone from private data, through text someone else wrote, to a way out. Denying 2 private-data tools breaks every one.
- Reads private data2
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write39
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out3
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
{
"permissions": {
"deny": [
"mcp__keespecs__get_directory",
"mcp__keespecs__get_ecosystem"
]
}
}Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Findings
Matches of fixed checks, with the text they matched.
The server marks "quote_bridge_route" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The input addresses people (input.to): what it sends cannot be taken back.
The server marks "quote_stablecoin_fx" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The input addresses people (input.to): what it sends cannot be taken back.
The server marks "quote_convert_check" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"openWorldHint":true}; The name "quote_convert_check" says "convert": a word for a change.
History
Changes to its tool definitions and to its remote endpoint, newest first.
No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http keespecs https://keespecs.xyz/mcpclaude mcp add --transport http keespecs https://keespecs.xyz/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__keespecs__list_skills",
"mcp__keespecs__read_skill",
"mcp__keespecs__get_price",
"mcp__keespecs__lookup_username",
"mcp__keespecs__search_tokens",
"mcp__keespecs__get_x402_health",
"mcp__keespecs__get_token",
"mcp__keespecs__get_block",
"mcp__keespecs__get_balance",
"mcp__keespecs__get_supply",
"mcp__keespecs__get_representatives",
"mcp__keespecs__get_directory",
"mcp__keespecs__get_ecosystem",
"mcp__keespecs__get_providers",
"mcp__keespecs__get_account",
"mcp__keespecs__get_portfolio",
"mcp__keespecs__get_activity",
"mcp__keespecs__get_outbox",
"mcp__keespecs__get_permissions",
"mcp__keespecs__get_storage_quotas",
"mcp__keespecs__quote_status"
],
"ask": [
"mcp__keespecs__quote_prices",
"mcp__keespecs__quote_price_crossings",
"mcp__keespecs__quote_regime",
"mcp__keespecs__quote_settlement",
"mcp__keespecs__quote_pulse",
"mcp__keespecs__quote_token_check",
"mcp__keespecs__quote_movers",
"mcp__keespecs__quote_alpaca",
"mcp__keespecs__quote_anchors",
"mcp__keespecs__quote_bridge_route",
"mcp__keespecs__quote_changes",
"mcp__keespecs__quote_stablecoin_fx",
"mcp__keespecs__quote_address_check",
"mcp__keespecs__quote_bridge_speed",
"mcp__keespecs__quote_desk",
"mcp__keespecs__quote_network",
"mcp__keespecs__quote_convert_check",
"mcp__keespecs__quote_persist_check"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as keespecs. Review it before you use it.
Capability tags behind 39 rules
- mcp__keespecs__list_skills untrusted-input
- mcp__keespecs__read_skill untrusted-input
- mcp__keespecs__get_price untrusted-input
- mcp__keespecs__lookup_username untrusted-input
- mcp__keespecs__search_tokens untrusted-input
- mcp__keespecs__get_x402_health untrusted-input
- mcp__keespecs__get_token untrusted-input
- mcp__keespecs__get_block untrusted-input
- mcp__keespecs__get_balance untrusted-input
- mcp__keespecs__get_supply untrusted-input
- mcp__keespecs__get_representatives untrusted-input
- mcp__keespecs__get_directory private-data, untrusted-input
- mcp__keespecs__get_ecosystem private-data, untrusted-input
- mcp__keespecs__get_providers untrusted-input
- mcp__keespecs__get_account untrusted-input
- mcp__keespecs__get_portfolio untrusted-input
- mcp__keespecs__get_activity untrusted-input
- mcp__keespecs__get_outbox untrusted-input
- mcp__keespecs__get_permissions untrusted-input
- mcp__keespecs__get_storage_quotas untrusted-input
- mcp__keespecs__quote_prices untrusted-input
- mcp__keespecs__quote_price_crossings untrusted-input
- mcp__keespecs__quote_status untrusted-input
- mcp__keespecs__quote_regime untrusted-input
- mcp__keespecs__quote_settlement untrusted-input
- mcp__keespecs__quote_pulse untrusted-input
- mcp__keespecs__quote_token_check untrusted-input
- mcp__keespecs__quote_movers untrusted-input
- mcp__keespecs__quote_alpaca untrusted-input
- mcp__keespecs__quote_anchors untrusted-input
- mcp__keespecs__quote_bridge_route untrusted-input, outbound
- mcp__keespecs__quote_changes untrusted-input
- mcp__keespecs__quote_stablecoin_fx untrusted-input, outbound
- mcp__keespecs__quote_address_check untrusted-input
- mcp__keespecs__quote_bridge_speed untrusted-input
- mcp__keespecs__quote_desk untrusted-input
- mcp__keespecs__quote_network untrusted-input
- mcp__keespecs__quote_convert_check untrusted-input, outbound
- mcp__keespecs__quote_persist_check untrusted-input
Pin
Keep the decision: fail CI when the tools change, follow every change, or show a badge.
Pin in CI
Fail a build when the tools you reviewed are not the tools the server serves today.
curl -s "https://anlyon.dev/api/v1/servers/xyz.keespecs/keespecs/verify?hash=dfe388e93815b005de96e38e4d47d9123a48858cbdbc917bb2087684a10d0ef4" | jq -e '.changed == false'Pinned hash dfe388e93815, from Nov 2, 2026, 23:18 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/xyz.keespecs/keespecs/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/xyz.keespecs/keespecs)Source: MCP Registry. Synced Nov 2, 2026, 23:18 UTC.