NAME
setoku — make any AI fluent in your company data
SYNOPSIS
Setoku is a small self-hosted MCP knowledge server + Claude Code skills for hooking up your data. It does two things: it gives your AI a read-only way to query your data, and it remembers what that data means (the metric definitions, the gotchas), getting better the more you use it. Ask for a dashboard and publish it to a link your whole team can view, on live data. The MCP works with whatever AI you already have, and no model runs on the server, so no added inference cost.
Open source · MCP server · Apache-2.0 · GitHub ↗
DEMO
There’s a live demo wired to a fictional pro sports club, the Bonita Bulldogs (ticketing, sponsorship, concessions, payroll, broadcast rights).
1. Connect to the demo MCP server. In Claude (or any MCP client) open Settings → Connectors → Add custom connector, and paste this URL. The token rides in the URL, so there’s no separate key to enter.
https://demo.setoku.com/i/55e767ea376aa3783cfb4653e2bf81772876b9b5c36339d9
2. Ask a question.
Media rights $90M Ticketing $47M Sponsorship $28M Concessions $14M Merch $8M Other $5M
3. Try an app.
Ask Claude to build a dashboard on the same data, then publish it to a link. Two live examples, running on the demo data right now:
- Sponsorship pricing table ↗ — inventory and rates for sponsorship placements.
- Fan lifetime value ↗ — segment fans by spend across tickets, merch, and concessions.
DESCRIPTION
Setoku gives the AI three kinds of MCP tools, and one rule: look up what the data means before you touch it.
- Context toolsfind_context · get_metric · report_correction
- The AI reads what your data means first: canonical metric definitions, entity docs, and the gotchas that make a naive query wrong. It can propose changes to what Setoku knows, but a person accepts them on the admin page, outside the agent loop, so an injected session can’t rewrite the brain.
- Read-only queryget_schema · run_query
- Read-only, with a row cap, a statement timeout, a table allow-list, and an append-only audit log. Enforced by the database role, not by parsing SQL.
- App toolspublish_app · update_app
- Turn an answer into a small web app on live data, published at a link anyone on the team can open. No SQL required.
You set it up with Claude Code skills:
- /setoku:onboard sets Setoku up in a repo for the first time.
- /setoku:connect adds a data source or custom integration.
- /setoku:generate writes business context from your code.
- /setoku:curate reviews and approves pending knowledge.
Once it’s set up, any MCP client can use it: Claude, Codex, or whatever you run. Just ask in plain language, and the tools do the rest.
APPS
Ask Claude to build a dashboard on your data. Then publish it to a link as a Setoku App, the data stays live, and your whole team can view it. Nothing to deploy, no frontend to maintain.
- Vibe dashboardingsandbox safety
- Describe it in plain language; the agent writes the app and publishes it to a URL. Edit it the same way, just ask for the change.
- Backed by live dataread-only
- Apps read through the same governed path: row caps, audit, a SELECT-only database role. They never get write access to your sources.
- App-private stateno writes to your data
- Each app keeps its own state (todos, votes, annotations) in a sandbox that belongs to the app, not your database. Worst case, an app messes up its own notes.
- Share by linkteam or public
- A team link is login-gated; an admin can flip one public for a credential-free URL. The page runs in a locked-down sandbox with no network, so a published app can’t phone home.
ARCHITECTURE
You can host this on whatever infra you like. We put it all on one small box (a ~$12/mo VPS). The /setoku:connect skill helps you add custom integrations. Only the proxy is public, so your databases aren’t exposed. Queries are read-only, and knowledge changes pass through a person.
┌───────────────────┐
│ You + your AI │
└─────────┬─────────┘
│ MCP · read · propose
your box │
┌────────────────────────────────┬─────────────────────────────────┐
│ │ │
│ ┌─────────────┴──────┐ ┌───────────┐ │
│ │ Setoku gateway │ approves │ a person │ │
│ │ context · queries │◀─────────┤ │ │
│ └───┬─────────────┬──┘ └───────────┘ │
│ reads │ │ reads · proposes │
│ │ │ │
│ ┌────────────────────┴───────┐ ┌──┴────────────────┐ │
│ │ Lake (ClickHouse) │ │ Knowledge store │ │
│ │ logs · events · DB mirror │ └───────────────────┘ │
│ └─────▲─────────────────▲────┘ │
│ │ │ │
└───────┼─────────────────┼────────────────────────────────────────┘
ingest │ read-only │ (mirrored on a cron)
┌──────┴──────────┐ ┌──┴──────────────────┐
│ Your sources │ │ Your database │
│ GH·Vercel·Slack…│ │ Postgres · read-only│
└─────────────────┘ └─────────────────────┘
QUICKSTART
Setoku installs as a Claude Code plugin. Add the plugin, then run onboarding from your main project directory, the codebase you want Setoku to learn from:
# 1 · add the plugin (skills only) /plugin marketplace add Hedgy-Labs/setoku /plugin install setoku@setoku # 2 · from your project directory /setoku:onboard
Onboarding stands up the server, auths your Claude, wires your database read-only, and generates the first knowledge from your code. You stay in the loop for anything that touches your data. To start onboarding, run /setoku:onboard.
You’ll need somewhere to host it. Something like OVH’s VPS-2 is plenty.
Or stand up the server by hand
# on a fresh Ubuntu VPS
git clone https://github.com/Hedgy-Labs/setoku /opt/setoku
cd /opt/setoku
SETOKU_ADMIN_USER=you ./deploy/bootstrap.sh
Installs Docker, generates secrets, gets an HTTPS certificate, and prints the connect command. Then add the plugin and run /setoku:onboard from your project; it’ll detect the box you just made.
CONNECTORS
Point Setoku at the data you already have. Every source lands in a local ClickHouse data lake, on purpose: agents write arbitrary queries (scans, GROUP BYs, whole-table aggregations), and a columnar engine answers those in about a second, so the apps and dashboards they build stay quick. Your app database connects read-only and is mirrored in on a cron; the rest is ingested as it happens.
ClickHouse · one lake, every source ┌────────────┬──────────────────────────────────┐ │ PostgreSQL │ app database, mirrored read-only │ │ GitHub │ issues, PRs & commits │ │ Vercel │ deploys & logs │ │ Render │ deploys & logs │ │ Slack │ messages │ │ Mercury │ banking & finance │ └────────────┴──────────────────────────────────┘
No connector for your source yet? The included setup skills give your coding agent the patterns to wire one up itself. If you make a cool one, send a pull request!
RATIONALE
We’re curious.
There are plenty of AI memory stores, and plenty of data gateways. Stapling the two together, and nudging the agent to gather knowledge about the data as it goes, seemed useful and fun to tinker with.
We’re cheap.
We wanted something that runs on one small box, works on a Pro/Max subscription or a cheap model with no added inference cost, mostly sets itself up (no field engineer to pay for), stays portable between providers, and is open source.
We’re paranoid.
HR platforms, CRMs, and clouds are all announcing “context layers.” They’d like the meaning of your business to accumulate on their servers, where it can never leave. Context is deeper lock-in than data, and a hosted context layer has no export button. Setoku exists so that understanding accumulates on a box you own instead. If we disappear tomorrow, your context doesn’t.
We and some friends wanted the same thing.
- Hedgy: keep scaling without hiring. Debug from live logs and data, find growth levers, and match candidates and companies better with more data.
- Baggu: give employees state-of-the-art tools. Faster onboarding, and a safe way to vibecode against real data.
- Tlon: experimenting with giving agents curated data to work from.
- Sports analysts: query across data that doesn’t usually sit together.
- Academic labs: think through hypotheses against real papers, data, and drafts.
BUGS
Your AI can still be confidently wrong. Setoku just makes that harder to do quietly.
Everything else: github.com/Hedgy-Labs/setoku/issues ↗
SEE ALSO
It’s open source, so you can self-host it today. If you like, we’re happy to help set it up. Just email hello@setoku.com.
- github.com/Hedgy-Labs/setoku ↗
- DEMO — try it on real-ish data
- hello@setoku.com — setup help
設 × 奥 · set (math) × oku (innermost) · Apache-2.0