graphrag-ts citation provenance

io.github.sadofriodPublished by GitHub account sadofriodv0.1.25Updated Nov 3, 2026

Source-tiered retraction and citation judgments for DOIs; abstains when evidence is thin.

VerifiedStreamable HTTPWeb executableWeb Search & ScrapingKnowledge & Memory

Overview

graphrag-ts citation provenance's hosted MCP server (mcp.ashesborn.cloud); optional API key; Streamable HTTP; 3 tools.

No AI overview yet: these facts come from the registry entry and the server itself.

Endpoint
mcp.ashesborn.cloud
Last checked

Installation

In SourceWeft

  1. Open graphrag-ts citation provenance in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.sadofriod%2Fgraphrag-ts/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "graphrag-ts-citation-provenance": {
      "type": "http",
      "url": "https://mcp.ashesborn.cloud/mcp"
    }
  }
}

README

graphrag-ts

[Listed on mcpservers.org] [graphrag-ts MCP server]

Attribution is stored at write time, not asserted at read time.

graphrag-ts is a GraphRAG engine in TypeScript. It builds the knowledge graph in PostgreSQL, keeps source evidence on every node and edge, and answers with retrievable citations — or returns an explicit abstention when the coverage behind an answer is too thin to support it.

Benchmarks / 基准报告 English report · 中文报告

Hosted endpoint / 托管端点 https://mcp.ashesborn.cloud/mcp (anonymous tier: free integrity_paper_status, the two judgments answer with an x402 payment requirement; a keyed session unlocks them) · free DOI status: https://pay.ashesborn.cloud/api/v1/judge/paper?doi= · x402 wire format

[graphrag-ts-pg MCP connector – tool definition quality and endpoint health on Glama]

Try it in 60 seconds

No install, no API key, no model endpoint. Two ways in:

  • In a browser: Retraction Status — paste a DOI, get the source-by-source retraction status and the evidence tiers behind it, with no local model and no account.
  • From the command line:
bash
curl -s 'https://pay.ashesborn.cloud/api/v1/judge/paper?doi=10.1016/S0140-6736(97)11096-0'

The response is the paper plus every retraction record behind it, each with its source_tier and source_uri — the evidence the graph stores, not a model's recollection of it.

Point any Streamable HTTP MCP client at the hosted endpoint (public read tier, 20 requests/minute per IP):

json
{  "mcpServers": {    "graphrag-ts": { "url": "https://mcp.ashesborn.cloud/mcp" }  }}

A bearer API key unlocks the full tool set (graph queries, index jobs, memory writes). The two judgment tools also answer per call without a key via x402 payment ($0.02 / $0.10).

What it does differently

  • Postgres-native. Graph tables and pgvector live in the database you already operate — no Neo4j sidecar and no second store to keep in sync.
  • Incremental by construction. Rebuilds reuse unchanged community summaries, so the cost of a refresh tracks the delta rather than the corpus size.
  • Two retrieval shapes. Local: hybrid vector, keyword and graph retrieval over a community's evidence. Global: Map-Reduce over community summaries for corpus-wide questions.
  • Explicit abstention. Judgment verdicts carry source tiers and return an abstention when reference coverage is thin, instead of answering from a weak signal.
  • Evidence at chunk level. Entities and relationships keep the document and chunk they were extracted from, so an answer can be traced back to the text that produced it.

MCP tools

ToolAccessWhat it does
query_graphkeyedLocal hybrid retrieval against the latest published snapshot in a workspace
query_graph_globalkeyedCorpus-wide Map-Reduce retrieval over community summaries
submit_index_jobkeyedQueue Markdown from the configured input directory for indexing
remember_textkeyedQueue user-provided text explicitly; never reads chat history
get_index_jobkeyedStatus and safe error summary for an index job
integrity_paper_statuspublicRetraction status and identity for a paper
retraction_propagationpublic / x402Judge whether retraction evidence propagates to a paper
integrity_evidence_auditpublic / x402Audit the evidence path, source tiers and conflicts for a paper

Quick start — self-hosted

MCP with Docker Compose

