Detects files and C# members likely missed by comparing edits with patterns in Git history.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
One-click editor setup isnβt available for this listing yet β we donβt have a confirmed install command, and weβd rather show nothing than point your editor at the wrong package or host. Follow the projectβs own setup instructions, linked above.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Unwritten.
Unwritten analyzes Git history to find files that commonly change together. When an edit changes one member of a known relationship but leaves another untouched, it reports the missing item as a possible hole. Each result includes a confidence score and example commits that support the relationship, helping a developer decide whether the omission is intentional.
File-level detection works across repositories written in any language, including Python, TypeScript, Go, C#, and mixed-language projects. C# repositories receive additional method-level rules and filtering for cosmetic edits. JSON files receive key-level noise filtering.
The Unwritten MCP server is intended for coding agents that need to inspect their own changes during a session. It also supports command-line checks that can run before commits.
The tool learns co-change relationships from the repository's Git history. Its index records how often related files or members have changed together. A check compares the current edit with those learned relationships and reports companions that are absent. Results include the observed co-change confidence and commit examples rather than only naming a suspected file.
The index is stored in the repository's .unwritten/ directory. Commands build the index automatically on first use and keep it current. Running reindex can warm the index before the first query. A configured threshold can cause a check to fail when a hole reaches the selected confidence level; the example uses a threshold of 0.70.
Running Unwritten requires the .NET SDK version 10 or newer. From the repository root, the README documents this command to build or refresh the index:
To register the MCP server with Claude Code, use:
The project also documents a setup command for a Git pre-commit hook and a Claude Code Stop hook:
The provided material points to a separate configuration reference in the project documentation, but does not include its configuration fields here.
The documented MCP capability is check_holes, which an agent can call after editing. CLI functionality includes index rebuilding, checking for holes, displaying index statistics, and installing hooks. Checks can identify missing companion files and, where supported, C# members. The reported resolution paths include updating the companion, committing despite the warning, or muting a rule.
Unwritten does not require a server process, subscription, or API tokens according to the README. Its runtime dependency is the .NET SDK, even when the analyzed repository uses another programming language. The supplied material documents registration for Claude Code; it does not establish compatibility with Claude Desktop, Cursor, Windsurf, or Cline.
Detection depends on patterns present in Git history, so a repository with limited or unrepresentative history may provide fewer useful relationships. A reported hole is a warning based on co-change evidence, not proof that the omitted file or member must be edited. The README also identifies additional behavior and unfinished areas in the linked documentation, but those details are not included in the supplied excerpt.
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/unwritten)<a href="https://allmcps.com/mcp/unwritten"><img src="https://allmcps.com/api/badge/unwritten?style=directory" alt="Unwritten on AllMCPs" /></a>