{"id":"14750f38-91d5-43a8-ab82-9c286dda25ed","slug":"grainulator","kind":"mcp","name":"grainulator","summary":"Research that compiles.","owner":"grainulation","repoUrl":"https://github.com/grainulation/grainulator","license":"MIT","licenseTier":"permissive","trust":"community","stars":86,"match":null,"fewStars":false,"format":"mcp","createdAt":"2026-03-21T10:35:46.000Z","addedAt":"2026-10-14T03:45:08.744Z","logoUrl":"https://avatars.githubusercontent.com/u/268066914?v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["developer-tools","cloud-infra"],"tags":["claude","claude-ai","claude-code","claude-code-plugin","compiler","compiler-frontend","research","research-and-development"],"runtime":"binary","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-20T16:26:09.539Z","sample":false,"url":"https://conduits.dev/tools/grainulator","language":"JavaScript","transports":["stdio"],"install":{},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"<p align=\"center\">\n  <a href=\"https://grainulator.app\"><img src=\"site/glitchy.png\" alt=\"Glitchy — the Grainulator mascot\" width=\"200\"></a>\n</p>\n\n<h1 align=\"center\">Grainulator</h1>\n\n<p align=\"center\"><strong>Evidence and verification for the model you already use.</strong></p>\n\n<p align=\"center\">\n  Keep the evidence. Challenge the answer. Know what to do next.<br>\n  A shared workflow for research, engineering, and model-assisted work.\n</p>\n\n<p align=\"center\">\n  <a href=\"https://grainulator.app/\"><img src=\"https://img.shields.io/badge/website-grainulator.app-98f3ef?style=for-the-badge\" alt=\"See the Grainulator homepage\"></a>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://github.com/grainulation/grainulator/releases\"><img src=\"https://img.shields.io/github/v/release/grainulation/grainulator?label=release\" alt=\"Latest GitHub release\"></a>\n  <a href=\"https://github.com/grainulation/grainulator/actions/workflows/ci.yml\"><img src=\"https://github.com/grainulation/grainulator/actions/workflows/ci.yml/badge.svg?branch=main\" alt=\"CI on main\"></a>\n  <a href=\"docs/INSTALLATION.md\"><img src=\"https://img.shields.io/badge/node-%E2%89%A524-339933?logo=nodedotjs&logoColor=white\" alt=\"Node.js 24 or later\"></a>\n  <a href=\"LICENSE\"><img src=\"https://img.shields.io/badge/license-MIT-green\" alt=\"MIT license\"></a>\n  <a href=\"https://deepwiki.com/grainulation/grainulator\"><img src=\"https://deepwiki.com/badge.svg\" alt=\"Docs on DeepWiki\"></a>\n</p>\n\n<p align=\"center\">\n  <a href=\"#quick-start\">Quick start</a> ·\n  <a href=\"docs/INSTALLATION.md\">Installation</a> ·\n  <a href=\"docs/UPGRADING.md\">Upgrading</a> ·\n  <a href=\"docs/TOOLS.md\">Tools</a> ·\n  <a href=\"docs/AGENT-SETUP.md\">Agent setup</a> ·\n  <a href=\"CHANGELOG.md\">Changelog</a>\n</p>\n\n---\n\n## What it adds\n\nGood models still need a way to keep track of evidence, revisit assumptions, and verify their work. Grainulator gives them that process, with a local ledger that stays with the task as it moves between models and sessions.\n\n| Capability | What it gives you |\n| --- | --- |\n| **Evidence that stays with the work** | Typed claims, sources, evidence tiers, and provenance that survive edits and exports. |\n| **A check on the answer** | Conflict detection, weak-support signals, and explicit gaps to investigate. |\n| **Clear next actions** | Two lists: what the agent can continue automatically, and what needs your input. |\n| **Sessions you can carry forward** | Configurable research, stop/resume, reusable context, and credential-free exports. |\n| **Verification for your task** | A managed command loop that can use a verifier you provide. |\n\nGrainulator works with Claude Code and Codex through plugins. It also provides a command-line tool and an MCP connection for other agents. You do not need to install its components separately.\n\n## Quick start\n\nRequires **Node.js 24+**. Node 25 is the development default.\n\n**Upgrading from 1.x?** Follow the [migration checklist](docs/UPGRADING.md) to update the plugin and keep your existing research data.\n\n```sh\ngit clone --branch v2.0.4 https://github.com/grainulation/grainulator.git\ncd grainulator\nnpm ci --ignore-scripts\nnode bin/grainulator.js doctor\n```\n\nTo use Grainulator inside your agent, follow the **[Claude Code or Codex setup guide](docs/AGENT-SETUP.md)**. The [website](https://grainulator.app/) shows a saved example of an evidence check. It does not send your question to a model.\n\nThe local research playground remains available through `node bin/grainulator.js preview`. It runs models using a provider account you configure locally.\n\n> **Distribution:** v2.0.4 is a [GitHub release](https://github.com/grainulation/grainulator/releases/tag/v2.0.4), not an npm registry release. For a separate local installation, follow the [archive installation guide](docs/INSTALLATION.md).\n\n### Other agents: connect through MCP\n\nFrom the project you want Grainulator to access:\n\n```sh\nnode /path/to/grainulator/bin/grainulator.js connect --dir \"$PWD\"\n```\n\nAdd the printed MCP configuration to your agent, then restart the connection. This command only prints the settings; it does not install the plugin.\n\nFor the full Claude Code or Codex plugin, use the **[agent setup guide](docs/AGENT-SETUP.md)**. Codex needs a project folder; the guide shows how to set it. CLI and direct MCP access remain available to other hosts.\n\n## Put it to work\n\nWith Grainulator connected, give your agent the outcome you need:\n\n> Use Grainulator to investigate whether we should migrate this service. Record the evidence, challenge the assumptions, implement the agreed changes, and verify them. Keep the remaining next steps split into Auto and Manual.\n\nThe work follows a simple cycle:\n\n1. **Record** findings with their sources and evidence tiers.\n2. **Check** for conflicts, weak support, and missing perspectives.\n3. **Act** on the gaps that matter, then verify the requested result.\n4. **Continue** from the saved ledger or export the session to another workflow.\n\nThere are no fixed claim-count or research-pass quotas. **Auto** lists work the agent can continue within your authorization. **Manual** lists decisions, access, or actions that need you. When you ask only for next steps, those two lists are the entire response.\n\n<details>\n<summary><strong>Example: record a claim from the terminal</strong></summary>\n\n```sh\nnode bin/grainulator.js init --dir ./sprints/migration \\\n  --question 'Should we migrate this service?' \\\n  --audience engineers --constraints 'Preserve existing user data' \\\n  --done 'A verified plan with remaining risks documented'\n\nnode bin/grainulator.js add --dir ./sprints/migration \\\n  --id r001 --type constraint --topic migration \\\n  --content 'Existing user data must remain readable.' --evidence stated\n\nnode bin/grainulator.js compile --dir ./sprints/migration\n```\n\nThe equivalent MCP tool is **`add_claim`** on the **`grainulator`** server. See the [tool reference](docs/TOOLS.md) for evidence, memory, export, analytics, and orchestration operations.\n\n</details>\n\n## Explore the docs\n\n| Guide | Start here for… |\n| --- | --- |\n| [Installation](docs/INSTALLATION.md) | Tagged source, isolated archives, and verified build identity. |\n| [Upgrading from 1.x](docs/UPGRADING.md) | Host updates, renamed tools, existing data, and retired setup instructions. |\n| [Agent setup](docs/AGENT-SETUP.md) | Use Grainulator with Claude Code, Codex, or another agent. |\n| [Research sessions](docs/RESEARCH.md) | Models, feature controls, credentials, export, and resume. |\n| [Tools](docs/TOOLS.md) | The canonical CLI and MCP interface. |\n| [Execution adapters](docs/ADAPTERS.md) | Attaching a model command and a task-specific verifier. |\n| [Architecture](docs/STRUCTURE.md) | The workspace layout and internal modules. |\n| [Evaluation](docs/EVALUATION.md) | What has been measured and what remains unproven. |\n| [Contributing](CONTRIBUTING.md) | Development setup, tests, and changes to the project. |\n\n## Verification and limits\n\nCI checks Node 24 and 25, isolated package installation, plugin contracts, Rust runtime conformance, lint, and the static playground in a browser. Native host and live-provider acceptance have separate [verification guides](docs/READINESS.md).\n\nThe compiler checks the structure and support recorded in the ledger; it does not establish that a source is true. Evaluations do not establish a general accuracy or efficiency gain, and per-pass limits are not a whole-session spending cap. Keep those distinctions when interpreting results.\n\n<details>\n<summary><strong>Run the development checks</strong></summary>\n\n```sh\nnpm test\nnpm run test:install\nnpm run lint\n```\n\nBrowser and runtime prerequisites are in [CONTRIBUTING.md](CONTRIBUTING.md). The offline `node bin/grainulator.js demo` exercises the adapter/verifier protocol without a provider account.\n\n</details>\n\n---\n\n<p align=\"center\">\n  Built by <a href=\"https://grainulation.com\">Grainulation</a> ·\n  <a href=\"LICENSE\">MIT licensed</a> ·\n  <a href=\"https://github.com/grainulation/grainulator/issues\">Issues & ideas</a>\n</p>\n"}