AgentCite
Fabrication-free, DOI-backed citations for AI content and agents, using openAlex public-domain data with resolvable DOIs. Includes an API and planned MCP server for agent-native citation retrieval.
README
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 }
- each work:
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)
- ✅ Core
/cite+/health(openAlex REST, no key, no binary — serverless-portable) - ⏳ API-key + quota gate (Supabase: anon free tier rate-limited vs keyed Pro)
- ⏳ MCP server:
get_citations(topic, n, since)(stdio + http) — the agent-native surface - ⏳ Stripe billing (TEST mode first; hosted Checkout/Payment Link → webhook provisions quota).
GATED: needs
.claude/secrets/stripe-test-{publishable,secret}-keysaved by Kevin. LIVE go-live = Kevin places the live secret key in the deploy env; agents never hold it. - 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/checkoutreturns503and the citation API still runs free-tier.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.