About icantmarket-mcp
icantmarket-mcp connects MCP clients to icantmarket, a verified help-exchange for technical founders. It supports browsing products and requests, as well as posting requests and submitting reviews; write operations require an API token.
Key features
- 01Browse verified products
- 02Browse open requests
- 03Post structured requests
- 04Submit reviews
- 05Check token identity
Use cases
- 01Find products by category
- 02Locate launch requests to review
- 03Post a product help request
- 04Review another maker’s request
MCP support
The server exposes icantmarket product, request, identity, and review operations to MCP clients. Read tools work without a token; write tools require `ICANTMARKET_API_TOKEN`.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y icantmarket-mcpICANTMARKET_API_TOKENSecretBearer token for write operations (post_ask, submit_review, whoami). Mint at https://icantmarket.com/me/api-tokens. Reads work without it.ICANTMARKET_BASE_URLOptional override for the API base URL. Default https://icantmarket.com/api/v1.Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
7Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| limit | integer | No | |
| offset | integer | No | |
| category | enum | No | devtools | oss_libraries | apis_infra | ai_ml_workflow | devops |
Details
From the project READMEicantmarket-mcp
You shipped the thing and now it sits at zero users, because promoting it is a different job than building it. icantmarket is a verified help-exchange where technical founders trade that work with each other — and this server puts it in the tool you already have open, so asking for help doesn't cost you a context switch.
MCP server for icantmarket — a verified help-exchange for technical founders. Browse verified products, browse open asks, post structured asks, submit reviews — all from a Claude Code / Cursor / Claude Desktop / any MCP-aware client.
list_products → get_product → list_asks → get_ask → whoami
↓
post_ask · submit_review
Install
Works with any MCP-compliant client. The canonical run command is npx -y icantmarket-mcp over stdio, with ICANTMARKET_API_TOKEN exported in the env if you want the write tools.
Claude Code
claude mcp add icantmarket --env ICANTMARKET_API_TOKEN=ic_xxx \
-- npx -y icantmarket-mcp
OpenAI Codex CLI
Add to ~/.codex/config.toml:
[mcp_servers.icantmarket]
command = "npx"
args = ["-y", "icantmarket-mcp"]
env = { ICANTMARKET_API_TOKEN = "ic_xxx" }
Cursor / Windsurf / Claude Desktop / Continue.dev / Zed / Cline
Same JSON shape for all of them. Drop into ~/.cursor/mcp.json, claude_desktop_config.json, ~/.continue/config.json, your Zed settings.json under context_servers, or wherever the client expects MCP server definitions:
{
"mcpServers": {
"icantmarket": {
"command": "npx",
"args": ["-y", "icantmarket-mcp"],
"env": { "ICANTMARKET_API_TOKEN": "ic_xxx" }
}
}
}
MCPier
It's in the official catalog:
pier install icantmarket-mcp
Get a token
Mint at icantmarket.com/me/api-tokens (sign in first). Token shape: ic_<24-byte hex>. Shown exactly once at creation — only the SHA-256 hash is stored server-side.
Reads (list_products, get_product, list_asks, get_ask) work without a token. Writes (whoami, post_ask, submit_review) need one.
Tools
| Tool | Auth | What it does |
|---|---|---|
list_products | none | Browse L1+ verified active products. Filter by category. Paginated. |
get_product | none | One product by slug + count of open asks. |
list_asks | none | Browse open public asks. Filter by status, type, product_slug. |
get_ask | none | One public ask by UUID + product summary. |
whoami | token | Sanity-check the token + return identity. |
post_ask | token | Post a structured ask. Must own the product. |
submit_review | token | Submit a substantive review on someone else's ask. |
What this is for
When a maker says to their agent:
- "Post an update ask for my YantrikDB Server v0.8.20 launch." → agent uses
list_productsto find the slug + UUID, thenpost_ask. - "Find me a launch ask in
devtoolsI could review." → agent useslist_asks?type=launchand surfaces the results. - "Review the open ask on
saga-mcp." → agent useslist_asks?product_slug=saga-mcp→get_ask→submit_review.
What this is NOT for
- Not a freelance marketplace — no money changes hands; the exchange is peer review of work, not paid help.
- Not for non-technical / consumer marketing — the cohort is technical founders shipping devtools, AI/ML, infra, or OSS libraries.
- Not for bulk outreach / scraping — Review-to-Post + per-token rate limits make automation-as-spam unviable by design.
- Not for anonymous posting — every ask is tied to a verified maker identity (GitHub repo admin, DNS TXT, or package provenance).
- Not for post-launch ad placement — asks are pre-/at-launch help requests, not retrospective promo.
Anti-gaming the agent should know about
icantmarket runs the same anti-gaming surface on the API path that the browser path does:
- Hype-word detector —
revolutionary,game-changing,best-in-class,10x, etc. onpost_askbody fields trigger 422. Rewrite, or passhype_acknowledged: trueto override and accept the soft-flag. - Review-to-Post gate — second-and-onward asks need one credited Helpful/Completed review on someone else's ask first.
post_askreturns 422 with the reason if blocked. - Self-review block —
submit_reviewrejects reviewing one's own asks. - Content-fingerprint similarity — pasted boilerplate against your own prior reviews surfaces as a soft-flag.
- Famous-name gate — claims on famous package/repo names (react, numpy, etc.) go through admin pending_review before they're posted to.
- Per-token rate limits — 30/hr for posts and reviews.
If an agent gets repeatedly 422-blocked, the platform is telling it the submissions aren't substantive. Fix the content, not the path.
Voice constraint
The agent's post_ask and submit_review content should be:
- factual, concrete, specific
- no marketing voice (no "revolutionary", no "game-changing", no "10x")
offer_backshould name something real you can give in returnsuccess_criteriashould be measurable — what does the helper's input actually let you do?
Configuration
Environment variables:
| Variable | Required | Default | Purpose |
|---|---|---|---|
ICANTMARKET_API_TOKEN | for writes | — | Bearer token from /me/api-tokens |
ICANTMARKET_BASE_URL | no | https://icantmarket.com/api/v1 | Override for staging / self-host |
Source
- Server: github.com/spranab/icantmarket-mcp
- Platform: github.com/spranab/icantmarket (private — but the OpenAPI spec is public at
/api/v1/openapi.json) - llms.txt: icantmarket.com/llms.txt
Related projects
Other MCP servers and agent infrastructure by the same author:
- saga-mcp — SQLite-backed project tracker for AI agents.
- brainstorm-mcp — multi-model debate as an MCP tool.
- yantrikdb-mcp — persistent cognitive memory for Claude Code, Cursor and Windsurf.
- mcpier — self-hosted MCP control plane that keeps API keys off your clients.
- truenas-mcp — 278 TrueNAS SCALE actions behind one hierarchical tool.
License
MIT.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.