# Keelage

> Token intelligence for Robinhood Chain: onchain and social data on any token, timestamped.

- name: io.github.keelage/mcp
- version: 0.4.0
- connection class: R0 (autonomous)
- trust: 79/100 flags: no-repository
- quality: 77/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.keelage%2Fmcp
- tools: https://api.protogrid.dev/v1/servers/io.github.keelage%2Fmcp/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "keelage": {
      "type": "http",
      "url": "https://mcp.keelage.ai/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 99
- freshness: 100
- provenance: 45
- drivers: +website +reachable +uptime-98% +updated-14d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 77/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 79 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 1 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 8 of 8 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: keelage_record (destructiveHint); keelage_pay (destructiveHint); keelage_scan (destructiveHint); …
- pass `tools.token_cost`: about 4,021 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 75 (weight 15)

- warn `stability.changes`: 15 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: deps.dev does not know @keelage/mcp@0.4.0

- tools: 8, about 4,021 tokens to load them all
- tool set hash: 608073df664e3c4ea7ff16587d9aa8c5
- tools last changed: 2026-10-11T10:45:26.326Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.keelage/mcp.svg)](https://protogrid.dev/servers/io.github.keelage/mcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-11 `keelage_today` changed (description, inputSchema)
  - before: What Keelage read today on Robinhood Chain, as the Today page shows it: this hour's and today's code passes (clean code / not clean / unread, with the reasons), today's activity passes (passes, with the tier and whether each was sized), today's sized passes, and the watch lines that fired on passed tokens (volume, momentum, price, the 10 largest wallets, original holders). One moment (moment) or all four. Free, never counted. Hosted server only: the local server has no store and says so.
  - after: What Keelage read today on Robinhood Chain, as the Today page shows it: this hour's and today's code passes (clean code / not clean / unread, with the reasons), today's activity passes (passes, with the tier and whether each was sized), today's sized passes, and the watch lines that fired on passed tokens (volume, momentum, price, the 10 largest wallets, original holders), plus signals: the research triggers crossed in the last 24 hours, on the rows they belong to. One moment (moment) or all four. Free, never counted. Hosted server only: the local server has no store and says so.
- 2026-10-11 `keelage_token` changed (description, inputSchema)
  - before: Everything Keelage holds on one Robinhood Chain token, as the token page shows it: the launch (creator, factory, template, block and time), today's price, cap, pool, volume and holders, the structural verdict the scan last recorded, every alert raised on it with its 24-hour, 7-day and 30-day outcome, the hourly price series, what X showed by day, and a dated log of what changed. Free, never counted. Hosted server only: the local server has no store and says so.
  - after: Everything Keelage holds on one Robinhood Chain token, as the token page shows it: the launch (creator, factory, template, block and time), today's price, cap, pool, volume and holders, the structural verdict the scan last recorded, every alert raised on it with its 24-hour, 7-day and 30-day outcome, the hourly price series, what X showed by day, a dated log of what changed, and signals: the research triggers the token crossed, dated. Free, never counted. Hosted server only: the local server has no store and says so.
- 2026-10-11 `keelage_record` changed (description, inputSchema)
  - before: The track record behind the verdicts, cut every day from Keelage's own ledger: every Robinhood Chain pass with its 24-hour, 7-day and 30-day outcome, and every token-day since each token's first pool, re-cut daily on the hosted server into tables by horizon, band, tier, mcap, pool, age, dayOne, claim, jev, xPosts, xTone, kind, repeat, path, derived, lines, ledger, universe, tokenDays, launcher, projectType, regime, sized, holderGrowth, worst, best, one table at a time (table) or all at once, with the day-by-day series (history). No dated studies: the rules ship with their origin and are tested on the live tables. Research, not advice.
  - after: The track record behind the verdicts, cut every day from Keelage's own ledger: every Robinhood Chain pass with its 24-hour, 7-day and 30-day outcome, and every token-day since each token's first pool, re-cut daily on the hosted server into tables by horizon, band, tier, mcap, pool, age, dayOne, claim, jev, xPosts, xTone, kind, repeat, path, derived, lines, ledger, universe, tokenDays, launcher, projectType, regime, sized, holderGrowth, worst, best, signals, one table at a time (table) or all at once, with the day-by-day series (history). table "signals" is the register of research triggers (conditions that held up in later data, ranked, each with its n, dates and the field it is measured against), with its own history. No dated studies: the rules ship with their origin and are tested on the live tables. Research, not advice.
- 2026-10-11 `keelage_scan` changed (description)
  - before: One Robinhood Chain token at the three moments, read from the chain now. The code pass (clean code, not clean, unread): verified source, launcher template, owner privileges, transfer-tax code, honeypot flags. The activity pass (passes, fails, not judged): the code again plus sells clearing, the pool not drained, the deployer share, the holder concentration tier. The size (sized $X, not sized): a share of the pool by tier when the entry test clears, with the one reason when not. verdict.moments carries the three with their reasons; verdict.key keeps the 0.3 word (ELIGIBLE, NOT_ELIGIBLE, FAIL, UNVERIFIED), mapped in verdict.keys. Computed under a named, dated ruleset (the optional ruleset argument) and marked beta; the facts are measured and timestamped. Jev probabilities as context when TYPESAFE_API_KEY is set. Research only, not financial advice.
  - after: One Robinhood Chain token at the three moments, read from the chain now. The code pass (clean code, not clean, unread): verified source, launcher template, owner privileges, transfer-tax code, honeypot flags. The activity pass (passes, fails, not judged): the code again plus sells clearing, the pool not drained, the deployer share, the holder concentration tier. The size (sized $X, not sized): a share of the pool by tier when the entry test clears, with the one reason when not. verdict.moments carries the three with their reasons; verdict.key keeps the 0.3 word (ELIGIBLE, NOT_ELIGIBLE, FAIL, UNVERIFIED), mapped in verdict.keys. Computed under a named, dated ruleset (the optional ruleset argument) and marked beta; the facts are measured and timestamped. Jev probabilities as context when TYPESAFE_API_KEY is set. signals: the research triggers this scan crosses right now (hosted server; conditions that held up in later data, each with its n and dates), evaluated on the scan's own facts and never written; the verdict and the size do not change for a trigger. Research only, not financial advice.
- 2026-10-10 `keelage_scan` changed (inputSchema)
- 2026-10-09 `keelage_x` changed (inputSchema)
- 2026-10-09 `keelage_holders` changed (inputSchema)
- 2026-10-09 `keelage_scan` changed (inputSchema)
- 2026-10-06 `keelage_pay` changed (description, inputSchema)
  - before: Prepaid credit for priced calls on the hosted server. With tx: the hash of a USDG transfer on Robinhood Chain (chain 4663) to 0xaE313a57B2CE1cbd31bB82C90ced3CFaC0862bA1; the sending wallet is credited once with the amount. Without tx: the credit of the wallet in your X-Wallet header. Free, never counted. The local server has no payments.
  - after: Prepaid credit for priced calls on the hosted server. With tx: the hash of a USDG transfer on Robinhood Chain (chain 4663) to 0xaE313a57B2CE1cbd31bB82C90ced3CFaC0862bA1; the sending wallet is credited once with the amount. Without tx: the credit of the wallet named by the wallet argument or your X-Wallet header. Free, never counted. The local server has no payments.
- 2026-10-06 `keelage_today` added
  - What Keelage read today on Robinhood Chain, as the Today page shows it: this hour's and today's code passes (clean code / not clean / unread, with the reasons), today's activity passes (passes, with the tier and whether each was sized), today's sized passes, and the watch lines that fired on passed tokens (volume, momentum, price, the 10 largest wallets, original holders). One moment (moment) or all four. Free, never counted. Hosted server only: the local server has no store and says so.

Full history: https://api.protogrid.dev/v1/servers/io.github.keelage%2Fmcp/changes

## Dependencies

- npm @keelage/mcp@0.4.0: unknown

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0.

## Remotes

- https://mcp.keelage.ai/mcp (streamable-http, auth none, reachable true, uptime30d 0.9830508)

## Packages

- npm @keelage/mcp@0.4.0

## Tools (8)

- `keelage_holders`: Top wallets for one token with pools, contracts and burn addresses labeled, top-10 share excluding pools and contracts, burn share, and the share held by EIP-7702 smart accounts (how the Robinhood app wallet reads).
- `keelage_pay`: Prepaid credit for priced calls on the hosted server. With tx: the hash of a USDG transfer on Robinhood Chain (chain 4663) to 0xaE313a57B2CE1cbd31bB82C90ced3CFaC0862bA1; the sending wallet is credited once with the amount. Without tx: the credit of the wallet named by the wallet argument or your X-Wallet header. Free, never counted. The local server has no payments.
- `keelage_record`: The track record behind the verdicts, cut every day from Keelage's own ledger: every Robinhood Chain pass with its 24-hour, 7-day and 30-day outcome, and every token-day since each token's first pool, re-cut daily on the hosted server into tables by horizon, band, tier, mcap, pool, age, dayOne, claim, jev, xPosts, xTone, kind, repeat, path, derived, lines, ledger, universe, tokenDays, launcher, projectType, regime, sized, holderGrowth, worst, best, signals, one table at a time (table) or all at once, with the day-by-day series (history). table "signals" is the register of research triggers (conditions that held up in later data, ranked, each with its n, dates and the field it is measured against), with its own history. No dated studies: the rules ship with their origin and are tested on the live tables. Research, not advice.
- `keelage_scan`: One Robinhood Chain token at the three moments, read from the chain now. The code pass (clean code, not clean, unread): verified source, launcher template, owner privileges, transfer-tax code, honeypot flags. The activity pass (passes, fails, not judged): the code again plus sells clearing, the pool not drained, the deployer share, the holder concentration tier. The size (sized $X, not sized): a share of the pool by tier when the entry test clears, with the one reason when not. verdict.moments carries the three with their reasons; verdict.key keeps the 0.3 word (ELIGIBLE, NOT_ELIGIBLE, FAIL, UNVERIFIED), mapped in verdict.keys. Computed under a named, dated ruleset (the optional ruleset argument) and marked beta; the facts are measured and timestamped. Jev probabilities as context when TYPESAFE_API_KEY is set. signals: the research triggers this scan crosses right now (hosted server; conditions that held up in later data, each with its n and dates), evaluated on the scan's own facts and never written; the verdict and the size do not change for a trigger. Research only, not financial advice.
- `keelage_template`: Which launcher template a contract came from (Pons, LaunchToken, Doppler, UERC20, tokenized stock, or unregistered), with the template verdict, the ABI privileges and the transfer-tax identifier count read from verified source.
- `keelage_today`: What Keelage read today on Robinhood Chain, as the Today page shows it: this hour's and today's code passes (clean code / not clean / unread, with the reasons), today's activity passes (passes, with the tier and whether each was sized), today's sized passes, and the watch lines that fired on passed tokens (volume, momentum, price, the 10 largest wallets, original holders), plus signals: the research triggers crossed in the last 24 hours, on the rows they belong to. One moment (moment) or all four. Free, never counted. Hosted server only: the local server has no store and says so.
- `keelage_token`: Everything Keelage holds on one Robinhood Chain token, as the token page shows it: the launch (creator, factory, template, block and time), today's price, cap, pool, volume and holders, the structural verdict the scan last recorded, every alert raised on it with its 24-hour, 7-day and 30-day outcome, the hourly price series, what X showed by day, a dated log of what changed, and signals: the research triggers the token crossed, dated. Free, never counted. Hosted server only: the local server has no store and says so.
- `keelage_x`: What X is saying about one Robinhood Chain token in the last 24 hours: posts and accounts, how much is a repeated template, which large profiles posted and whether they meant this chain's token, views, and a one-line read of the narrative. Context only, never part of the verdict; a scan does not read X. Cached 6 hours per token.
