{
  "markdown": "<p align=\"center\">\n  <img src=\"assets/logo.png\" alt=\"Lenz\" width=\"96\" height=\"96\">\n</p>\n\n<h1 align=\"center\">Lenz MCP Server</h1>\n\n<p align=\"center\">\n  Fact-check claims against independent sources — from any MCP client.\n</p>\n\n<p align=\"center\">\n  <a href=\"https://lenz.io\">Website</a> ·\n  <a href=\"https://lenz.io/api-credentials\">Get an API key</a> ·\n  <a href=\"https://lenz.io/developers\">Developer docs</a>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://cursor.com/en/install-mcp?name=lenz&config=eyJ1cmwiOiJodHRwczovL2xlbnouaW8vbWNwIn0%3D\"><img src=\"https://cursor.com/deeplink/mcp-install-dark.svg\" alt=\"Add Lenz to Cursor\" height=\"28\"></a>\n  &nbsp;\n  <a href=\"https://vscode.dev/redirect/mcp/install?name=lenz&config=%7B%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Flenz.io%2Fmcp%22%7D\"><img src=\"https://img.shields.io/badge/Install_in_VS_Code-0098FF?style=for-the-badge&logo=visualstudiocode&logoColor=white\" alt=\"Install Lenz in VS Code\" height=\"28\"></a>\n</p>\n\n<p align=\"center\"><sub>One-click install (OAuth — no API key needed).</sub></p>\n\n---\n\n[Lenz](https://lenz.io) is a fact-checking platform. It takes a factual claim, runs it\nthrough a multi-model pipeline (framing → research → debate → panel review → conclusion)\nagainst independent sources, and returns a verdict with a confidence level. This is the official\n**remote MCP server** — a hosted [Model Context Protocol](https://modelcontextprotocol.io)\nendpoint that exposes Lenz's fact-checking as tools your AI assistant can call.\n\nIt verifies claims **against the open web**, independent of whatever context your model\nwas given — so it complements retrieval/groundedness checkers rather than replacing them.\n\n- **Hosted, no install:** point your client at `https://lenz.io/mcp`. Nothing to run locally.\n- **Auth:** **OAuth** (no key — for clients that support it) or a free Lenz **API key** (`Authorization: Bearer lenz_…`).\n- **Transport:** Streamable HTTP.\n\n## Tools\n\n| Tool | What it does |\n|------|--------------|\n| **`assess_claim`** | Fast verdict (~10s) via a 3-model panel. The default for checking a claim. Returns one verdict per atomic claim (True / Mostly True / Mixed / Mostly False / False) plus bucketed confidence. |\n| **`verify_claim`** | Deep, multi-step investigation (~90s: research → debate → panel review) for high-stakes claims. Returns a `task_id` immediately; poll it with `get_verification`. Costs an order of magnitude more credits than `assess_claim` — reserve it. Pass `depth: \"low\"` for a shallower, faster research pass (fewer sources, same models) at half the credits. |\n| **`get_verification`** | Retrieve or poll a `verify_claim` result by `task_id`. Returns `processing`, `needs_input`, or `completed` (verdict, summary, top sources, and the `depth` the verdict was produced at). |\n| **`select_claims`** | Resolve a `needs_input` verification — when a `verify_claim` turns up multiple claims or an ambiguity, pick which claim text(s) to run. |\n| **`ask_followup`** | Ask a grounded follow-up about a completed `verify_claim` (by its `verification_id`) — answered from the full research, debate, and panel review, not just the summary. Costs credits at the cheap rate, same as `assess_claim`. |\n| **`check_usage`** | Your remaining credits, the per-tool price list (`costs`, plus `cost_options` for prices that depend on a parameter such as `depth`), and your current plan. |\n\n> Verdicts are **directional, not absolute** — confidence is returned as bucketed\n> language with a caveat, not a raw score. Surface it, and the link back to Lenz, to\n> the user.\n\n## Quickstart\n\nTwo ways to connect, depending on your client:\n\n- **OAuth** — for clients that support it (e.g. Claude connectors). No key to\n  paste; you sign in to Lenz and authorize the connection.\n- **API key** — works with any MCP client via an `Authorization` header.\n\n### Connect with OAuth (no API key)\n\n**Claude (web, desktop and mobile):** Lenz is an official Claude connector.\nOpen the [Lenz connector page](https://claude.ai/directory/connectors/lenz) and\nclick **Connect to Claude**, or in the app: **Settings → Extensions → Browse\nextensions**, search for Lenz and click **+**. Either way it is a one-time\nOAuth sign-in with nothing to configure, and one account covers all three.\n\nFor any other client that supports OAuth for MCP, add the server with just its URL\nand no headers:\n\n```json\n{\n  \"mcpServers\": {\n    \"lenz\": {\n      \"type\": \"http\",\n      \"url\": \"https://lenz.io/mcp\"\n    }\n  }\n}\n```\n\nThe first time you use it, your client walks you through a one-time sign-in: you\nauthenticate on Lenz's own screen and authorize the connection — no key is stored in your\nconfig. Your assistant then fact-checks on your behalf against your Lenz account's credits.\nYou can revoke the connection at any time; see the [privacy policy](https://lenz.io/privacy).\n\n### Connect with an API key\n\n**1. Get a free API key** at [lenz.io/api-credentials](https://lenz.io/api-credentials)\n(format `lenz_…`).\n\n**2. Add the server** to your client (examples below). Authenticate with\n`Authorization: Bearer <your-key>`.\n\n### Claude Code\n\n```bash\nclaude mcp add --transport http lenz https://lenz.io/mcp \\\n  --header \"Authorization: Bearer ${LENZ_API_KEY}\"\n```\n\n### Claude Desktop / any client that reads `.mcp.json`\n\n```json\n{\n  \"mcpServers\": {\n    \"lenz\": {\n      \"type\": \"http\",\n      \"url\": \"https://lenz.io/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer ${LENZ_API_KEY}\"\n      }\n    }\n  }\n}\n```\n\n### Cursor\n\n**One click:** use the [**Add Lenz to Cursor**](https://cursor.com/en/install-mcp?name=lenz&config=eyJ1cmwiOiJodHRwczovL2xlbnouaW8vbWNwIn0%3D)\nbutton above — it adds the server and signs you in via OAuth (no key to paste).\n\nManual: Settings → **MCP** → **Add new MCP server** → type **HTTP**, URL\n`https://lenz.io/mcp`, and add a header `Authorization: Bearer <your-key>`. (Or drop the\nJSON above into `.cursor/mcp.json`.)\n\n### VS Code\n\n**One click:** use the [**Install in VS Code**](https://vscode.dev/redirect/mcp/install?name=lenz&config=%7B%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Flenz.io%2Fmcp%22%7D)\nbutton above (OAuth, no key). Manual, with a key:\n\n```bash\ncode --add-mcp '{\"name\":\"lenz\",\"type\":\"http\",\"url\":\"https://lenz.io/mcp\",\"headers\":{\"Authorization\":\"Bearer ${LENZ_API_KEY}\"}}'\n```\n\n### ChatGPT\n\nAt this time, ChatGPT connects to Lenz as a custom app through OpenAI's\n**Developer mode** — over OAuth, so there is no API key to paste. It is set up\non chatgpt.com; the ChatGPT desktop and mobile apps cannot create one.\n\n**On a personal account (Plus or Pro).** **Settings → Plugins** → turn on\n**Developer mode** at the bottom → **Plugins → Browse plugins** → **+** next to\nSearch → name it Lenz, URL `https://lenz.io/mcp`, Authentication **OAuth** →\ntick **I understand and want to continue** → **Create** → **Sign in with\nLenz** → **Try in Chat**.\n\n**In a Business, Enterprise or Edu workspace.** An owner or admin publishes it\nonce: **Workspace settings → Apps → + Create**, confirm **Enable developer\nmode**, fill in the same form with **OAuth**, then **Drafts → Publish**, set\nwho can use it, and **Publish** again. Each member then goes to **Settings →\nPlugins → Lenz → Connect** and signs in.\n\nA custom app is off by default in every new chat: **+** and tick Lenz. Naming\nLenz in the question is what makes ChatGPT reach for it rather than answer from\nmemory.\n\n### MCP Inspector (try the tools by hand)\n\n```bash\nnpx @modelcontextprotocol/inspector\n# Transport: Streamable HTTP · URL: https://lenz.io/mcp\n# Header: Authorization: Bearer <your-key>\n```\n\n## Example\n\n> **You:** Is it true that honey never spoils?\n>\n> The assistant calls `assess_claim(\"Honey never spoils\")` and gets back:\n> *Mostly True* — high confidence. Properly sealed honey can keep effectively\n> indefinitely thanks to its low moisture and acidity; the caveat is contamination or\n> added water. For a sourced deep-dive it can escalate with `verify_claim`.\n\n## Credits\n\nEvery tool call draws on **one pool of credits** on your Lenz account. There is no\nseparate budget per tool: spending on `assess_claim` reduces what is left for\n`verify_claim`, and vice versa. `check_usage` returns the balance\n(`credits_remaining`) alongside `costs`, the live price list — read the weight from\nthere rather than assuming one.\n\n`verify_claim` is the expensive path by an order of magnitude; `assess_claim` and\n`ask_followup` are the cheap ones. `verify_claim` also takes an optional `depth`:\n`\"low\"` runs a shallower research pass — fewer sources, faster, the same models — for\nhalf the credits of the default `\"standard\"`. That price sits under\n`cost_options.verify.depth.low` on `check_usage`. You are charged for the depth you\n**request**; the `depth` on the completed result is the depth the verdict was\n**produced** at, so a `\"low\"` request answered from an existing deeper check reads\n`\"standard\"` — the echo describes the evidence, the charge follows the request.\n\n`check_usage` also reports `assess_remaining` and `verify_remaining`, which are the\nSAME balance projected into each tool's own unit — \"how many of these could I still\nmake\" — not separate allowances.\n\nFree keys include a monthly allowance that resets each period; grants and top-ups add\nnon-expiring bonus credits on top, spent only once the allowance is gone. See plans at\n[lenz.io/plans](https://lenz.io/plans).\n\n**When you run out**, tools return `status: \"quota_exhausted\"` with a `message` and a\n`manage_url` pointing at the plans page. It is not retryable — the balance is spent\nuntil you top up or the monthly allowance resets. An agent should say so plainly rather\nthan retrying or quietly skipping the check.\n\n`status: \"rate_limited\"` is a different thing: a rate limit (today, the per-account daily\n`extract` cap, which costs no credits at all). That one does clear on its own, and the\nresult carries `retry_after_seconds` telling you when.\n\n## Skills\n\nPrefer a guided workflow to calling the tools yourself? The\n[`lenz-fact-check`](skills/lenz-fact-check) skill turns \"is this true?\" into a\nstructured pass — it extracts the checkable claims, runs `assess_claim` on each, escalates\nhigh-stakes ones to a deep `verify_claim`, and reports verdicts with confidence and\nsources (with the directional-not-absolute caveat built in). Point your agent at\n[`skills/lenz-fact-check/SKILL.md`](skills/lenz-fact-check/SKILL.md).\n\n## Links\n\n- **Website:** [lenz.io](https://lenz.io)\n- **Get a key:** [lenz.io/api-credentials](https://lenz.io/api-credentials)\n- **Developer docs:** [lenz.io/developers](https://lenz.io/developers)\n- **SDKs:** [Python](https://github.com/lenzhq/lenz-io-python) · [Node](https://github.com/lenzhq/lenz-io-node)\n\n## Support\n\nQuestions or issues? [Open an issue](https://github.com/lenzhq/lenz-mcp/issues) or\n[get in touch](https://lenz.io/contact).\n\n## License\n\n[Apache-2.0](LICENSE) © lenzhq. The Lenz name and logos (`assets/`) are\ntrademarks of lenzhq and are not granted by the license — see [NOTICE](NOTICE).\n\n## Maintainer\n\n[@Pavel12431432](https://github.com/Pavel12431432)\n",
  "bytes": 11060,
  "sha": "9cc127c68ff0d4f934ad8de6bd6724f16bbb5ce681b58ed8d032b062ae512ac5",
  "repo_slug": "lenzhq/lenz-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_lenz_fact_check_b2cf4d0a/readme"
}