Tnl logo

Tnl

by janaraj

Defines persistent, reviewable feature contracts for coding agents and checks implementations against their required behaviors.

Install Tnl

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "janaraj-tnl": {
      "command": "npx",
      "args": [
        "-y",
        "typed-nl"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

We couldn’t confirm it starts correctly

We ran the install command but it didn't respond within our test window — this can mean a slow first-time install rather than a real problem.

npx -y typed-nl

No response to initialize.

This is an experimental automated check and can have false negatives — missing environment variables, a slow cold install, etc. It doesn’t necessarily mean something’s wrong. Last checked 2d ago.

Overview

The janaraj/tnl MCP server gives AI coding agents tools for managing Typed Natural Language contracts stored in a repository. Its six tools retrieve relevant contracts, trace affected work, propose and approve contract changes, and verify implementations. Use it when an agent needs persistent feature requirements, bounded file changes, and explicit self-attestation across sessions. Installation is provided through the typed-nl CLI and supports Claude Code, Codex, Gemini, and Cursor workflows.

Use cases

  • Define approved feature contracts before coding
  • Retrieve contracts for follow-up agent sessions
  • Propose and review changes to existing requirements
  • Verify implementations against MUST clauses

Key features

  • Persistent per-feature TNL contracts
  • Contract lookup by impacted paths
  • Proposed and approved contract diffs
  • Implementation tracing
  • Behavior and test verification
  • Support for Claude Code, Codex, Gemini, and Cursor setup

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 1d ago

Recent health check succeeded.

6/6 checks healthy over the last 79d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 8d ago via OSV.dev · typed-nl (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars8Stargazers on the source repository.
npm downloads50Package downloads in the last 30 days.
Last commit6mo agoMost recent push to the default branch.
Install checkInconclusiveDidn't respond in our test window — often a slow first install.

How Tnl works

What janaraj/tnl MCP server does

The janaraj/tnl MCP server exposes a contract workflow for AI coding agents. A TNL contract is a Markdown-like file describing a feature or repository-wide requirement with fields for identity, scope, allowed paths, external surfaces, behaviors, non-goals, and rationale. Behavioral clauses use MUST, SHOULD, or MAY language and can include semantic or test references.

Contracts are intended to make design decisions reviewable before implementation. An agent can inspect existing contracts, propose a new contract or edit, wait for approval, save the approved file under tnl/, implement the change, and report how each required behavior was satisfied. Follow-up sessions can reuse the saved contract instead of reconstructing requirements from source code.

How it works

The janaraj/tnl MCP server works with TNL files in the project’s tnl/ directory. For a new request, the workflow checks whether existing paths overlap the requested change. An overlap indicates an edit to an existing contract; otherwise, the agent prepares a new one. The contract is reviewed before it is written, and its paths field limits the intended change surface.

After implementation, the agent self-attests against every MUST clause by identifying the relevant file or test. The separate tnl verify command can check that declared paths exist and that test bindings resolve. A PreToolUse hook can re-surface the active contract during Edit and Write operations, but hooks, CI, and MCP are optional layers rather than prerequisites for the basic workflow.

Setup and configuration

Install the command-line package with Node.js 20 or later:

Terminal
npx -y typed-nl <command>

A global installation is also supported:

Terminal
npm install -g typed-nl
tnl <command>

For native setup, tnl init can configure Claude Code, Codex, Gemini, and Cursor with the workflow stanza, hooks, and MCP support. Agents outside that list can adopt the minimum workflow manually by copying tnl/workflow.tnl into the project and adding the workflow stanza to their Markdown instruction file. No environment variables are documented as required.

Tools and capabilities

The janaraj/tnl MCP server provides six tools:

  • getimpactedtnls finds contracts relevant to a requested change.
  • retrievetnl reads a selected contract for agent context.
  • trace follows contract-related implementation or requirement information.
  • proposetnldiff prepares a proposed contract change for review.
  • approvetnldiff records approval for a proposed contract diff.
  • verify checks implementation details against the contract workflow.

Together, these tools support contract lookup, change proposal and approval, implementation tracing, and verification. The server is most suitable for repositories where feature requirements should remain alongside the code and be available to later agent sessions.

Limitations and notes

TNL adoption can start without MCP through an instruction-file stanza and a tnl/ directory; the MCP server is an optional part of the broader workflow. Verification depends on the contract’s declared paths and any referenced tests being present and resolvable. The repository’s evaluation reports improved scenario results in its tested runs, but those results are based on a small sample and should not be treated as a guarantee for other projects or agents.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Tnl

janaraj/tnl is an MCP server that connects AI coding agents to Typed Natural Language contracts stored in a project. Its six tools—getimpactedtnls, retrievetnl, trace, proposetnldiff, approvetnldiff, and verify—help agents retrieve requirements, propose approved edits, trace work, and verify implementations.

Install it through the typed-nl CLI with Node.js 20 or later. Run `npx -y typed-nl <command>` for a one-off use, or install globally with `npm install -g typed-nl` and then use `tnl`. The `tnl init` workflow supports Claude Code, Codex, Gemini, and Cursor.

Yes, Cursor is included among the agents supported by `tnl init`. The setup can add the workflow stanza, hooks, and MCP support. The underlying TNL workflow can also be adopted manually by placing the workflow contract in `tnl/` and adding the stanza to the agent’s instruction file.

The `verify` tool checks implementation details against the TNL workflow. TNL verification checks that declared paths exist and that referenced test bindings resolve, while the agent’s self-attestation maps each MUST clause to a file or test.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewTnl AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/janaraj-tnl?style=directory)](https://allmcps.com/mcp/janaraj-tnl)
HTML Embed
<a href="https://allmcps.com/mcp/janaraj-tnl"><img src="https://allmcps.com/api/badge/janaraj-tnl?style=directory" alt="Tnl on AllMCPs" /></a>