protogrid

Search / xyz.keyfo/keyfo

keyfo

R0· no sign-in

Stock token prices, P&L and trades you sign on Robinhood Chain, plus 300+ AI models on one key.

v1.18.0 · active · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality91new
Trust83of 100
Uptime, 30 days100%
Latency p50796 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "keyfo": {
      "type": "http",
      "url": "https://keyfo.xyz/mcp",
      "headers": {
        "Authorization": "Bearer ${KEYFO_TOKEN}"
      }
    }
  }
}
claude mcp add --transport http keyfo https://keyfo.xyz/mcp --header "Authorization: Bearer ${KEYFO_TOKEN}"
[mcp_servers.keyfo]
url = "https://keyfo.xyz/mcp"
bearer_token_env_var = "KEYFO_TOKEN"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "keyfo": {
      "type": "remote",
      "url": "https://keyfo.xyz/mcp",
      "enabled": true,
      "headers": {
        "Authorization": "Bearer {env:KEYFO_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "keyfo": {
      "type": "http",
      "url": "https://keyfo.xyz/mcp",
      "headers": {
        "Authorization": "Bearer ${KEYFO_TOKEN}"
      }
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=keyfo&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8va2V5Zm8ueHl6L21jcCIsImhlYWRlcnMiOnsiQXV0aG9yaXphdGlvbiI6IkJlYXJlciAke0tFWUZPX1RPS0VOfSJ9fQ%3D%3D"
}
{
  "servers": {
    "keyfo": {
      "type": "http",
      "url": "https://keyfo.xyz/mcp",
      "headers": {
        "Authorization": "Bearer ${KEYFO_TOKEN}"
      }
    }
  }
}
{
  "mcpServers": {
    "keyfo": {
      "httpUrl": "https://keyfo.xyz/mcp",
      "headers": {
        "Authorization": "Bearer ${KEYFO_TOKEN}"
      }
    }
  }
}
extensions:
  "keyfo":
    enabled: true
    name: "keyfo"
    type: streamable_http
    uri: "https://keyfo.xyz/mcp"
    headers:
      "Authorization": "Bearer ${KEYFO_TOKEN}"
    timeout: 300

Placeholders to fill from your own secret store: ${KEYFO_TOKEN}. The registry never accepts secret values.

Quality 91 / 100new

protocol88 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • warn
    protocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every use
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene94 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length2 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations25 of 25 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 6,737 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
  • pass
    tools.hidden_textno hidden text in tool names, descriptions, schemas or annotations
stabilityn/a · weight 15
  • n/a
    stability.changes, stability.rug_pull, stability.new_linkstool history recorded for 2 of the 7 days needed
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

25 tools, about 6,737 tokens to load them all · tool set 3daf1110dc72 · tools last changed 2026-11-12 · checked 2026-11-14 06:30 UTC

Tool changes

  • build_basketadded

    Build unsigned buys of several stock tokens on Robinhood Chain, paid with the ETH in `wallet` and signed on one keyfo page. Use it when the user asks for more than one stock at once, like “buy $100 of Mag 7” or “split $50 across NVDA, TSLA, SPY”; for one stock, use build_trade. Give exactly one of: `legs` (each stock with its own `usd` or `eth`), or `preset` or `split` (a list of tickers) with `usd` or `eth` for the whole basket, shared equally. Preset mag7 is 7 separate stock tokens in equal shares (AAPL, MSFT, GOOGL, AMZN, NVDA, META, TSLA), not an index or a fund. 2 to 10 stocks, at least $1 each, up to 10 ETH in total, and the ETH plus gas must already be in `wallet`. Buys only. No keyfo fee; the route’s fees are in fees_usd. The calls expire at valid_until. The page asks for one signature only if the user’s wallet signs batches (MetaMask after a one-time account upgrade); otherwise it asks once per buy, and some buys may go through while others do not, so never promise one signature. To buy the rest later, check stock_portfolio and build only the stocks not bought. If the error has needed_slippage_pct, name the stocks and ask the user before you use it. No keyfo tool signs. When you reply, list each stock and its amount. The answer also has sign_url: a keyfo page where the user checks the transaction and signs it in their own wallet. It stays open for 15 minutes and gets a new quote itself when the price is out of date. Show that link to the user, and never ask them to paste the transaction data anywhere.

  • gift_stockadded

    Build an unsigned buy of a stock token on Robinhood Chain that goes to another wallet as a gift: `wallet` pays with its ETH (`usd` worth, or `eth`), and the token arrives at `recipient` in the same transaction. Use it only when the user asks to send, give or gift a stock to an address; for the user’s own wallet, use build_trade. Copy `recipient` exactly as the user wrote it for this gift: 0x and 40 hex characters, not a .eth name. It must be a wallet, not the paying wallet and not a contract. An exchange’s deposit address looks like any wallet, so if the user may be sending to an exchange, ask them to check that it supports stock tokens on Robinhood Chain. Buys only, with build_trade’s limits: up to 10 ETH, and the ETH plus gas must already be in `wallet`. No keyfo fee; the route’s fees are in fees_usd. The calls expire at valid_until. No keyfo tool signs. When you reply, say what the recipient receives and show their full address. The answer also has sign_url: a keyfo page where the user checks the transaction and signs it in their own wallet. It stays open for 15 minutes and gets a new quote itself when the price is out of date. Show that link to the user, and never ask them to paste the transaction data anywhere.

Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 83 / 100

no-repository
provenance55
liveness100
freshness100
hygiene80

+dns-namespace +website +reachable +uptime-100% +updated-3d-ago -no-repository

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://keyfo.xyz/mcp streamable-httpnoneyes100%796 ms2026-07-282026-11-14

Tools (25)

ask_modelAsk another AI model (GPT, Gemini, Grok and others) one question through keyfo and get its answer, for a second opinion. This is a paid model call: it needs a key and draws from the key’s daily allowance at the model’s price. A trial key can ask low-cost models only. The other model gets no tools.
build_basketread-onlyBuild unsigned buys of several stock tokens on Robinhood Chain, paid with the ETH in `wallet` and signed on one keyfo page. Use it when the user asks for more than one stock at once, like “buy $100 of Mag 7” or “split $50 across NVDA, TSLA, SPY”; for one stock, use build_trade. Give exactly one of: `legs` (each stock with its own `usd` or `eth`), or `preset` or `split` (a list of tickers) with `usd` or `eth` for the whole basket, shared equally. Preset mag7 is 7 separate stock tokens in equal shares (AAPL, MSFT, GOOGL, AMZN, NVDA, META, TSLA), not an index or a fund. 2 to 10 stocks, at least $1 each, up to 10 ETH in total, and the ETH plus gas must already be in `wallet`. Buys only. No keyfo fee; the route’s fees are in fees_usd. The calls expire at valid_until. The page asks for one signature only if the user’s wallet signs batches (MetaMask after a one-time account upgrade); otherwise it asks once per buy, and some buys may go through while others do not, so never promise one signature. To buy the rest later, check stock_portfolio and build only the stocks not bought. If the error has needed_slippage_pct, name the stocks and ask the user before you use it. No keyfo tool signs. When you reply, list each stock and its amount. The answer also has sign_url: a keyfo page where the user checks the transaction and signs it in their own wallet. It stays open for 15 minutes and gets a new quote itself when the price is out of date. Show that link to the user, and never ask them to paste the transaction data anywhere.
build_morpho_depositread-onlyBuild unsigned transactions to deposit USDG into a Morpho vault on Robinhood Chain, or to withdraw it. Without a vault, the largest USDG vault is used. Vaults carry smart contract, curator and market risk. Returns calls for the wallet owner to sign and send in order on Robinhood Chain (chain ID 4663). No keyfo tool signs. The answer also has sign_url: a keyfo page where the user checks the transaction and signs it in their own wallet. It stays open for 15 minutes and gets a new quote itself when the price is out of date. Show that link to the user, and never ask them to paste the transaction data anywhere.
build_revokeread-onlyBuild an unsigned transaction that sets a token approval back to zero, so that spender can no longer move the token. Needs a key. Returns a call for the wallet owner to sign and send on Robinhood Chain (chain ID 4663). No keyfo tool signs. The answer also has sign_url: a keyfo page where the user checks the transaction and signs it in their own wallet. It stays open for 15 minutes and gets a new quote itself when the price is out of date. Show that link to the user, and never ask them to paste the transaction data anywhere.
build_traderead-onlyBuild unsigned transactions to buy a stock token on Robinhood Chain with ETH (`eth`, or `usd` worth of ETH) or sell `pct` percent of the wallet’s holding for ETH. `token` is a ticker (TSLA) or the token address. A buy needs the ETH, plus gas, already in `wallet`; if it is short, fund it with fund_agent first. The calls expire at valid_until: sign and send before then, or build the trade again. Returns calls for the wallet owner to sign and send in order on Robinhood Chain (chain ID 4663). No keyfo tool signs. The answer also has sign_url: a keyfo page where the user checks the transaction and signs it in their own wallet. It stays open for 15 minutes and gets a new quote itself when the price is out of date. Show that link to the user, and never ask them to paste the transaction data anywhere.
buy_at_pricePlan a buy of a stock token on Robinhood Chain for `wallet` that waits for a price: when the pool price goes `trigger` below or above `price_usd`, keyfo prepares a buy of `usd` or `eth` and a sign link. Nothing is bought or signed now. The plan starts after the wallet’s owner confirms it at https://keyfo.xyz/app. The price is the pool’s 5-minute median from at least 5 samples, and the level must hold for about 3 minutes. Only pools with at least $250000 of depth qualify, and no buy is prepared if the route costs more than 3% above the median. The owner then has 6 hours to sign. It is not a limit order: the buy goes at the market price when it is signed. One time by default; with `repeat`, it waits again after each buy. Limits as for scheduled buys: 5 plans per wallet, $500 per buy, $1000 a week.
cancel_scheduleCancel a buy plan by its `id`. Nothing new is prepared for it; buys already signed stay as they are.
chain_statusread-onlyThe state of Robinhood Chain: the latest block and its age, the average block time, the gas price, and an estimate of what a transfer and a stock swap cost in dollars.
explain_txread-onlyA Robinhood Chain transaction in parts: whether it succeeded, who sent it to what, the function it called, its fee, and every token transfer and approval it made.
fund_agentread-onlyQuote moving funds from another network (ethereum, base, arbitrum, optimism, bnb, polygon and others, 15 in all, or a chain ID) to an agent wallet on Robinhood Chain, arriving as ETH. `payer` is the wallet that already holds the funds on the origin network: if the user did not name it, ask, do not reuse `wallet`. `amount` is in the smallest unit (wei for ETH), a number or a string of digits. Returns transactions for the payer to sign. The answer also has sign_url: a keyfo page where the user checks the transaction and signs it in their own wallet. It stays open for 15 minutes and gets a new quote itself when the price is out of date. Show that link to the user, and never ask them to paste the transaction data anywhere.
gift_stockread-onlyBuild an unsigned buy of a stock token on Robinhood Chain that goes to another wallet as a gift: `wallet` pays with its ETH (`usd` worth, or `eth`), and the token arrives at `recipient` in the same transaction. Use it only when the user asks to send, give or gift a stock to an address; for the user’s own wallet, use build_trade. Copy `recipient` exactly as the user wrote it for this gift: 0x and 40 hex characters, not a .eth name. It must be a wallet, not the paying wallet and not a contract. An exchange’s deposit address looks like any wallet, so if the user may be sending to an exchange, ask them to check that it supports stock tokens on Robinhood Chain. Buys only, with build_trade’s limits: up to 10 ETH, and the ETH plus gas must already be in `wallet`. No keyfo fee; the route’s fees are in fees_usd. The calls expire at valid_until. No keyfo tool signs. When you reply, say what the recipient receives and show their full address. The answer also has sign_url: a keyfo page where the user checks the transaction and signs it in their own wallet. It stays open for 15 minutes and gets a new quote itself when the price is out of date. Show that link to the user, and never ask them to paste the transaction data anywhere.
list_modelsread-onlyThe AI models a keyfo key can call: price per million tokens, context length and what each supports (tools, reasoning, vision, json). Filter by what the task needs; a trial key sees its low-cost list. Listing is free.
list_schedulesread-onlyThe buy plans of `wallet`: token, amount, day, hour and time zone, status and the next time. Read only.
model_detailread-onlyOne model in detail: prices, context, what it supports, and what a call of a given size would cost.
morpho_loopread-onlyWork out the net result over a year of borrowing USDG against a stock token on Morpho and putting it in a USDG vault, and the price at which the loan would be liquidated. A calculation at current rates, not advice: nothing is built or sent.
morpho_ratesread-onlyMorpho on Robinhood Chain: USDG vaults with their net APY, size and curator, and the lending markets that take stock tokens as collateral, with the borrow rate and LLTV. Rates change; the numbers are a snapshot. Pass a ticker for one stock.
my_keyread-onlyWhat your keyfo key can still use: its allowance, what is left and when it resets. Without a key: how many free read calls are left this hour.
pending_signsread-onlyScheduled buys of `wallet` that are ready to sign now, each with its sign_url and when its window closes. Read only. Show the user every link.
portfolio_briefread-onlyA short brief for one wallet on Robinhood Chain, read only: each stock token it holds with value and 24h change, the portfolio total, and today’s top three movers you can buy. No key is needed for that. With a key for the same wallet, it adds what is left of today’s model allowance and the scheduled buys ready to sign, with their links; without one, it only counts the buys ready to sign and points to https://keyfo.xyz/app. It reads data on request; nothing is sent on a schedule.
portfolio_pnlread-onlyProfit and loss for the stock tokens a wallet holds on Robinhood Chain, read only, no key needed: average entry price, unrealized P&L per token and in total. Entry prices come from the wallet’s buys in its transfer history on the chain. Tokens that arrived without a payment have no known cost and are left out of the average. Where the ETH price at the buy’s block is not known, the current one is used and the result is marked approximate. Gas is not counted, sales for ETH show their proceeds only when they went through LI.FI or OKX, and a swap from one stock token to another has no entry price.
schedule_buyPlan a weekly buy of a stock token on Robinhood Chain for `wallet`: `usd` or `eth` each week on `weekday` at `hour` in `tz`. Nothing is bought or signed now. The plan starts only after the wallet’s owner confirms it at https://keyfo.xyz/app, signed in with that wallet. At each time keyfo prepares a fresh trade and a sign link; the owner signs it in their own wallet within 6 hours, or that buy is marked missed and the plan goes on. Limits: 5 plans per wallet, $500 per buy, $1000 a week per wallet.
stock_approvalsread-onlyOpen token approvals of a wallet on Robinhood Chain: the stock tokens keyfo lists, USDG and WETH, checked against the spenders keyfo knows, such as LI.FI and Permit2. It does not scan the wallet’s whole approval history. Unlimited approvals come first.
stock_moversread-onlyToday’s movers among stock tokens on Robinhood Chain, ranked by the pool’s 24h change. tradeable_only keeps the ones you can buy now.
stock_portfolioread-onlyThe stock tokens and ETFs a wallet holds on Robinhood Chain, with amounts and value in dollars, plus its ETH.
stock_quoteread-onlyQuote stock tokens and ETFs on Robinhood Chain by ticker (NVDA, TSLA, SPY…) or token address, one or up to 20 at once. Returns the pool price, 24h change and pool depth where a pool exists.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "xyz.keyfo/keyfo",
  "icons": [
    {
      "src": "https://keyfo.xyz/img/brand/pwa-512.png",
      "sizes": [
        "512x512"
      ],
      "mimeType": "image/png"
    }
  ],
  "title": "keyfo",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://keyfo.xyz/mcp",
      "type": "streamable-http",
      "headers": [
        {
          "name": "Authorization",
          "isSecret": true,
          "description": "Bearer kf_… key. Free trial key at https://keyfo.xyz/connect. Without a key: preview with read tools."
        }
      ]
    }
  ],
  "version": "1.18.0",
  "websiteUrl": "https://keyfo.xyz",
  "description": "Stock token prices, P&L and trades you sign on Robinhood Chain, plus 300+ AI models on one key."
}