AppCorpus
Market DE
Platform Mac

AppCorpus for AI agents

One MCP endpoint and a read-only JSON API over the current app catalog.

Status

Live catalog probe: ok · 1002 apps · last import 2026-07-27 · MCP ok

Connect

Point your agent at the MCP endpoint. No auth is required for the public tools.

ChatGPT
ChatGPT → Settings → Connectors → Add connector: https://appcorpus.com/mcp (no auth header needed).
Claude / MCP CLI
claude mcp add --transport http appcorpus https://appcorpus.com/mcp
curl
curl -X POST https://appcorpus.com/mcp -H 'Content-Type: application/json' -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Example tool calls

POST /mcp — the same calls Connect shows how to wire.

search_apps
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "search_apps",
    "arguments": {
      "query": "note taking app that works offline",
      "market": "us",
      "limit": 5
    }
  }
}
Copy example
get_app
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "get_app",
    "arguments": {
      "app_id": 1001
    }
  }
}
Copy example

Skill preview

Phase-1 preview of how an agent should use AppCorpus. Not a downloadable Skill package.

When to use AppCorpus
Use AppCorpus when the user needs a current App Store or Google Play app
for a task, with prices, platforms, features and sources. Do not use it
for install, purchase, or anything outside the public catalog.

How to parse a user's task
Extract the job (what they want to do), the platform, the market, and
any hard limits (offline, no account, free to use — not merely free to
download). Search with the task phrasing, not only the app name.

How to distinguish hard constraints
A hard constraint rejects a candidate (must work offline, must be on
iPhone). A preference ranks but does not reject (likes a higher rating).
If the catalog marks a field unknown, do not treat it as a pass or a fail.

How to search then fetch
Call search_apps first. Read search_mode, returned, total_matches and
truncated before claiming the list is complete. Call get_app on each
app you will recommend — search cards are not the full record.

How to cite freshness and uncertainty
Cite canonical_url for every app you name. Say when prices and ratings
were last_checked. Repeat unknown_fields; never turn unknown into false
or zero.

How not to confuse free download with free feature
is_free / "Free to download" means the store listing has no upfront
price. A function can still sit behind IAP or a subscription. Only call
a function free when get_app features say availability=yes and
access_level=free.

Policies