workatastartup-mcp
# Work at a Startup MCP Server ๐
[](https://pypi.org/project/workatastartup-mcp/)
[](LICENSE)
[](https://www.python.org/downloads/)
[](https://modelcontextprotocol.io/)
A Model Context Protocol (MCP) server for querying **Y Combinator** jobs and companies via [Work at a Startup](https://www.workatastartup.com).
This MCP server equips AI assistants (Claude Desktop, Cursor, Gemini CLI, Antigravity) with direct access to search YC startups, explore active job listings, inspect tech stacks, filter by required skills, salary ranges, equity, and US visa sponsorship status.
---
## ๐ ๏ธ Features & Available Tools
The server provides 4 FastMCP tools:
1. **`search_jobs`**: Search YC startup job listings with advanced filters.
- `query` (str): Search term (e.g. `"backend"`, `"AI agent"`, `"Rust"`).
- `role` (Optional[str]): Functional role (`"eng"`, `"design"`, `"product"`, `"ops"`, `"sales"`, `"marketing"`).
- `eng_type` (Optional[str]): Engineering specialization (`"be"`, `"fe"`, `"fs"`, `"ml"`, `"mobile"`).
- `job_type` (Optional[str]): Employment type (e.g. `"fulltime"`, `"contract"`).
- `min_experience` (Optional[int]): Maximum required experience level in years (`min_experience <= N`).
- `max_team_size` (Optional[int]): Maximum company team size (`company_team_size <= N`).
- `batch` (Optional[str]): YC Batch (e.g. `"W24"`, `"S23"`).
- `remote` (bool): Filter for remote positions (`True` / `False`).
- `visa` (bool): Filter for US visa sponsorship (`True` / `False`).
- `page` (int): Page index (default `0`).
- `limit` (int): Number of companies per page (default `10`).
2. **`get_company_details`**: Fetch detailed YC company profile & open roles.
- `company_id` (int): Unique YC company ID.
- Returns: YC Batch, website, team size, location, founders, tech stack description, and active open job listings.
3. **`get_job_details`**: Retrieve full details for a specific job listing.
- `job_id` (int): Unique job ID.
- Returns: Full job description (Markdown), role type, experience level, salary range, equity range, visa status, required skills, and direct application URL.
4. **`filter_jobs_by_skills`**: Filter active jobs matching a list of target technologies/skills.
- `skills` (List[str]): List of skills/technologies (e.g., `["Python", "PyTorch", "PostgreSQL"]`).
- `limit` (int): Maximum number of matching jobs to return (default `10`).
---
## ๐ป Quick Start & Installation
### Option 1: Using `uvx` or `pipx` (Recommended)
Run instantly without cloning or manually installing:
```bash
uvx workatastartup-mcp
```
### Option 2: Using `pip`
```bash
pip install workatastartup-mcp
workatastartup-mcp
```
### Option 3: Development / Source Installation
```bash
git clone https://github.com/MIt9/workatastartup-mcp.git
cd workatastartup-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
```
---
## โ๏ธ Configuration for MCP Clients
### Claude Desktop
Add to your `claude_desktop_config.json`:
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"workatastartup": {
"command": "uvx",
"args": [
"workatastartup-mcp"
]
}
}
}
```
### Cursor / VS Code / Gemini CLI / Antigravity
```json
{
"mcpServers": {
"workatastartup": {
"command": "uvx",
"args": [
"workatastartup-mcp"
]
}
}
}
```
---
## ๐งช Running Tests
```bash
# Run unit & integration tests
.venv/bin/pytest
# Run fast unit tests only (skip live API calls)
.venv/bin/pytest -m "not integration"
```
---
## ๐ License
Distributed under the [MIT License](LICENSE).
TDQS
Scored across 4 tools
Most tools are clearly separated by entity type and action, but 'search_jobs' and 'filter_jobs_by_skills' overlap in the job search space. A clear distinction between broad search and skill-based filtering exists, though not immediately obvious.
Tool names mix verb_noun forms inconsistently: 'search_jobs' and 'get_company_details' use different verb styles, and 'filter_jobs_by_skills' is phrased much more verbosely than the others. A consistent pattern like 'list_jobs', 'get_job_details', 'get_company_details', and 'filter_jobs_by_skills' would be more predictable.
Four tools is an appropriate, focused scope for a job board integration. Each tool covers a core function without bloat.
The surface covers searching jobs, filtering by skills, and retrieving company and job details, which handles primary browsing workflows. However, there are no tools for application-related actions or locating companies/jobs, leaving some workflow gaps.