tenets_search_toolsLABSCO SUMMARY
The tenets are the point — standards get re-injected, not remembered.
Context retrieval is the visible half, but the thing that changes long sessions is re-injection: rules like "use Decimal for money, never float" go back into every generated context, so the model does not quietly forget them at turn forty. Two practical notes — the [mcp] extra is mandatory and its absence fails at runtime rather than install, and the rank tool is the cheap way to see what would be included before paying for a full distill.
What it is
A context server for coding assistants doing two jobs. It ranks and aggregates the relevant files for a request using BM25, TF-IDF, import centrality and git signals — and it injects your guiding principles, the tenets, into generated context so standards survive a long session. All processing is local; no code leaves the machine.
What you get
tenets_distillfinds and returns the most relevant code with metadata;tenets_rank_fileslists the same ranking without fetching content, at roughly 500ms against about 3stenets_sessionmanages persistent sessions withcreate,list,pin_fileandpin_folder— pinned files are always includedtenets_tenetadds and lists guiding principles at critical, high, medium or low priority, and instills them into a sessiontenets_system_instructionsets a one-time instruction injected into all generated contexttenets_examinereports structure, complexity and hotspots;tenets_chroniclereads git history;tenets_momentumtracks velocitytenets_search_toolsandtenets_get_tool_schemalet the model discover the rest on demand instead of loading every schema- Three ranking modes: fast for keyword and path matching, balanced with BM25 by default, thorough with ML semantic similarity and dependency graphs
Requirements
The Python package tenets, version 0.13.3, installed with the mcp extra — pip install tenets[mcp] or pipx install tenets[mcp]. Without that extra the tenets-mcp executable exists but fails at launch with an ImportError. Register it with claude mcp add tenets -s user -- tenets-mcp, or add {"command": "tenets-mcp"} to your client's MCP config. Python 3.9+. Semantic embeddings and the reranker need tenets[ml], which is a 2GB+ install.
Setup effort
One command — pipx install tenets[mcp]
USE CASES
Gathering context for a task
Describe what you are working on and get the relevant files ranked and aggregated within a token budget.
Checking the ranking before committing to it
List which files would be included, in a fraction of the time, and adjust the query if they are wrong.
Stopping the model breaking your conventions
Add the rules once as tenets and have them injected into every generated context.
Guaranteeing a file is always in scope
Pin it to the session so ranking cannot drop it.
Understanding an unfamiliar codebase
Examine structure and complexity, then read recent git activity to see where the work is happening.
10 tools
Listed in project docs. Your client may show a different list.
tenets_get_tool_schematenets_distilltenets_rank_filestenets_examinetenets_chronicletenets_momentumtenets_sessiontenets_tenettenets_system_instructionBEFORE YOU INSTALL
What to know first
Tools you get
10 tools named in the project's documentation.
Requires
tenets-mcp on PATH
Where it runs
All 4 documented clients run the server on your machine.
INSTALLATION
Connect your client
Server setup
pipx install tenets[mcp]MCP Clients
Claude Code
{
"mcpServers": {
"tenets": {
"type": "stdio",
"command": "tenets-mcp",
"args": []
}
}
}~/.claude.json
Claude Desktop
{
"mcpServers": {
"tenets": {
"command": "tenets-mcp"
}
}
}~/Library/Application Support/Claude/claude_desktop_config.json
Cursor
{
"mcpServers": {
"tenets": {
"command": "tenets-mcp"
}
}
}~/.cursor/mcp.json
Windsurf
{
"mcpServers": {
"tenets": {
"command": "tenets-mcp"
}
}
}~/.codeium/windsurf/mcp_config.json