← Back to Tanvrit AI
Features

31 MCP tools for code-aware agents

Tanvrit's MCP server exposes a precise vocabulary for code intelligence — so your agent can ask for the function it needs, not the entire file. The authoritative list is whatever tools/list returns from localhost:19281 at runtime; what you see below is 32 tools grouped by purpose.

Sample call shape

// MCP tools/call request
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_chunk",
    "arguments": {
      "file": "src/indexer/FileIndexer.kt",
      "symbol": "FileIndexer.indexProject"
    }
  }
}

All HTTP MCP calls require Authorization: Bearer with the token from Settings → MCP Bearer Token. Stdio mode skips auth (trusted parent process).

File operations

4 tools

Read, list, and slice files without dumping whole files into the context window.

get_file

Return a file (or range) by path, with line numbers.

get_chunk

Return only the body of a specific function or class — typical 90% token savings vs full file.

list_files

List files in a directory, with optional glob filter.

get_file_structure

Outline of symbols (classes, functions, types) without bodies — typical 95% token savings.

Search & navigation

6 tools

Full-text and symbol-level search across the entire indexed codebase.

search_code

Full-text search with surrounding context snippets.

search_symbols

Find classes, functions, interfaces, types by name.

search_definitions

Locate the canonical definition of a named symbol.

find_references

Every place a symbol is read or called from.

get_symbol_usages

Per-call-site usage with context — distinguishes reads vs writes vs calls.

get_imports

Imports declared by a file or module.

Code intel & graphs

12 tools

The expensive analyses that Tanvrit pre-computes so the agent doesn't have to.

get_call_graph

Callers and callees of a function, depth-bounded.

get_dependency_graph

Project-level import graph between modules.

analyze_dependencies

Outgoing and incoming dependencies of a target.

analyze_dependencies_for_file

Same, scoped to one file.

analyze_inheritance

Type hierarchy traversal — supertypes and subtypes.

analyze_impact

Blast radius: every symbol affected by a change.

find_dead_code

Unreferenced symbols across the indexed graph.

find_complex_files

Files ranked by cyclomatic complexity.

get_metrics

Per-file complexity, LOC, function counts, comment ratio.

get_all_metrics

Project-wide aggregate metrics for dashboards.

get_project_overview

Top-level summary: language mix, file count, hotspots.

get_context

Heuristic bundle of the smallest set of chunks an agent needs to answer about a target.

Git

2 tools

Provenance built straight on top of the local git repo.

git_blame

Author per line, with commit SHA and timestamp.

git_history

Commit history for a file, range, or symbol.

Conversation memory

6 tools

Persistent, per-session memory so agents do not re-read the world on every turn.

store_context

Save a fact / decision / hypothesis for later retrieval.

search_context

Semantic search over previously stored context.

update_context

Edit or invalidate a stored entry.

create_entity

Track an entity (class, ticket, person) with observations.

relate_entities

Edge between two entities — "calls", "owns", "depends-on".

get_session_summary

Compact summary of the current session for hand-off.

Agent actions

2 tools

Side-effectful tools the agent can invoke when explicitly authorised.

run_tests

Run the project's test command and return a structured result.

format_file

Apply the project's formatter to one file.

How tools change between releases

Tools follow semver. Adding a tool is a minor bump; renaming or removing one is a major bump and gets a migration note in the changelog. If you build against a specific tool name, pin to a major version when you ship.