mcp-utah-startup-state
v1.0.3
Published
MCP server exposing Utah startup companies and support resources via Claude
Maintainers
Readme
mcp-utah-startup-state
An MCP (Model Context Protocol) server that gives Claude instant access to Utah's startup ecosystem — 220 companies and 213 support resources, searchable by full-text query, industry, funding stage, and team size.
No configuration required. Credentials are bundled; just install and connect.
What's inside
| Dataset | Rows | Fields | |---------|------|--------| | Startups | 220 | name, industry section, funding stage, headcount, address, description, website, LinkedIn | | Resources | 213 | title, description, website, email (accelerators, grants, programmes, agencies, etc.) |
Both datasets support full-text search powered by PostgreSQL tsvector.
Quick start
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"utah-startups": {
"command": "npx",
"args": ["-y", "mcp-utah-startup-state"]
}
}
}Restart Claude Desktop. The tools will be available immediately.
Claude Code
Add to your project's .claude/settings.json, or globally to ~/.claude/settings.json:
{
"mcpServers": {
"utah-startups": {
"command": "npx",
"args": ["-y", "mcp-utah-startup-state"]
}
}
}Run directly
npx mcp-utah-startup-stateRequirements: Node.js 18 or later.
Tools
The server registers 9 tools. The four Utah-specific tools are the primary interface; the five generic tools allow raw SQL-style access to any table.
Utah-specific tools
utah_search_startups
Full-text search and multi-filter across all 220 Utah startups.
| Parameter | Type | Description |
|-----------|------|-------------|
| query | string? | Websearch-style text query matched against name and description |
| sections | string[]? | Filter by industry — see valid values below |
| stages | string[]? | Filter by funding stage — see valid values below |
| employee_bands | string[]? | Filter by headcount band — see valid values below |
| limit | number | Max results, 1–100 (default 20) |
| offset | number | Pagination offset (default 0) |
| response_format | 'markdown'\|'json' | Output format (default 'markdown') |
Valid filter values (or call utah_get_filter_options at runtime):
- sections:
B2B Software·Bio/Medical Tech·Consumer·Energy·FinTech·Marketplaces·Security - stages:
Bootstrapped·Pre-Seed·Seed·Series A·Series B·Series C·Series D+ - employee_bands:
2-10·11-50·51-200·201-500·501-1K·1K-5K
utah_search_resources
Full-text search across 213 Utah startup support resources.
| Parameter | Type | Description |
|-----------|------|-------------|
| query | string | Websearch-style query matched against title and description |
| limit | number | Max results, 1–100 (default 20) |
| offset | number | Pagination offset (default 0) |
| response_format | 'markdown'\|'json' | Output format (default 'markdown') |
utah_get_filter_options
Returns the complete list of valid values for sections, stages, and employee_bands. No parameters.
Useful as a first call before filtering startups — passes the exact strings Claude needs.
utah_startup_stats
Returns aggregated counts across all startups, grouped by industry section, funding stage, and headcount band. No parameters.
{
"total": 220,
"by_section": { "B2B Software": 121, "Consumer": 37, "FinTech": 18, ... },
"by_stage": { "Seed": 113, "Series A": 53, "Series B": 19, ... },
"by_employees": { "11-50": 87, "2-10": 73, "51-200": 41, ... }
}Generic database tools
These tools work with any table and are useful for ad-hoc exploration.
| Tool | Description |
|------|-------------|
| supabase_list_tables | List all tables in the database |
| supabase_get_table_schema | Column names, types, and nullability for a given table |
| supabase_select | Query rows with filters, sorting, and pagination |
| supabase_count | Count rows with optional filters |
| supabase_rpc | Call a PostgreSQL stored function |
Example questions Claude can answer
What are the top FinTech startups in Utah at Seed stage?Find AI or machine learning companies in Utah with fewer than 50 employees.What accelerator programs are available for Utah startups?Which Utah startups have raised a Series A or later?Give me an overview of the Utah startup ecosystem by industry.Find equity-free grants or funding resources for early-stage founders.List B2B software companies in Salt Lake City.Development
git clone https://github.com/your-org/mcp-server-utah-startup-state
cd mcp-server-utah-startup-state
npm install
npm run dev # watches src/ and recompiles on changeTest interactively with the MCP Inspector:
npx @modelcontextprotocol/inspector node dist/index.jsThen open http://localhost:5173 to call tools from a browser UI.
Project structure
src/
├── index.ts # Entry point — registers tools, starts stdio server
├── config.ts # Bundled database credentials (env-overridable)
├── types.ts # Enums: FilterOperator, SortOrder, ResponseFormat
├── constants.ts # CHARACTER_LIMIT, DEFAULT_LIMIT, MAX_LIMIT
├── services/
│ └── supabase.ts # Supabase client singleton
└── tools/
├── database.ts # 5 generic Supabase tools
└── utah.ts # 4 Utah-specific domain toolsPublishing
npm login
npm publishprepublishOnly runs npm run build automatically before publishing. Only the dist/ directory is included in the package.
License
MIT
