An MCP server that gives AI coding agents grounded codebase context, prompt enhancement, web search, and mid-task advice from a Finnian/ACE backend.
Your editor launches this binary as a subprocess. It speaks JSON-RPC 2.0 over stdio and proxies tool calls to your Finnian/ACE server, so the agent answers from a real index of your codebase instead of guessing.
npx not-ace-tool-rs --base-url <API_URL> --token <AUTH_TOKEN>npx downloads the right platform package, starts the server, and serves MCP tools over stdio. Supports Linux (x64/ARM64), macOS (x64/ARM64), and Windows (x64/ARM64).
| Tool | What it does |
|---|---|
codebase_retrieval |
Sync the project index and retrieve ranked code context for a natural-language question |
enhance_prompt |
Rewrite a prompt using retrieved codebase context |
web_search |
Search the web through the server |
advisor |
Ask for a course correction mid-task: assessment, recommendation, and the failure mode to watch for |
advisor requires a server exposing POST /agents/advisor. Against an older backend it returns a clear "not supported" result instead of failing the session, so one binary works across server versions.
claude mcp add-json not-ace-tool --scope user '{
"type": "stdio",
"command": "npx",
"args": ["not-ace-tool-rs", "--base-url", "https://your-api.example.com", "--token", "your-token"]
}'Then allow the tools in ~/.claude/settings.json:
{
"permissions": {
"allow": [
"mcp__not-ace-tool__codebase_retrieval",
"mcp__not-ace-tool__enhance_prompt",
"mcp__not-ace-tool__web_search",
"mcp__not-ace-tool__advisor"
]
}
}~/Library/Application Support/Claude/claude_desktop_config.json on macOS:
{
"mcpServers": {
"not-ace-tool": {
"command": "npx",
"args": ["not-ace-tool-rs", "--base-url", "https://your-api.example.com", "--token", "your-token"]
}
}
}~/.codex/config.toml:
[mcp_servers.not-ace-tool]
command = "npx"
args = ["not-ace-tool-rs", "--base-url", "https://your-api.example.com", "--token", "your-token"]
startup_timeout_ms = 60000| Flag | Environment variable | Required |
|---|---|---|
--base-url |
FINNIAN_BASE_URL |
Yes |
--token |
FINNIAN_API_TOKEN |
Yes |
Flags take precedence over environment variables. The base URL must be HTTP(S); trailing slashes are stripped. Startup fails with a message on stderr if either is missing.
| Parameter | Type | Required | Description |
|---|---|---|---|
project_root_path |
string | Yes | Absolute project root path, using forward slashes |
query |
string | Yes | What you want to know, in natural language |
Before each retrieval, the client incrementally indexes project_root_path. It stores the index cache at <project_root>/.not-ace-tool/index.json and uploads only files whose contents have changed. The client supplies the resulting blob scope to the Finnian/ACE server automatically; callers provide only the project root and query.
| Parameter | Type | Required | Description |
|---|---|---|---|
prompt |
string | Yes | The prompt to rewrite |
conversation_history |
any | No | Prior turns, for continuity |
blobs |
object | No | Blob scope to ground the rewrite |
| Parameter | Type | Required | Description |
|---|---|---|---|
query |
string | Yes | Search query |
count |
integer | No | Results to return (the server caps this) |
| Parameter | Type | Required | Description |
|---|---|---|---|
situation |
string | Yes | The decision you face |
proposed_approach |
string | No | What you are about to do; also sharpens retrieval |
transcript |
string | No | Recent turns; tail-truncated when long |
blobs |
object | No | Blob scope. Omit it and the advice is ungrounded — the response says so via grounded_in_code |
- stdout carries only JSON-RPC frames; all diagnostics go to stderr, so the protocol stays clean.
- Requests time out after 30 seconds.
- Upstream error bodies are truncated and stripped of the auth token before being surfaced, since MCP errors surface in your editor.
cargo build --release
./target/release/not-ace-tool-rs --base-url <API_URL> --token <AUTH_TOKEN>GPL-3.0-only OR LicenseRef-Commercial. See LICENSE and LICENSE-COMMERCIAL.