Agentsbestfriend

io.github.TheRealFloatDevPublished by GitHub account TheRealFloatDevv0.12.0Updated Oct 24, 2026

MCP that provides fast, token-efficient tools for navigating, searching, and understanding codebases

VerifiedSTDIODesktop onlyKnowledge & MemoryDeveloper Tools

Overview

AI-generated overview

A local MCP server that gives coding assistants token-efficient tools to search, navigate, and analyze a project's codebase.

What you can do
AgentsBestFriend indexes a project into a local SQLite database and exposes tools for code search (exact, keyword, or semantic), symbol and chunk extraction, project overview, import graphs, impact and blast-radius analysis, related-test ranking, TypeScript diagnostics, definition/hover lookups, call graphs, and git log/blame/diff. It also offers read-only preview and refactor-planning tools, plus an optional write tool for atomic file edits. Optional Ollama integration adds LLM-generated file summaries and embeddings.
When to use it
Useful when an assistant repeatedly re-reads files or searches blindly in a large codebase and you want compact, structured answers about symbols, dependencies, and change impact. Best suited to TypeScript/JavaScript projects, with regex-based support for Python.
Requirements
Runs locally over stdio, typically via npx agentsbestfriend start or a global npm install. Needs Node.js 20 or newer, ripgrep, and git. Ollama is optional for summaries and semantic search. The ABF_PROJECT_ROOT environment variable sets the project root and defaults to the current working directory.
Before you install
The server indexes project files into a local .abf/index.db and can add .abf/ to .gitignore. The write tool abf_apply_edit is disabled unless ABF_ENABLE_WRITES=1 is set; when enabled it modifies files, so review proposed edits first. If Ollama is used, file contents are sent to the local Ollama endpoint configured in ~/.abf/config.json.

Installation

In SourceWeft

  1. Open Agentsbestfriend in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

AgentsBestFriend (abf)

Give your AI coding agents superpowers — a local MCP server for fast, token-efficient code navigation, search & analysis.

Works with VS Code Copilot, Cursor, Claude Code/Desktop, Codex, Cline, Zed, Gemini CLI, Goose, OpenCode, and any other MCP-compatible agent.


Why?

AI coding agents waste tokens re-reading files and searching blindly. ABF gives them purpose-built tools that return exactly what they need — in compact, structured responses that preserve context.

Tools

ToolWhat it does
abf_searchCode search — exact (ripgrep), keyword-ranked, or semantic (embedding-based)
abf_search_multiRun multiple search queries (exact/keyword/semantic) in one call with weighted score merging
abf_symbolsFunctions, classes, exports in a file (AST-based for TS/JS, regex for Python)
abf_chunkSmart file chunk by symbol name, chunk index, or file overview
abf_project_overviewTech stack, folder structure, key dependencies at a glance
abf_dependenciesImport graph — who imports what
abf_impactFind all usages of a symbol across the project
abf_impact_typedAST-aware (ts-morph) impact analysis with classified references (definition/call/import/type_ref/jsx) and confidence levels
abf_blast_radiusBFS over reverse-import graph for a file with risk scoring (low/medium/high)
abf_related_testsHeuristically rank test files most likely to cover a file or symbol
abf_preview_changesRead-only preview: diff + symbol/import deltas + risk flags + external usage probe (no writes)
abf_refactor_planRead-only ordered edit plan for rename/move/extract/split with collision detection
abf_apply_editWrite tool — atomic file write with sha256 hash check (disabled unless ABF_ENABLE_WRITES=1)
abf_diagnosticsTypeScript diagnostics (errors/warnings) for one file or all tracked TS/JS files
abf_definitionGoto-definition via the TypeScript language service — file, line range, and source preview
abf_hoverType signature + JSDoc for an identifier (IDE-style hover)
abf_call_graphTransitive callers/callees of a function or method (TS/JS, ts-morph)
abf_gitGit log, blame, diff (recent/staged/unstaged)
abf_file_summaryFull-text search across LLM-generated file summaries (FTS5, OR/AND mode)
abf_conventionsDetected naming, structure, and formatting conventions
abf_indexIndex status, rebuild, incremental update, or trigger re-summarization
abf_pingHealth check — returns version and project root

Install

bash
npm install -g agentsbestfriend

Prerequisites

  • Node.js ≥ 20
  • ripgrep — brew install ripgrep (macOS) / apt install ripgrep (Linux)
  • git
  • Ollama (optional) — for summaries & semantic search: ollama.com

