Helix MCP Server
Enables web searches using the DuckDuckGo search engine via its Python SDK, with no API keys required.
Provides web searches using the Mojeek search engine via HTML parsing, serving as an automatic fallback option.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Helix MCP Server search my workspace for TODO comments"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Helix MCP Server
A modern, local-first Model Context Protocol (MCP) server built with Python and managed by uv.
This server is designed to work fully offline (e.g. alongside llama-server running local models like Gemma 2) while providing secure workspace operations, offline searching, and modular web capabilities without requiring paid API keys.
Features
🔌 Standard stdio Transport: Connects seamlessly to standard MCP clients like Claude Desktop.
🛡️ Secure Filesystem Boundary: All file operations (read, write, delete, list, move) are strictly confined to the workspace root directory.
🔎 Offline Search & Indexer: Built-in SQLite FTS5 (Full-Text Search) engine that indices all text and code files in the workspace locally.
👁️ File Change Watcher: Background thread utilizing
watchdogto monitor workspace additions, deletions, modifications, and moves.🌐 Zero-Cost Web Search: Multi-adapter web search using DuckDuckGo (via Python SDK) and Mojeek (via HTML parsing) with automatic fallback. No API keys required.
📄 Clean Web Fetcher: Downloads pages and converts them to readable Markdown, stripping script, style, navigation, and image tags to conserve context window tokens.
Related MCP server: Repo Interrogator
Tech Stack
Python 3.10+
uv: Blazing-fast dependency resolver & package manager.
FastMCP: Declarative MCP framework wrapper.
SQLite FTS5: Fully offline search indexing.
Watchdog: Multi-threaded file systems events catcher.
Httpx & BeautifulSoup4: Scraping & page cleanup.
MCP Tools Provided
Tool Name | Arguments | Description |
|
| Search the web using DuckDuckGo/Mojeek. |
|
| Downloads a webpage and cleans it to Markdown. |
| None | Indexes all workspace text/code files locally. |
|
| Instantly queries the local index using FTS5 keywords. |
|
| Reads a text/code file (workspace relative). |
|
| Writes content to a file (workspace relative). |
|
| Deletes a file or empty directory. |
|
| Moves or renames files or directories. |
|
| Lists contents inside a workspace folder. |
| None | Returns a log of recent workspace file changes. |
Getting Started
Prerequisites
Install uv if you haven't already:
macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | shWindows:
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
Setup & Installation
Clone this repository and set up dependencies:
git clone https://github.com/b1krams/helix-mcp.git
cd helix-mcp
uv syncRunning Locally
To run the MCP server on stdio transport:
uv run python -m helix_mcp.serverConnecting to Clients
Claude Desktop Configuration
Add the following to your claude_desktop_config.json:
{
"mcpServers": {
"helix-mcp": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/helix-mcp",
"run",
"python",
"-m",
"helix_mcp.server"
]
}
}
}(Make sure to replace /absolute/path/to/helix-mcp with your actual full workspace path).
Development & Testing
Run the offline pytest suite to verify all tools:
uv run pytestFormatting and Linting:
uv run ruff checkAvailable Tools
10 toolsdirectory_listA
List all files and directories inside a target workspace path.
Access is strictly confined to the workspace root.
Args:
path: Target directory path relative to workspace. Defaults to ".".
Inputs: path. Returns: result
file_changes_getA
Get a log of recent file modifications, creations, or deletions in the workspace. The background watcher monitors the workspace and keeps the latest 100 events in memory.
Inputs: no named parameters. Returns: result
file_deleteA
Delete a file or empty directory in the workspace.
Access is strictly confined to the workspace root.
Args:
path: Relative path to the file or directory to delete.
Inputs: path (required). Returns: result
file_moveB
Move or rename a file/directory inside the workspace.
Both source and destination must resolve within the workspace root.
Args:
source: Source path relative to workspace.
destination: Destination path relative to workspace.
Inputs: source (required), destination (required). Returns: result
file_readA
Read the contents of a text/code file in the workspace.
Access is strictly confined to the workspace root.
Args:
path: Path to the file, relative to workspace root.
Inputs: path (required). Returns: result
file_writeA
Write content to a file in the workspace, creating any intermediate directories if needed.
Access is strictly confined to the workspace root.
Args:
path: Relative path where the file should be written.
content: The text content to write.
Inputs: path (required), content (required). Returns: result
web_fetchA
Fetch a webpage's content and convert it into clean markdown.
Image links and hyperlinks are removed to save token context size.
Args:
url: The web URL to fetch and convert.
Inputs: url (required). Returns: result
web_searchA
Search the web for a query using DuckDuckGo, Mojeek scraping, or automatic fallback.
Args:
query: The search term or question.
engine: The search engine to use ("auto", "duckduckgo", "mojeek"). Defaults to "auto".
limit: Max results to return (max 10). Defaults to 5.
Inputs: query (required), engine, limit. Returns: result
workspace_indexA
Indexes all text and code files in the local workspace directory. This creates/updates a local SQLite FTS5 database to enable offline searching.
Inputs: no named parameters. Returns: result
workspace_searchA
Perform a fast keyword search across indexed workspace text/code files completely offline.
Must run `workspace_index` at least once before searching to populate results.
Args:
query: Keyword or terms to search for.
limit: Maximum matching snippets to return. Defaults to 10.
Inputs: query (required), limit. Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 10 tools
Each tool has a clearly distinct purpose: file read, write, delete, move, list, change log, workspace index/search, web fetch, and web search. No two tools overlap in functionality.
Most tools follow a consistent pattern: 'file_<verb>' (file_read, file_write, file_delete, file_move, file_changes_get) and 'workspace_<verb>' (workspace_index, workspace_search). Minor deviation: 'directory_list' instead of 'file_list' and 'web_fetch'/'web_search' are separate but still consistent with their domain.
With 10 tools, the set is well-scoped for managing workspace files and performing web searches. Each tool serves a clear purpose without unnecessary redundancy.
The tool set covers CRUD for files, directory listing, change tracking, offline full-text search, and web operations. A minor gap is the lack of an explicit file copy tool, though move can be used with caution.
Maintenance
Related MCP Connectors
Self-hosted AI workspace: semantic RAG document search, long-term memory, and AI chat via MCP.
Web search API and MCP server for developers building AI agents.
Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.
Related MCP Servers
- AlicenseBqualityDmaintenanceA local-first MCP server that provides AI agents with safe codebase access through file discovery, hybrid lexical-semantic search, and project introspection. It features durable local memory and semantic indexing while keeping all data and processing entirely on your local machine.7487 npm6MIT
- AlicenseAqualityDmaintenanceA local-first MCP server that enables AI tools to safely inspect and search code repositories, providing indexing, deterministic BM25 search, code outlining, and context bundles without code modification.91MIT
- AlicenseNot gradedqualityFmaintenanceMCP server enabling local-first web search, fetch, extract, and caching with citeable excerpts, no API key required. Supports research workflows for agents and apps.96 npm1MIT
- FlicenseNot gradedqualityDmaintenanceA local-first, LLM-agnostic MCP server that lets you ask hard questions about your documents, media, and code, and get traceable answers entirely offline.-