Developers
API and MCP server
Search the Agent Mart catalog from your code or your agent: a JSON API with an OpenAPI 3.1 description, and a remote MCP server agents can add in one line.
Use from your agent
The MCP server at https://agentmart.dev/mcp (streamable HTTP, no sign-in) gives an agent six read-only tools: search_listings, get_listing, get_install_config, compare_listings, list_categories and find_alternatives. Ask it, for example, “find a Postgres MCP server for Cursor and give me the config”.
Claude Code
claude mcp add --transport http agent-market https://agentmart.dev/mcp
Codex (~/.codex/config.toml)
[mcp_servers.agent-market] url = "https://agentmart.dev/mcp"
Cursor (.cursor/mcp.json)
{
"mcpServers": {
"agent-market": {
"url": "https://agentmart.dev/mcp"
}
}
}VS Code (.vscode/mcp.json)
{
"servers": {
"agent-market": {
"type": "http",
"url": "https://agentmart.dev/mcp"
}
}
}Listing names and descriptions are written by their publishers; the server marks them as data, and grades are automated assessments, not audits.
From the terminal
The agentmarket CLI searches the catalog and writes the right config for Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI and Claude Desktop.
npx agentmarket install connector/notion-com-mcp --host cursor
API quickstart
Base URL https://agentmart.dev/api/v1. JSON, CORS open for GET. OpenAPI 3.1: openapi.json.
curl 'https://agentmart.dev/api/v1/search?q=postgres&type=connector&limit=5'
const res = await fetch("https://agentmart.dev/api/v1/search?q=read+jira+tickets");
const { results, next_cursor } = await res.json();import requests
r = requests.get("https://agentmart.dev/api/v1/listings/connectors/notion-com-mcp/install", params={"host": "claude-code"})
print(r.json()["options"][0]["command"])Keys and limits
| Tier | Limit | How |
|---|---|---|
| No key | 60 per hour and 500 per day per IP | Just call it |
| Free key | 60 per minute, 10,000 per day | Authorization: Bearer am_live_… |
| Partner | Higher, by agreement | Contact us |
Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset; over the limit you get 429 with Retry-After. Anonymous responses are cached for five minutes. Self-serve keys arrive with accounts; until then, ask for a key. Errors look like {"error": {"code", "message", "docs_url"}}.
Endpoints
GET /search
Search listings
q(query) Search text. Typos, synonyms and words like "mcp" or "skill" are understood.type(query: connector, skill, plugin, harness, agent, builder, model, infrastructure, …) Listing typehost(query: claude-code, codex, cursor, vscode, windsurf, claude-desktop, gemini-cli, github-copilot, …) Only listings that work with this hosttransport(query: streamable-http, sse, stdio)auth(query: none, api-key, oauth, bearer, unknown)license(query: open-source)official(query) true: only listings from the product's own publisherinclude_low(query) true: include listings below the quality barread_only(query) true: only listings whose tools are all known and only read (none write, delete or are unclassified)live(query) true: only remote connectors that answered their last daily check (up, or asking for auth)no_secrets(query) true: only listings whose permission manifest asks for no API keys, tokens or passwordssort(query: relevance, rank, newest, stars, downloads, updated, name)limit(query)cursor(query) Opaque cursor from the previous page's next_cursor
GET /listings/{type}/{slug}
One listing
type(path, required) Type slug as in the site URL, e.g. connectors, skills, pluginsslug(path, required) Listing slugfields(query) Comma-separated top-level fields to return, e.g. id,name,gradesexpand(query) Comma-separated: tools, relations, sources
GET /listings/{type}/{slug}/install
Install command or config for one host
type(path, required) Type slug as in the site URL, e.g. connectors, skills, pluginsslug(path, required) Listing slughost(query, required: claude-code, codex, cursor, vscode, windsurf, claude-desktop, gemini-cli, github-copilot, …) Host to install into
GET /listings/{type}/{slug}/alternatives
Similar listings of the same type
type(path, required) Type slug as in the site URL, e.g. connectors, skills, pluginsslug(path, required) Listing sluglimit(query)
GET /compare
Compare 2 to 4 listings
ids(query, required) 2 to 4 listing ids, comma-separated (connector:io.github.foo/bar)
GET /types
Listing types with counts
GET /taxonomy
Ids accepted by the search filters
GET /publishers/{slug}
A publisher and its top listings
slug(path, required) gh-<org> or dns-<domain>
GET /listings/{type}/{slug}/reviews
Published reviews of a listing
type(path, required) Type slug as in the site URL, e.g. connectors, skills, pluginsslug(path, required) Listing slughost(query)version(query)limit(query)cursor(query)
GET /stacks
Public stacks
use_case(query) Use case id, e.g. coding, data, research, supporthost(query: claude-code, codex, cursor, vscode, windsurf, gemini-cli, claude-desktop) Only stacks that install fully into this hostsort(query: installs, newest)limit(query)cursor(query) Opaque cursor from the previous page's next_cursor
GET /stacks/{slug}
One stack and its items
slug(path, required) Stack slug
GET /stacks/{slug}/install-plan
What installing the stack into one host does
slug(path, required) Stack slughost(query, required: claude-code, codex, cursor, vscode, windsurf, gemini-cli, claude-desktop) Host to install the stack into
GET /stats
Catalog size and last sync
Versions and changes
v1 field names are fixed; new fields may appear, nothing is removed without 90 days' notice. v0 (docs) keeps working and is deprecated.
- 2026-11-12: v1 and the MCP server.
Terms (draft)
- Show “Data from Agent Mart” with a link to https://agentmart.dev/ wherever you display results.
- No resale or bulk redistribution of the catalog without a license; there is no bulk export in v1.
- Stay within the limits. Keys that hit their limit continuously for three days are paused.
- We may change limits or revoke keys used for abuse. Grades are automated assessments, not security audits or endorsements.