Back to Directory/Developer Tools

io.github.Kevinx702/agentcite

Fabrication-free, DOI-backed citations for AI agents — real openAlex sources, never hallucinated.

Developer ToolsHTMLv0.1.1

AgentCite

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.

API (MVP)

  • GET /api/cite?topic=<q>&n=5&since=YYYY → { topic, count, works[], markdown, source }
    • each work: { 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.

Roadmap (build order)

  1. ✅ Core /cite + /health (openAlex REST, no key, no binary — serverless-portable)
  2. ⏳ API-key + quota gate (Supabase: anon free tier rate-limited vs keyed Pro)
  3. ⏳ MCP server: get_citations(topic, n, since) (stdio + http) — the agent-native surface
  4. ⏳ Stripe billing (TEST mode first; hosted Checkout/Payment Link → webhook provisions quota). GATED: needs .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.
  5. Landing page + MCP-registry listings — owned by Cowork.

Guardrails

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.

Billing (Stripe)

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_URL
  • Create the Pro product/price once: STRIPE_SECRET_KEY=sk_test_… node scripts/setup-stripe-product.js
  • Without Stripe env set, /api/checkout returns 503 and the citation API still runs free-tier.

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y agentcite-mcp

Set up in your AI client

Merge 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.

json
{
  "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 reference

Package

agentcite-mcpnpm

Compatible MCP Clients

io.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.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.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.

Learn More