Fabrication-free, DOI-backed citations for AI agents — real openAlex sources, never hallucinated.
Fabrication-free, DOI-backed citations for AI content & agents. Every result is a real openAlex record (CC0 public-domain data) with a resolvable DOI — the API never fabricates a source. Built to stop the hallucinated-citation problem that gets content E-E-A-T-demoted.
Separate deployable from giftedpicks.com (own Vercel project). Productizes the logic of
GiftedPicks/scripts/citation_magnet.py.
GET /api/cite?topic=<q>&n=5&since=YYYY → { topic, count, works[], markdown, source }
{ title, authors[], first_author, year, doi, doi_url, cited_by_count, venue, openalex_id }GET /api/health → { status, openalex, ts }Data: openAlex REST (relevance-ranked, peer-reviewed type:article). Set
OPENALEX_MAILTO env to join openAlex's polite pool. Edge-cached 1h per topic.
/cite + /health (openAlex REST, no key, no binary — serverless-portable)get_citations(topic, n, since) (stdio + http) — the agent-native surface.claude/secrets/stripe-test-{publishable,secret}-key saved by Kevin.
LIVE go-live = Kevin places the live secret key in the deploy env; agents never hold it.Public-domain data only (zero scraping / no unofficial-site APIs). Honesty is the product: output always says "verify each DOI resolves." Test-mode payments only until Kevin flips live; agents never move money or hold the live key.
Pro tier via hosted Stripe Checkout (subscription). On checkout.session.completed,
the signature-verified webhook (/api/stripe-webhook) provisions a Pro API key in
Redis (free→Pro quota elevation). Configure via env:
STRIPE_SECRET_KEY, STRIPE_PRICE_ID, STRIPE_WEBHOOK_SECRET, REDIS_URLSTRIPE_SECRET_KEY=sk_test_… node scripts/setup-stripe-product.js/api/checkout returns 503 and the citation API still runs free-tier.Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y agentcite-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-kevinx702-agentcite": {
"command": "npx",
"args": [
"-y",
"agentcite-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referenceio.github.Kevinx702/agentcite works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.