Quick Start

bash
abf init

abf init walks you through everything:

  1. Indexes your project — discovers and indexes all files via git ls-files
  2. Generates LLM summaries & embeddings (if Ollama is running) — with live (12/80) progress
  3. Adds .abf/ to .gitignore — prompts before writing
  4. Installs ABF as an MCP server for your agents — you pick which agents (Cursor, VS Code, Claude Code, etc.) and whether to use npx agentsbestfriend start (always latest) or abf start (local install)

Manual Agent Setup

If you prefer to configure manually, add ABF as a stdio MCP server. Using npx is recommended — it always runs the latest published version without requiring a global install:

VS Code / GitHub Copilot (.vscode/mcp.json):

json
{  "servers": {    "abf": {      "command": "npx",      "args": ["agentsbestfriend", "start"]    }  }}

Cursor (.cursor/mcp.json):

json
{  "mcpServers": {    "abf": {      "command": "npx",      "args": ["agentsbestfriend", "start"]    }  }}

Claude Desktop (claude_desktop_config.json):

json
{  "mcpServers": {    "abf": {      "command": "npx",      "args": ["agentsbestfriend", "start"]    }  }}

Set ABF_PROJECT_ROOT in the env block if the agent does not pass its working directory automatically.

CLI Commands

abf start             Start MCP server in stdio mode (used by agents)abf init [path]       Index project, set up .gitignore entry, install MCP for agentsabf skill [path]      Install or update the ABF workflow skill for your coding agentsabf index [path]      Re-index a project (incremental by default)abf status [path]     Show index statsabf config            Interactive configuration editorabf doctor            Health checks (Node, ripgrep, git, Ollama)abf portal            Interactive TUI dashboard

How It Works

ABF maintains a lightweight SQLite index (.abf/index.db) inside each project root. The index is built once and updated incrementally — only changed files are re-processed. A file watcher keeps it current as you edit.

TableContents
filesPaths, hashes, languages, line counts, LLM summaries
symbolsFunctions, classes, interfaces, types (AST-extracted)
importsDependency edges between files
embeddingsFloat32 vectors for semantic search (chunked for large files)
file_chunksSmart chunks aligned to symbol boundaries
files_ftsFTS5 full-text index over summaries

Optional: LLM Enrichment

With Ollama running locally, ABF generates file summaries and embeddings:

bash
ollama pull qwen2.5-coder:1.5b    # file summariesollama pull nomic-embed-text       # embeddings / semantic search

Both abf init and abf portal → Re-index show live progress:

◆  Generating LLM summaries... (14/80)◆  Generating embeddings... (28/80)

Large files are automatically split into chunks for embedding — no context-length errors.

Without Ollama, all tools still work normally. Semantic search falls back to keyword mode.

Configuration

Global config at ~/.abf/config.json. Edit interactively with abf config or via abf portal.

json
{  "llm": {    "provider": "ollama",    "ollama": {      "baseUrl": "http://localhost:11434",      "summaryModel": "qwen2.5-coder:1.5b",      "embeddingModel": "nomic-embed-text"    }  },  "indexing": {    "autoWatch": true,    "respectGitignore": true,    "maxFileSizeKb": 512,    "excludedPatterns": ["*.min.js", "*.min.css", "*.map", "*.lock"]  },  "search": {    "defaultMaxResults": 20  }}

Architecture

AgentsBestFriend/├── packages/│   ├── core/     Shared logic — DB, config, search, analysis, indexer, LLM│   ├── server/   MCP server (11 tools)│   └── cli/      Commander.js CLI + TUI portal├── turbo.json└── package.json

Built with Turborepo + pnpm workspaces. Core modules:

ModulePurpose
@abf/core/dbDrizzle ORM + SQLite (WAL, FTS5)
@abf/core/configZod-validated config
@abf/core/searchripgrep, keyword scorer, semantic (cosine similarity)
@abf/core/analysists-morph AST, conventions detector, project overview
@abf/core/indexergit ls-files discovery, incremental pipeline, file watcher
@abf/core/llmOllama client, summary & chunked embedding pipelines
@abf/core/gitGit CLI wrapper

Development

bash
# Install dependenciespnpm install
# Build all packagespnpm build
# Watch modepnpm dev
# Type-checkpnpm type-check

Links

License

MIT

Source: README.md at commit f44860a

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.12.0LatestSep 16, 2026

Score

40% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.