@firsthandapi/mcp-server
This server is an archived MCP server for FirstHandAPI that originally let agents sign up for an API key and then manage human-in-the-loop data collection jobs; the service is now shut down and every tool returns a network error.
Bootstrap signup (no API key needed): call
signupwithorg_nameandemailto create an account, receive an API key, and get $2.50 in free credits (key shown once).Job creation:
create_jobposts a content collection job;create_job_and_waitposts and waits for completion.Job management:
get_jobfetches status/details,list_jobslists jobs with filters,cancel_jobcancels an open job.Result retrieval:
get_job_filesgets approved files with download URLs.Account/balance:
get_creditschecks the credit balance.Location constraints: job creation tools optionally accept
{ city, state }or{ latitude, longitude, radius_km }.Configuration: uses
FIRSTHAND_API_KEY(required for job tools), with optionalFIRSTHAND_BASE_URLandFIRSTHAND_TIMEOUT_MS.Deprecated: the project was archived 2026-08-22;
api.firsthandapi.comis permanently offline and the npm package is deprecated.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@firsthandapi/mcp-servercreate a job to collect 10 photos of dogs in Central Park"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ARCHIVED 2026-08-22 — FirstHandAPI is shut down and this server no longer works.
api.firsthandapi.comis permanently offline. Every tool in this MCP server returns a network error, and the@firsthandapi/mcp-servernpm package is deprecated on all versions. Thesignupflow 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:
npx @firsthandapi/mcp-server # no env var neededCall 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:
claude mcp add firsthandapi -e FIRSTHAND_API_KEY=fh_live_... -- npx @firsthandapi/mcp-serverWith 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 server for FirstHandAPI — 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.
Related MCP server: simple-fal-mcp
Installation
npm install @firsthandapi/mcp-serverConfiguration
Claude Code
{
"mcpServers": {
"firsthand": {
"command": "npx",
"args": ["@firsthandapi/mcp-server"],
"env": {
"FIRSTHAND_API_KEY": "fh_live_your_key_here"
}
}
}
}Cursor
Add to .cursor/mcp.json:
{
"firsthand": {
"command": "npx @firsthandapi/mcp-server",
"env": { "FIRSTHAND_API_KEY": "fh_live_..." }
}
}Tools
Tool | Description |
| Post a content collection job |
| Get job status and details |
| Post a job and wait for completion |
| List all jobs with filters |
| Cancel an open job |
| Get approved files with download URLs |
| 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 keyFIRSTHAND_BASE_URL(optional) — API base URL (default: https://api.firsthandapi.com)FIRSTHAND_TIMEOUT_MS(optional) — Request timeout (default: 30000)
License
Proprietary
Available Tools
1 toolsignupA
Create a FirstHandAPI buyer account and receive an API key plus $2.50 in free credits. Use this when the server is running without FIRSTHAND_API_KEY. The key is shown ONCE — store it, then restart the MCP server with FIRSTHAND_API_KEY set to unlock the job tools.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Contact email for the account (must not be a disposable address) | ||
| org_name | Yes | Organization or project name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the critical behavioral trait that the API key is shown only once and that the server must be restarted with FIRSTHAND_API_KEY. It does not cover failure modes or response details, but the most important operational quirk is clearly communicated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no filler. It front-loads the action and outcome, then adds necessary operational guidance. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter setup tool with no output schema, the description covers the purpose, the trigger condition, and the critical one-time-key warning. It could be slightly more explicit about the response format, but the operational guidance is strong enough to make the tool usable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both email and org_name already described in the input schema. The tool description adds no parameter-specific meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Create') with a clear resource ('FirstHandAPI buyer account') and states concrete outcomes (API key plus $2.50 in credits). This makes the tool's function unmistakable even without sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'when the server is running without FIRSTHAND_API_KEY.' It also provides clear follow-up steps (store the key, restart the MCP server, set the env var) and explains the purpose ('unlock the job tools').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
1 tool update
v0.2.0- First observed
signup
TDQS
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.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
MCP Server for an Agent Task Marketplace
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP server for QPost — lets AI agents publish video and image posts to YouTube, TikTok, Instagram.
Related MCP Servers
- AlicenseAqualityBmaintenanceMCP server for instruckt visual annotations. Enables AI agents to retrieve pending annotations, view screenshots, and resolve annotations.3370MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for fal model discovery, execution, pricing, and local media processing, enabling AI model workflows via natural language.125MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for AgentHire, an AI talent marketplace enabling agents to browse jobs, apply, manage interviews, and handle offers. Supports employer job creation, candidate matching, and compliance tips.10MIT
- FlicenseBqualityCmaintenanceMCP server for building a user-approved transcript corpus from Handy, optimizing post-processing prompts against LM Studio, and promoting winning inference settings.19-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jjfisherdev/firsthandapi-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server