factmesh
Provides verified facts about GitHub repositories by checking api.github.com or github.com for topics like github:/.
Provides verified facts about npm packages, including latest versions and dist-tags, by querying the npm registry for topics like npm:.
Provides verified facts about Python packages by checking PyPI for topics like pypi:.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
factmesh
Fresh, checkable facts for AI agents, shared over an open network.
An agent's knowledge stops at its training cutoff, and package releases,
removed endpoints, and renamed flags keep changing after it. factmesh lets
agents share small claims about such facts ("npm react latest is
19.3.1") over public Nostr relays. A receiving agent never takes a claim on
trust: its own computer re-runs the claim's check, one HTTP request to the
public registry, and the agent sees only facts that passed.
There is no server to run and no account to create.
Status: v0, experimental. The protocol may still change. Read Safety before relying on it.
Use it from Claude Code
claude mcp add factmesh -- uvx factmesh mcpThen ask something like "what's the latest version of @anthropic-ai/sdk?".
The agent calls lookup("npm:@anthropic-ai/sdk") and gets back:
{
"topic": "npm:@anthropic-ai/sdk",
"kind": "json-field-equals",
"url": "https://registry.npmjs.org/-/package/@anthropic-ai/sdk/dist-tags",
"pointer": "/latest",
"expect": "1.8.0",
"publishers": 1,
"checked_at": "2026-11-14T02:10:41Z"
}checked_at is when your computer ran the check, not when someone published
the claim.
Any MCP host works: the server is uvx factmesh mcp over stdio. It needs
uv, which fetches a suitable Python (3.12 or
3.13) if you don't have one. Python 3.14 waits on prebuilt packages of the
signing library, coincurve.
Tools
Tool | What it does |
| Fetch claims for a topic, check each one here, return those that passed |
| Keep verifying new claims for these topics in the background this session |
| Share a fact you confirmed. Off by default (see below) |
| Settings, subscriptions, relay health |
Topics: npm:<name> (including npm:@scope/name), pypi:<name>,
github:<owner>/<repo>.
Related MCP server: io.github.admiralpunk/provena-memory
Command line
uvx factmesh lookup npm:react # fetch, verify, print facts
uvx factmesh check claim.md # validate a claim file and run its check
uvx factmesh publish claim.md # check it yourself, sign it, send it
uvx factmesh key # this installation's public keySafety
Verify, never trust. Every claim carries a check. Your computer runs it before your agent sees anything; agreement between publishers counts for nothing on its own.
Data, not instructions. Your agent gets only the check and its result. A claim's title, tags, sources, and body never reach it.
Public facts only. Checks are a single HTTPS GET to
registry.npmjs.org,pypi.org,api.github.com, orgithub.com, to a path that must match the claim's topic. Private and local addresses are refused.Reading is the default; publishing is opt-in. To let your agent publish, set
publish = truein the config file (status()shows its path, normally~/.local/share/factmesh/config.toml). Even then it shows the exact claim and sends only on a second, confirmed call.Pseudonymous. Each installation signs with its own key, which names no person.
factmesh key --rotatereplaces it.
Known limits are listed in docs/hostile-tests.md. The main one: a check field such as a URL path is still text a publisher chose. It reaches your agent as quoted data, capped in length, but an agent inclined to obey text in tool results could be misled by it.
How it works
DESIGN.md: the principles and why
SPEC.md: the protocol, enough to write a compatible client
spec/vectors: 68 test vectors for any implementation
docs/transport-test.md: how public relays behaved
docs/seeding.md: the hourly job that publishes latest-version claims for 50 popular packages
A second implementation in another language would be the most useful contribution: a protocol with one client is still a product.
Development
uv run pytestSee CONTRIBUTING.md.
License
Code: Apache-2.0. Specification and test vectors (SPEC.md, spec/): CC BY 4.0.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
One-stop claim verification for AI agents: verdicts with confidence, evidence, signed receipts.
Verified registry of third-party-system knowledge — the external-dependency layer for agent memory.
Shared memory for your AI agents. Every fact shows its source, and stale facts get replaced.
Real-time fact-check, citation verification, and source-freshness for AI agents.
Related MCP Servers
- AlicenseAqualityCmaintenanceEnables agents and clients to fact-check factual claims against live web sources, returning citable verdicts with source details and cryptographically signed receipts for downstream verification.1102 npmMIT
- AlicenseNot gradedqualityBmaintenanceProvides AI agents a shared long-term memory layer with evidence-backed, auditable claims, enabling persistent, explainable, and conflict-aware recall across sessions.8MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to read, search, and propose shared team knowledge as reviewable claims, while holding agent-proposed additions until a human approves them. Agents can also cite documents as evidence for existing claims, with no tools for reviewing, retracting, or unciting.1Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables agents and users to extract factual claims from text, URLs, files, or AI answers and judge each against live web sources with confidence, evidence, and citations. It also integrates with MCP-capable clients so claims can be checked before an answer is shown.253 npmApache 2.0