{"id":"5afd7661-6be2-4366-b844-a9920bd11191","slug":"endgegnerbert-tech-emet","kind":"mcp","name":"emet","summary":"emet: Real-time research tool for coding agents, grounded in authoritative docs, READMEs, changelogs, and release notes.","owner":"endgegnerbert-tech","repoUrl":"https://github.com/endgegnerbert-tech/emet","license":"MIT","licenseTier":"permissive","trust":"community","stars":5,"match":null,"fewStars":false,"format":"mcp","createdAt":"2026-05-23T14:19:58.000Z","addedAt":"2026-10-14T10:53:10.041Z","logoUrl":"https://avatars.githubusercontent.com/u/235890883?u=68194ca792183d2c99da6a84bee3732d4c0f15a3&v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["productivity","utilities"],"tags":["agent","pi","research-tool","social-network-analysis"],"runtime":"node","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-17T20:15:51.371Z","sample":false,"url":"https://conduits.dev/tools/endgegnerbert-tech-emet","language":"JavaScript","transports":["stdio"],"install":{"npm":"@black-knight.dev/emet"},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# emet\n\n![emet logo](docs/assets/emet-logo.png)\n\n[![npm version](https://img.shields.io/npm/v/%40black-knight.dev%2Femet?color=blue)](https://www.npmjs.com/package/@black-knight.dev/emet)\n[![package](https://img.shields.io/badge/package-pi%20%2B%20MCP-blueviolet)](https://www.npmjs.com/package/@black-knight.dev/emet)\n\n**Zero-setup grounded research for AI coding agents.**\n\nPinned: [docs index](docs/README.md) · [tool reference](docs/tool-reference.md) · [host setup](docs/hosts/README.md) · [5-minute quickstarts](docs/quickstarts.md) · [examples](docs/examples.md) · [SECURITY](SECURITY.md) · [contributing](CONTRIBUTING.md) · [changelog](CHANGELOG.md) · [2.0.0 release notes](docs/releases/2.0.0.md)\n\n`emet` gives agents live, cited answers from the web, docs, repositories, papers, and selected community/media sources — without adding tool sprawl.\n\n> **Current shape:** public tools stay exactly `emet` + `web_fetch`. Community/media retrieval is read-only and explicit. Supported backends today: **Hacker News, Reddit, V2EX, GitHub, RSS/Atom, YouTube**. Not every social network is supported, and factual/high-risk claims still require authoritative follow-up.\n\n![emet in action](docs/assets/emet-demo.gif)\n\n## Why emet\n\nMost search tools return links. `emet` returns research the agent can use directly:\n\n- live sources with citations\n- authority-aware ranking for docs, security, versions, and changelogs\n- strict host allowlists when you need fail-closed source control\n- conflict handling instead of silent averaging\n- local repo grounding via `options.files`\n- optional full page text via `web_fetch` or `options.rawPages: true`\n- explicit community/media retrieval when web docs are not enough\n\n## Public tool surface\n\n| Tool | Use it for |\n| --- | --- |\n| `emet` | Live research, docs lookup, comparisons, papers, security checks, community/media retrieval, checkpointed sessions |\n| `web_fetch` | Raw text for one known URL through emet's fetch/cache pipeline |\n\nThat is intentional: no `emet_search`, `emet_fetch`, or collector-specific public tools.\n\n## Community and social/media support\n\n`emet` is no longer web-only.\n\nSupported read-only community/media backends today:\n\n| Backend | What it is good for |\n| --- | --- |\n| `hn` | Hacker News discussions and launch reactions |\n| `reddit` | Reddit threads and community sentiment |\n| `v2ex` | V2EX threads and community chatter |\n| `github` | repos, issues, and code-search-style context |\n| `rss` | feed-backed updates and mention tracking |\n| `youtube` | metadata/transcript-oriented retrieval when available |\n\nUse them explicitly with `options.platforms`, or ask with clear platform wording.\n\nImportant guardrail: community/social results are signals, not automatic truth. For CVEs, vendor status, deprecations, outages, medical/legal topics, and other high-risk claims, emet follows up with stronger sources.\n\n## Quick start\n\n### Pi\n\n```bash\npi install npm:@black-knight.dev/emet\n```\n\n### MCP / CLI\n\n```bash\nnpm install -g @black-knight.dev/emet\nemet doctor\nemet\n```\n\n- `emet doctor` checks the local install.\n- plain `emet` starts the MCP stdio server.\n- `emet fetch <url> [--json]` is the CLI equivalent of `web_fetch`.\n- `emet init <host> --print|--write` writes known-good host configs.\n\n## Host setup\n\n| Host | Fastest setup | Config |\n| --- | --- | --- |\n| Claude Code | `claude mcp add emet -- emet` | [`configs/claude-code/mcp.json`](configs/claude-code/mcp.json) |\n| Codex | `emet init codex --write` | [`configs/codex/config.toml`](configs/codex/config.toml) |\n| Cursor | `emet init cursor --write` | [`configs/cursor/mcp.json`](configs/cursor/mcp.json) |\n| VS Code / Copilot | `emet init vscode-copilot --write` | [`configs/vscode-copilot/mcp.json`](configs/vscode-copilot/mcp.json) |\n| Gemini CLI | `emet init gemini --write` | [`configs/gemini/settings.json`](configs/gemini/settings.json) |\n| Pi | `pi install npm:@black-knight.dev/emet` | extension entrypoint shipped in package |\n\nMore copy-paste setup lives in [docs/quickstarts.md](docs/quickstarts.md).\n\n## Example calls\n\n### Current docs / API lookup\n\n```json\n{\n  \"query\": \"current MCP sampling docs\",\n  \"mode\": \"code\",\n  \"options\": {\n    \"requireAuthoritative\": true,\n    \"hostAllowlist\": [\"modelcontextprotocol.io\", \"github.com/modelcontextprotocol\"]\n  }\n}\n```\n\n### Community + GitHub research\n\n```json\n{\n  \"query\": \"What are developers saying about React 19 upgrade pain?\",\n  \"mode\": \"deep\",\n  \"options\": {\n    \"platforms\": [\"hn\", \"github\"],\n    \"interactive\": true,\n    \"maxResultsPerPlatform\": 5\n  }\n}\n```\n\n### Full raw page text in the research result\n\n```json\n{\n  \"query\": \"MCP tool schema docs\",\n  \"mode\": \"code\",\n  \"options\": { \"rawPages\": true }\n}\n```\n\n### Raw text for one known URL\n\nUse this first when you already know the page you want. It is faster and more reliable than a deep search round.\n\n```json\n{\n  \"url\": \"https://modelcontextprotocol.io/docs/develop/build-server\"\n}\n```\n\nMore examples: [docs/examples.md](docs/examples.md)\n\n## CLI helpers\n\n```bash\nemet doctor\nemet init claude-code --print\nemet init cursor --write\nemet fetch https://example.com/docs --json\n```\n\n## Safety, privacy, and telemetry\n\n- Security reporting lives in [SECURITY.md](SECURITY.md).\n- `emet` is read-only.\n- Queries, prompts, URLs, source contents, file paths, tokens, and secrets are not collected by the default telemetry described below.\n- Anonymous runtime usage analytics are provided by [`pinglet`](https://github.com/endgegnerbert-tech/pinglet).\n\nOpt out anytime:\n\n```bash\nDO_NOT_TRACK=1 emet\nPINGLET_OPT_OUT=1 emet\nemet --no-telemetry\n```\n\n## Docs\n\nStart here:\n\n- [docs/README.md](docs/README.md) — docs index\n- [docs/quickstarts.md](docs/quickstarts.md) — host-by-host copy-paste setup\n- [docs/hosts/README.md](docs/hosts/README.md) — shortest path per supported host\n- [docs/tool-reference.md](docs/tool-reference.md) — modes, options, and best call patterns\n- [docs/examples.md](docs/examples.md) — prompt and tool-call gallery\n- [docs/pipeline.md](docs/pipeline.md) — maintainer pipeline/module overview\n- [CHANGELOG.md](CHANGELOG.md) — release history\n- [docs/releases/](docs/releases/) — pinned release notes\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md).\n\nLocal verification gate:\n\n```bash\nnpm run check\n```\n\n## License\n\n- MIT\n- Third-party notices: [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md)\n- Repo: <https://github.com/endgegnerbert-tech/emet>\n"}