{"id":"31c17251-d743-4425-bd7b-77e3a0cb292e","slug":"sato-hub-integrations","kind":"mcp","name":"sato-hub-integrations","summary":"⬡ Sato Hub inside the frameworks agents already run — elizaOS plugin, Vercel AI SDK tools, LangChain.js tools, plus hosted-MCP configs for the Claude and OpenAI Agents SDKs. Read-only, keyless, non-cu","owner":"satohubai","repoUrl":"https://github.com/satohubai/sato-hub-integrations","license":"MIT","licenseTier":"permissive","trust":"community","stars":0,"logoUrl":"https://avatars.githubusercontent.com/u/304106862?u=7eb62444104fcf606cf1f1b09516a1b99afee58b&v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["developer-tools","cloud-infra","data-analytics"],"tags":["agent-tools","ai-sdk","crypto","elizaos","elizaos-plugin","langchain","onchain-agents","web3"],"runtime":"node","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-14T04:38:05.947Z","sample":false,"url":"https://conduits.dev/tools/sato-hub-integrations","language":"TypeScript","transports":["stdio"],"install":{"npm":"@satohub/kit"},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# Sato Hub integrations\n\n⬡ Sato Hub inside the agent frameworks people already run.\n\n[Sato Hub](https://satohub.ai) indexes what onchain agents are built **from** —\nagent frameworks, MCP servers, wallets and key management, x402 and stablecoin\npayment rails, ERC-8004 identity, trading venues, onchain data, agent skills —\nrebuilds the index daily from public evidence, and scores every listing on how\nopen, active and verifiable it is.\n\nThis repository packages four of those calls for the agent frameworks below, so\nan agent can reach them without anyone writing a fetch wrapper first.\n\n| Package | Framework | Install |\n|---|---|---|\n| [`elizaos-plugin-satohub`](packages/elizaos-plugin-satohub) | elizaOS | `npm i elizaos-plugin-satohub` |\n| [`satohub-ai-sdk-tools`](packages/satohub-ai-sdk-tools) | Vercel AI SDK | `npm i satohub-ai-sdk-tools` |\n| [`satohub-langchain-tools`](packages/satohub-langchain-tools) | LangChain.js | `npm i satohub-langchain-tools` |\n| [`goat-plugin-satohub`](packages/goat-plugin-satohub) | GOAT SDK | `npm i goat-plugin-satohub` — Preflight + search only |\n| [`agentkit-satohub`](packages/agentkit-satohub) | Coinbase AgentKit | `npm i agentkit-satohub` — Preflight + search only |\n| [`satohub-core`](packages/satohub-core) | anything with `fetch` | `npm i satohub-core` |\n| [`dify/`](dify) | Dify | Dify Marketplace plugin `satohubai/satohub` — build plan, search, Preflight |\n| [`examples/claude-agent-sdk`](examples/claude-agent-sdk) | Claude Agent SDK | config only — no package |\n| [`examples/openai-agents-sdk`](examples/openai-agents-sdk) | OpenAI Agents SDK | config only — no package |\n| [`examples/base-ts-agent-starter`](examples/base-ts-agent-starter) | TypeScript on Base, viem | runnable starter: Preflight before install, a policy check, a quote. Holds no key |\n\nTwo of those rows are deliberately not packages. Both SDKs speak MCP, and Sato\nHub serves MCP; a package between them would be a wrapper around a URL.\n\n## The four calls\n\n| Call | What it answers |\n|---|---|\n| **search_resources** | What is there to build this from, and is this project real, maintained and open source? |\n| **preflight** | Should I install / connect / pay / trade this — what is on record about it? |\n| **route_swap** | Which venue would you route this swap to, on what readings, and what is the fee? |\n| **build_plan** | Here is my goal in plain words — what is the stack, and what is the first action? |\n\nAll four are read-only. All 32 MCP tools are at\n[`https://satohub.ai/mcp`](https://satohub.ai/mcp) if you want the rest.\n\n## What these packages do, and do not\n\n**They wrap. They never re-implement.** No scoring, ranking or verdict logic\nlives in this repo. Sato Hub decides; these packages carry the answer and check\nthe signature on it.\n\n**The payload comes back verbatim.** Every tool returns the record as Sato Hub\nsent it, with provenance beside it and never folded into it — so nothing the\nmodel reads has passed through a summariser of ours.\n\n**Responses are verified.** Preflight verdicts and Sato Route decisions leave\nsatohub.ai with a detached Ed25519 signature. `satohub-core` fetches the JWKS,\nverifies the raw bytes, and by default **throws** when a signature is present\nand does not match. An **unsigned** response is reported as unsigned — unknown,\nnot invalid. We never emit a placeholder signature and this code never invents\none. ([the scheme](https://satohub.ai/.well-known/sato-signing.json))\n\n**Non-custodial, everywhere.** Nothing here signs a transaction, holds a key,\ndeploys or moves funds. A swap tool returns a quote and calldata for the caller\nto read and sign with its own signer. An unsigned route costs nothing. The Sato\nfee — 3 bps stable-to-stable, 15 bps on any volatile leg — is stated in the\nresponse before anything is signed, including when it is zero.\n\n## The readings, and their limits\n\nThese are in every tool description, because a tool description is the part a\nmodel actually reads:\n\n- A **Sato Score** measures how open, active and verifiable a project is. It is\n  **not** a security review, a quality judgment or a statement about returns.\n- A **Preflight verdict** names **what was checked and when**. `unknown` means\n  Sato Hub holds no record — not that something is wrong.\n- A **route** is a **recommendation**, chosen by the fields named in\n  `chosen_by`. A quote is not a fill.\n- **`null` means unknown.** It never means zero.\n\n## Citation\n\nThe data is free under CC-BY-4.0. Every record carries a `sato_url` — its\ncanonical page. When you surface a listing in an answer, cite that URL, so the\nreader can check what the record says today rather than what it said when the\nmodel read it.\n\n## Development\n\nZero runtime dependencies beyond `satohub-core`; the frameworks are peer\ndependencies, so nothing here drags a runtime into your tree.\n\n```sh\nnpm install\nnpm test        # builds, then runs every package's tests against a mocked fetch\nnpm run typecheck\n```\n\nNo test in this repo asserts a fact about a real listing. A test that pinned\ntoday's Sato Score would fail tomorrow for the right reason, and teach everyone\nto ignore it.\n\nMIT.\n\n## Install it in one line\n\n```sh\nclaude mcp add --transport http satohub https://satohub.ai/api/mcp   # Claude Code\ncodex mcp add satohub --url https://satohub.ai/api/mcp               # Codex CLI\ngemini mcp add --transport http satohub https://satohub.ai/api/mcp   # Gemini CLI\n```\n\nOne click for [VS Code](https://vscode.dev/redirect/mcp/install?name=satohub&config=%7B%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fsatohub.ai%2Fapi%2Fmcp%22%7D)\nor [VS Code Insiders](https://insiders.vscode.dev/redirect/mcp/install?name=satohub&config=%7B%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fsatohub.ai%2Fapi%2Fmcp%22%7D&quality=insiders).\n\n**Cursor, Windsurf, Zed, Cline, Continue, JetBrains, LM Studio, Goose, Warp,\nClaude Desktop** — deep links and the exact config block for each, generated\nfrom one endpoint constant: **<https://satohub.ai/install>**\n(machine-readable at [`/api/install.json`](https://satohub.ai/api/install.json)).\nGitHub strips `cursor://` and `lmstudio://` links from READMEs, which is why the\none-click buttons live on that page rather than here.\n\nThen drop in the [agent kit](https://satohub.ai/kit) — `AGENTS.md`,\n`CLAUDE.md`, `.cursor/rules/satohub.mdc`, `.windsurfrules` — so the model\nreaches for the server instead of answering from memory. Copies in\n[`kit/`](./kit).\n\n"}