Quickstart
Connect Claude Code to your fund data in under 5 minutes.
Step 1 — Register your MCP server
Add FundOS to Claude Code (SSE transport)
Run this once from any terminal. Claude Code persists the server for future sessions.
claude mcp add --transport sse fundos https://www.kela.com/mcp/sseFor other SSE clients (OpenAI Agents SDK, LangChain, custom agents):
# SSE endpoint
https://www.kela.com/mcp/sse
# Bearer token auth
Authorization: Bearer vdr_<your-api-key>OpenAI Codex CLI
Step 1 — Add FundOS to Codex CLI
codex mcp add fundos --url https://www.kela.com/mcp \
--bearer-token-env-var FUNDOS_API_KEYStep 2 — Get your API key
Create a key at kela.com/admin/api-keys, then export it:
export FUNDOS_API_KEY=your_key_hereAdd this to ~/.zshenv (not ~/.zshrc) so it is available in non-interactive shells:
echo 'export FUNDOS_API_KEY=your_key_here' >> ~/.zshenvStep 3 — Run
codex exec --skip-git-repo-check \
--sandbox danger-full-access \
"Use the fundos MCP server to check my deals"
The --sandbox danger-full-access flag is required. Without it, Codex runs in
workspace-write mode which blocks MCP tools/call requests in
non-interactive sessions (they silently show "user cancelled").
To set it as the default, add to ~/.codex/config.toml:
sandbox = "danger-full-access"
[mcp_servers.fundos]
url = "https://www.kela.com/mcp"
bearer_token_env_var = "FUNDOS_API_KEY"sandbox key in config.toml is not yet read by all
Codex versions — pass --sandbox danger-full-access on the CLI until it is.
Codex uses Streamable HTTP (POST /mcp) — no SSE stream needed.
Step 2 — Authenticate
OAuth PKCE (Claude Code — recommended)
When you first use a FundOS tool, Claude Code opens a browser window to
kela.com/oauth/authorize. Sign in with your FundOS account and
grant access. The OAuth flow handles token storage automatically — you never
touch credentials.
API key (headless / server agents)
Create a key at kela.com/admin/api-keys. Pass it as:
curl https://kela.com/api/v1/usage \
-H "Authorization: Bearer vdr_YOUR_KEY"Step 3 — Call your first tool
Get a context briefing
Open a Claude Code session in any directory and type:
Call fundos_get_agent_context and summarise what needs my attention today.FundOS returns a structured briefing: pending approval actions, active deals, LP changes, open risk alerts, and upcoming capital calls. Cost: 2 credits.
Step 4 — Read live fund data
Try a few read tools
# List your deal pipeline
Call fundos_list_deals.
# List all monitored covenants
Call fundos_list_covenants and show any with status != ok.
# Search documents in a data room
Call search_documents with query="change of control" and room_id=1.Step 5 — Propose a write action
Write tools require human approval
Write tools create a proposed action that appears in your FundOS dashboard
at /fundos/agent/runs/<id>. The agent cannot execute the write
until you click Approve.
# This proposes a new deal — does NOT create it yet
Call fundos_create_deal with name="Acme Series B" and ephemeral=true to validate first,
then ask me to confirm before persisting.ephemeral=true on any write tool to validate
the payload without writing to the database. The tool returns the shape of what
would be created so you can review it first.
Stateless Document API — no account required
Generate fund documents without a FundOS account
Law firms, fund admins, LPs, and placement agents can call
/api/v1/documents/* with a doc_ key — no FundOS fund data to set up.
Send everything inline, get back a completed document in one call.
Get a doc_ API key → (email + password, no card, first 30 days free)
Five endpoints
POST /api/v1/documents/k1 # Schedule K-1 (Form 1065) — $5/call
POST /api/v1/documents/odd # ODD/DDQ completion — $25/call
POST /api/v1/documents/analyze # Document red-flag analysis — $3/call
POST /api/v1/documents/waterfall # European waterfall — free
POST /api/v1/documents/pricer # IRR/MOIC/WAL pricer — freeK-1 example
curl -X POST https://kela.com/api/v1/documents/k1 \
-H "Authorization: Bearer doc_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"fund_name": "Eight Capital Fund II",
"tax_year": 2025,
"partner_name": "Aksia LP",
"lp_share_pct": 0.15,
"box_1_ordinary_income": 45000,
"box_9a_lt_gain": 105000
}'
# → { "html": "...", "filename": "k1_2025_aksia_lp.html",
# "charged_usd": 5.00 }Waterfall example (free)
curl -X POST https://kela.com/api/v1/documents/waterfall \
-H "Authorization: Bearer doc_your_key_here" \
-H "Content-Type: application/json" \
-d '{"distributable": 1000000, "committed": 1000000,
"hurdle_pct": 8, "carry_pct": 20}'
# → { "lp_total": 916000, "gp_total": 84000, "tiers": [...] }Next steps
- Authentication — OAuth scopes, API key rotation, token lifetimes
- Tool reference — all 47 tools with parameters and cost
- Webhooks — get push notifications when actions are approved
- Examples — working Python and Claude Code session prompts
- Stateless API — generate K-1s, ODD/DDQs, and analysis with just a doc_ key