@firsthandapi/mcp-server
> **ARCHIVED 2026-08-22 — FirstHandAPI is shut down and this server no longer works.**
>
> `api.firsthandapi.com` is permanently offline. Every tool in this MCP
> server returns a network error, and the `@firsthandapi/mcp-server` npm
> package is deprecated on all versions. The `signup` flow below cannot
> issue keys.
>
> Write-up of what was built and why it was killed:
> <https://jjfisher.dev/writing/2026-w34-firsthandapi-postmortem>
>
> Kept read-only as a reference implementation of an MCP server with a
> keyless bootstrap tool.
# @firsthandapi/mcp-server — FirstHandAPI MCP Server
## Zero-to-job for agents (bootstrap mode)
No API key yet? Start the server anyway — it exposes a single `signup` tool:
```bash
npx @firsthandapi/mcp-server # no env var needed
```
Call `signup` with an `org_name` and `email` to receive an API key and $2.50
in free credits (the key is shown once — save it), then restart configured:
```bash
claude mcp add firsthandapi -e FIRSTHAND_API_KEY=fh_live_... -- npx @firsthandapi/mcp-server
```
With the key set, all 7 job tools unlock: `create_job`, `create_job_and_wait`,
`get_job`, `list_jobs`, `get_job_files`, `cancel_job`, `get_credits`.
Official [MCP](https://modelcontextprotocol.io) server for [FirstHandAPI](https://firsthandapi.com) — human-in-the-loop (HITL) crowdsourced data collection. Enables Claude Code, Cursor, and other AI agents to collect photos, audio, video, and screen recordings from real human workers with automated AI quality scoring.
Use cases: UGC collection, ground truth data for AI evaluation, LLM training data for multimodal models.
## Installation
```bash
npm install @firsthandapi/mcp-server
```
## Configuration
### Claude Code
```json
{
"mcpServers": {
"firsthand": {
"command": "npx",
"args": ["@firsthandapi/mcp-server"],
"env": {
"FIRSTHAND_API_KEY": "fh_live_your_key_here"
}
}
}
}
```
### Cursor
Add to `.cursor/mcp.json`:
```json
{
"firsthand": {
"command": "npx @firsthandapi/mcp-server",
"env": { "FIRSTHAND_API_KEY": "fh_live_..." }
}
}
```
## Tools
| Tool | Description |
|------|-------------|
| `create_job` | Post a content collection job |
| `get_job` | Get job status and details |
| `create_job_and_wait` | Post a job and wait for completion |
| `list_jobs` | List all jobs with filters |
| `cancel_job` | Cancel an open job |
| `get_job_files` | Get approved files with download URLs |
| `get_credits` | Check credit balance |
All job creation tools accept an optional `location` parameter: `{ city, state }` for text-based or `{ latitude, longitude, radius_km }` for coordinate-based constraints.
## Environment Variables
- `FIRSTHAND_API_KEY` (required) — Your API key
- `FIRSTHAND_BASE_URL` (optional) — API base URL (default: https://api.firsthandapi.com)
- `FIRSTHAND_TIMEOUT_MS` (optional) — Request timeout (default: 30000)
## License
Proprietary
TDQS
Scored across 1 tool
Only one tool exists, so there is no possibility of confusion or overlap. Its purpose is clearly defined as account creation and API key retrieval.
With a single tool, naming is perfectly consistent by definition. The verb-form 'signup' is clear and unambiguous, even if it doesn't follow a verb_noun pattern.
The server's own description mentions 'job tools' that will be unlocked after restart, yet only signup is exposed. A single tool is too few for the apparent broader API scope, making the tool set feel thin and incomplete.
The server is described as a FirstHandAPI MCP server with the intent to provide job tools, but only signup is available. This creates a severe gap—users can create an account but cannot perform any actual job operations, leaving the advertised surface almost entirely absent.