The Compose stack starts PostgreSQL/pgvector and the MCP service. You must provide reachable chat and embedding endpoints; see the MCP guide for configuration, client setup, and workspace behavior.

bash
cp .env.example .env# Configure the database password and model endpoints in .env.docker compose up -d --buildcurl http://127.0.0.1:3000/healthz

Connect an MCP client to http://127.0.0.1:3000/mcp. For the optional local browser showcase, configure the models and run docker compose --profile showcase up -d --build --wait, then open http://127.0.0.1:8080. The showcase is a local demo, not an authentication layer; do not expose it to untrusted users.

Use the library

bash
pnpm installpnpm run db:generatecp .env.example .env# Configure DATABASE_URL and RAG_* model settings; see the guides below.pnpm run db:pushbun run examples/demo.ts

The library requires Bun, PostgreSQL with pgvector, and compatible chat and embedding endpoints. See the English guide or 中文指南 for environment setup, API examples, adapters, and tuning.

Overview

  • Markdown ingestion, entity/relationship extraction, and community detection
  • Full and incremental builds, with unchanged community summaries reused
  • Hybrid vector, keyword, and graph retrieval, plus corpus-wide Map-Reduce queries
  • MCP server with isolated workspaces and a local browser showcase

See the architecture guide for the pipeline and module details.

Benchmark

The reported in-corpus run reached 10/12 strict hits and 95.8% combined lexical recall on 12 questions from five indexed chapters. This is a small project benchmark, not human semantic grading or a cross-project comparison. The reports include methodology, per-query results, and limitations.

The English and Chinese reports are linked at the top of this page. To run the three-question Docker smoke benchmark, use pnpm benchmark:docker:quick with the model endpoints configured and loaded. See the MCP guide for prerequisites and the report for benchmark scope.

Listed on

Documentation

Contributing

Contributions are welcome through issues and pull requests. The project is organized around small, testable modules, so the most useful changes usually fit into one of these areas:

  • graph construction quality
  • retrieval quality and ranking
  • namespace isolation
  • model-loading robustness
  • documentation and examples

License

MIT

Source: README.md at commit 82fbaba

Tools

3

integrity_paper_status

Look up one paper by DOI or OpenAlex id and return its identity (title, year, venue) plus every retraction record the graph holds for it, each with its source and source tier: A is an official registry, B an authoritative index, C an aggregator. Use it to check whether a paper is retracted and which sources assert it; use retraction_propagation to judge whether that retraction reaches a specific citing paper. Free in the public tier. Returns: paper identity and statuses[] with source, source_tier, is_retracted, retraction_date and source_uri; abstention_reason when the paper is not in the snapshot.

Parametersdoipaper_id

retraction_propagation

Judge whether a retraction propagates to a paper through its citation graph: retraction evidence is weighted by source tier, the citing context is checked for an acknowledgement, and the tool returns CONTESTED, SUPPORTED or ABSTAINED with the evidence path behind the verdict. Use it after integrity_paper_status when the question is "does this retraction reach this paper". It abstains instead of guessing when reference coverage is thin. Returns: verdict, confidence, the evidence path that produced it, and abstention details when the verdict is ABSTAINED. Paid: $0.02 per call (x402 on Base, POST /api/v1/judge); a keyed MCP session also unlocks it.

Parametersdoipaper_id

integrity_evidence_audit

Audit the evidence behind a paper's retraction picture: every source record with its tier and URI, the dates involved, conflicts between sources (an official registry and an aggregator disagreeing, or a citation acknowledging a retraction the graph does not propagate) and the coverage gaps that bound the conclusion. Use it when you must justify or challenge a verdict; for a one-line status use integrity_paper_status. Returns: evidence records with source tiers and URIs, detected conflict flags with codes and details, and the coverage that limits how strong the conclusion can be. Paid: $0.10 per call (x402 on Base, POST /api/v1/judge); a keyed MCP session also unlocks it.

Parametersdoipaper_id

Version history

2
  1. v0.1.25LatestNov 3, 2026
  2. v0.1.22Oct 29, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts