⬡ TriSeek MCP

Use TriSeek as a
local MCP search server

TriSeek exposes a local stdio MCP server for Claude Code, Codex, and other MCP-capable clients. It is local-only, search-only, and routes each query through TriSeek's indexed, direct-scan, or ripgrep fallback path as needed.

// 01 — quickstart

Get connected

Quickstart

shell · install MCP config
# Claude Code (user-level by default)
triseek install claude-code

# Codex
triseek install codex

# OpenCode
triseek install opencode

# Pi
triseek install pi

# Verify
triseek doctor

Use triseek install claude-code --scope project if you want a shareable repo-local Claude Code install via .mcp.json.

Run the server manually from the target root:

shell · manual start
cd /path/to/repo
triseek mcp serve

Or override the root explicitly:

shell · explicit root
triseek mcp serve --repo /path/to/repo

Transport and Scope

local-only stdio transport search-only repo-scoped bounded output
  • local-only — no network, no telemetry, no OAuth
  • stdio transport — one child process per client session
  • search-only — no shell or file-editing tools
  • repo-scoped — one root per MCP server process
  • bounded output — stable envelopes, clipped responses

All logs go to stderr. Stdout carries JSON-RPC frames only.

// 02 — protocol

Protocol & routing

Protocol

transport · newline-delimited JSON-RPC 2.0
protocolVersion · 2025-06-18
serverInfo.name · triseek
supported methods
initialize notifications/initialized tools/list tools/call ping shutdown

Routing Signals

Every successful search result includes these fields:

strategy
triseek_indexed triseek_direct_scan ripgrep_fallback
fallback_used · whether a non-index backend was selected
routing_reason · short machine-readable reason string
truncated · whether the result limit clipped output
// 03 — tools reference

Available tools

Tools

Tool Purpose
find_files Path and filename substring search
search_content Literal or regex content search
search_path_and_content Narrow by glob, then search file content
index_status Report whether a TriSeek index exists and is healthy for the current root
reindex Run incremental update or full rebuild
{ }

Example Tool Inputs

search_content
{
  "query": "parse_arguments",
  "mode": "literal",
  "limit": 20
}
search_path_and_content
{
  "path_query": "src/**/*.rs",
  "content_query": "Result<",
  "mode": "literal",
  "limit": 20
}
// 04 — errors & output

Error codes & output discipline

!

Errors

Tool execution failures return a successful JSON-RPC response with CallToolResult.isError = true and a structured error body.

Code Meaning
INDEX_UNAVAILABLE No index exists for this root
INDEX_STALE Index is out of date; call reindex
INVALID_QUERY Missing or invalid arguments
REPO_NOT_DETECTED Could not resolve a repo root
BACKEND_FAILURE Search backend failed internally
FALLBACK_FAILURE ripgrep or direct scan failed
CONFIG_WRITE_FAILED Install or uninstall config update failed
CLIENT_NOT_INSTALLED Required client CLI is missing from PATH

Output Discipline

default limit · 20
hard cap · 100
line preview · truncated to 200 characters
deduplication · duplicate line matches deduped by (path, line)
file bodies · responses never include raw file bodies

This keeps responses well within normal MCP output budgets.

// 05 — troubleshooting

When things go wrong

?

Troubleshooting

  • Claude Code does not see TriSeek — rerun triseek install claude-code --scope <scope>, reload the workspace, then run claude mcp list.
  • Codex does not see TriSeek — rerun triseek install codex, restart Codex, then run codex mcp list.
  • INDEX_UNAVAILABLE — run triseek build <PATH> or call reindex.
  • Framing errors — check that nothing in a wrapper script writes to stdout ahead of triseek mcp serve.