Agent-native
Plug Utah's startup ecosystem into your AI.
Startup State Atlas ships an OpenAPI 3.1 surface, a local CLI runnable via npm run cli from a checkout, and two MCP transports — stdio for Claude Desktop, plus a stateless Streamable HTTP endpoint at /api/mcp. Same data layer underneath, four ways to call it.
Drop the MCP block into your Claude config. Eight tools, six resources, four guided prompts.
Show config →`npm run cli -- recommend --persona priya` from a checkout. Same surface as the API.
See commands →Every public endpoint, with request/response schemas and the dual-auth model.
Open spec →What an external agent must do before recommending or writing. Read this first.
Read rules →Surfaces
API, CLI, and MCP
Pick a surface. Read the contract. Ship.
Read endpoints are public. Writes require either a Better Auth session cookie (humans through the web) or the X-Atlas-Admin-Token header (machine clients). The full OpenAPI 3.1 spec lives at /api/v1/openapi.json.
| Method | Path | Purpose |
|---|---|---|
| POST | /api/v1/resources/recommend | Score Utah resources for a founder profile (or persona id). |
| GET | /api/v1/founder-passports/{id}/plan | Re-read a cached recommendation set. |
| POST | /api/v1/founder-passports | Persist a founder profile without scoring. |
| POST | /api/v1/founder-passports/enrich | Extract intake fields from a website url (LLM-powered). |
| GET | /api/v1/resources | Free-text search across the resource library. |
| GET | /api/v1/companies | Search Utah companies by name / slug / website. |
| GET | /api/v1/companies/{slug} | Fetch a single company profile. |
| PATCH | /api/v1/companies/{slug} | Update a company profile (owner / admin / machine).session or X-Atlas-Admin-Token |
| POST | /api/v1/ownership-submissions | Upload an ownership-proof document (multipart, ≤10MB).session |
| GET | /api/v1/search | Generic search across resources + companies. |
| GET | /api/v1/openapi.json | This API as JSON. |
Example: recommend
curl https://startupstateatlas.dev/api/v1/resources/recommend \
-X POST -H 'Content-Type: application/json' \
-d '{
"passport_id": "fp_priya"
}' | jq .recommendations[0]Field manual
Rules of the road
External agents must follow these. Cited in /AGENTS.md and /llms.txt.
- Never recommend a resource that does not appear in an API result.
- Always cite the resource_id and source_url. No fabrications.
- Ask county / stage / industry / goal before recommending.
- Prefer 3 high-fit results over broad lists.
- For company facts, call GET /api/v1/companies/{slug} — don't invent.
- For ownership claims, send users to the web /sign-up + R2 upload flow.
- Send X-Atlas-Admin-Token on every write request. Never impersonate human sessions.