About Tently
Tently is an MCP server that gives coding agents access to team decisions learned from merged pull requests, review threads, and docs. It also computes a change's local code impact zone, while keeping source code on the machine.
Key features
- 01Search applicable team decisions
- 02Scope decision search to a repository
- 03Compute symbol impact locally
- 04Mark decisions as blocking or advisory
- 05Initialize agent configuration and skills
Use cases
- 01Check team conventions before coding
- 02Review a change against recorded decisions
- 03Find callers and dependencies of a symbol
- 04Configure Tently for a coding agent
MCP support
The MCP server exposes decision search and local impact-zone analysis to coding agents. Decision search uses the Tently workspace API; impact analysis runs on the local checkout with CodeGraph.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y @tently/mcpTENTLY_API_KEYSecretTently workspace API key, from the Connect page at app.tently.devTENTLY_API_URLTently API origin (default https://api.tently.dev)Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
2Saved tool list · updated 2w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Max decisions to return (1-50, default server-side). |
| paths | array | No | Repo-relative paths or globs you are editing, to scope the search. |
| query | string | Yes | What you are about to do, in natural language (e.g. "add a repository method that queries decisions"). |
Details
From the project READMETently MCP: AI pull request review, inside your coding agent
Tently is an AI code reviewer for GitHub pull requests. It catches the two things diff-only reviewers miss: regressions in code that depends on the change, and changes that break design decisions your team made on purpose. It learns those decisions from your merged pull requests, review threads and docs, and checks every pull request against them.
This repo is Tently's MCP server: the same decisions, inside Claude Code, Cursor or Codex while the agent writes code, before a pull request exists.
How the pieces fit
Tently is one decision store with two gates:
| Gate | When | What it does |
|---|---|---|
| Pull request review (GitHub App) | Every PR | Posts a check run and inline comments for regressions and decision drift, with the evidence attached |
| This MCP server | While the agent writes | Lets the agent look up the decisions that apply and the blast radius of a change |
The MCP server needs a Tently workspace. Request early access at tently.dev.
Set up
Create an API key on the Connect page at app.tently.dev, then run this from your repo root:
npx @tently/mcp init --agent claude --api-key <your key>
Or pass the key through the environment:
TENTLY_API_KEY=<your key> npx @tently/mcp init
init adds the tently server to .mcp.json (Claude Code) or .cursor/mcp.json (Cursor), and
installs a small skill that tells the agent when to use it. It backs up any file before editing
it, keeps your other MCP servers, and prints every change. Restart your agent afterwards.
--agent takes claude, cursor, both or auto (the default, which detects what's in the
repo).
Manual config
{
"mcpServers": {
"tently": {
"command": "npx",
"args": ["-y", "@tently/mcp", "mcp"],
"env": { "TENTLY_API_KEY": "<your key>" }
}
}
}
What the agent gets
search_decisions: the decisions that apply to the code it's about to change, from your Tently workspace. Each one says whether breaking it is blocking or advisory. The search is scoped to the repo you're in (read from the checkout's git remotes), so decisions from your workspace's other repos don't crowd out this one's.query_impact_zone: the blast radius of a symbol (who calls it, what it depends on), computed locally on your checkout with CodeGraph. Your source code never leaves your machine. The index lives in.codegraph/, whichinitadds to.gitignore.
Impact results are evidence, not proof: callers reached through interfaces, dynamic dispatch or re-exports can be missed, and the tool says so in its output.
Configuration
| Variable | Meaning |
|---|---|
TENTLY_API_KEY | Workspace API key (required for search_decisions) |
TENTLY_API_URL | API origin, default https://api.tently.dev |
TENTLY_WORKING_DIR | Directory query_impact_zone indexes, default the current directory |
TENTLY_REPO | GitHub repo to scope search_decisions to, as owner/name or a GitHub URL. Default: the origin and upstream remotes of TENTLY_WORKING_DIR, whichever is connected to your workspace (origin first), which covers forks. A value that isn't a GitHub repo is ignored. When no repo is connected (or it was renamed since), the search covers the whole workspace |
Privacy
search_decisions sends your query text, the file paths you pass and the owner/name of the checkout's origin and upstream remotes to
the Tently API. Nothing
else leaves your machine: query_impact_zone runs entirely locally. See
tently.dev for how Tently handles data.
Development
npm install
npm test
npm run build
node dist/cli.js mcp # start the server on stdio
Requires Node.js 20 or later.
Contributing
Issues and pull requests are welcome. For anything beyond a small fix, please open an issue first so we can agree on the approach.
License
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.