Attic
MCP server for Attic Capital. It gives any MCP client the public Attic API: weekly top-5 market reports for rare coins, sports cards, collector cars, and fine art, across 14 pillars, plus gatherings, Creators episodes, and site articles.
Headlines are public. Attic Beyond (the Beyond the Headlines layer, object dossiers, and Market Strength indexes) needs an API key, sent as X-Attic-Key. The paid tier will be sold through Stripe. This server does not take payment and does not ship checkout code. Until that exists, a key issued by Attic Capital is enough.
The wrapped API is OpenAPI 0.1.17. Answers cite atticcapital.com. Article output is the short excerpt only. This server never downloads an article body.
Install
Requires Node.js 18 or newer.
npx -y attic-mcp
attic-mcp was free on the npm registry on 20 October 2026. Until it is published, run from a checkout:
npm install
npm run build
node dist/stdio.js
Optional Beyond key:
export ATTIC_API_KEY="your-key"
Or a JSON file (--config attic.config.json) with apiKey, baseUrl, timeoutMs, retries, and cacheTtlMs. See attic.config.example.json. Precedence is request header, then --api-key, then ATTIC_API_KEY, then the file.
Reports are weekly. Responses are cached for 15 minutes by default (ATTIC_CACHE_TTL_MS). Requests time out after 12 seconds and retry twice on 429, 5xx, and network errors.
Claude Desktop
claude_desktop_config.json:
{
"mcpServers": {
"attic": {
"command": "npx",
"args": ["-y", "attic-mcp"],
"env": {
"ATTIC_API_KEY": "optional-beyond-key"
}
}
}
}
Leave out env if you only want public Headlines, articles, episodes, and gatherings.
Cursor
.cursor/mcp.json or the global MCP config:
{
"mcpServers": {
"attic": {
"command": "npx",
"args": ["-y", "attic-mcp"]
}
}
}
A repo-root .mcp.json is included for directory crawlers that look for that filename.
VS Code
.vscode/mcp.json:
{
"servers": {
"attic": {
"type": "stdio",
"command": "npx",
"args": ["-y", "attic-mcp"]
}
}
}
ChatGPT and other remote clients
Run the Streamable HTTP transport and give the client the /mcp URL.
npm run build
ATTIC_PORT=8787 node dist/http.js
Health check: http://127.0.0.1:8787/health
MCP endpoint: http://127.0.0.1:8787/mcp
In ChatGPT, add a custom connector (developer mode) and paste the public HTTPS URL of /mcp. For Beyond, set the request header X-Attic-Key. Authorization: Bearer <key> is accepted too. The server forwards either value as X-Attic-Key and does not log it.
Deploy steps are in PUBLISHING.md. Nothing in this repo is deployed for you.
What you can ask
- What changed in sports cards this week?
- Headlines top 5 for rare coins, pillar The Objects.
- Summarize the latest Attic article and link the page.
- Which Creators episode is about Nolan Ryan?
- Weekly brief for collector cars.
Prompts registered on the server: weekly-market-brief and what-changed-this-week.
Tools
attic_status | GET /status | Public |
attic_list_markets | GET /markets | Public |
attic_list_pillars | GET /pillars | Public |
attic_get_market_report | GET /roster | Headlines public, Beyond paid |
attic_get_report_entry | GET /entry | Headlines public, Beyond paid |
attic_search | GET /search (query) | Headlines public, layer=beyond paid |
attic_list_gatherings | GET /gatherings | Public |
attic_get_changes | GET /changes | Headlines public, layer=beyond paid |
attic_list_articles | GET /articles | Public excerpts |
attic_get_article | GET /article | Public excerpt |
attic_list_episodes | GET /episodes | Public |
attic_get_episode | GET /episode | Public |
attic_get_dossier | GET /dossier | Attic Beyond |
attic_get_indexes | GET /indexes | Attic Beyond |
attic_comps_status | GET /comps/status | Public |
attic_lookup_psa_cert | GET /comps/card/psa | Stub, key required |
attic_card_sold_comps | GET /comps/card/sold | Stub, key required |
attic_coin_sold_comps | GET /comps/coin/sold | Stub, key required |
Resources: attic://markets, attic://markets/{slug}, attic://pillars, attic://pillars/{slug}.
PSA and eBay-sold comps are stubs. PCGS comps are not offered. The tools say so. Do not invent grades or sold prices.
A gated call with no key returns an explanation that the content is Attic Beyond and links to https://atticcapital.com/. It does not surface a bare 401.
Develop
npm install
npm test
npm run build
npx @modelcontextprotocol/inspector --cli node dist/stdio.js --method tools/list
npm test calls the live public API (read-only) and validates server.json against the MCP Registry schema.
Registry
Registry name: com.atticcapital/attic. DNS for atticcapital.com is already verified with the MCP Registry. The npm package is the unscoped attic-mcp.
Listing copy, directory notes, and the exact publish steps are in LISTINGS.md and PUBLISHING.md. Do not publish from a checkout until you mean to.
Privacy
The server stores API responses in memory for the cache TTL. It does not write queries or keys to disk. A key is forwarded only to atticcapital.com as X-Attic-Key.
Contact: https://atticcapital.com/