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 "Install 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 Serversearch 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 ".".
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | . |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the access restriction (confined to workspace root) but does not specify whether recursion occurs, hidden file handling, or output format. Basic behavior is clear but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus an Args block. It is concise, front-loaded with the core purpose, and contains no redundant information. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an output schema, the description is adequate but lacks details about the return value (e.g., list of names vs. full paths) and recursion behavior. The output schema may compensate, but the description should hint at the output structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (no descriptions in schema). The description adds meaning by explaining the 'path' parameter as 'Target directory path relative to workspace' with default '.'. This provides necessary context beyond the schema's type and default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all files and directories inside a target workspace path. The verb 'List' and resource 'files and directories' are specific. It distinguishes from sibling tools like file_read (reads file contents) and file_changes_get.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions that access is confined to the workspace root, implying security context, but does not explicitly state when to use this tool versus alternatives (e.g., workspace_search for finding files by name). Usage is implied but not guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses that the background watcher monitors and keeps only the latest 100 events in memory, which is critical for understanding constraints. However, it does not specify behavior when no changes exist or whether the log is volatile across sessions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loads the purpose, and contains no redundant or unnecessary information. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and an output schema exists, the description sufficiently covers its behavior (100-event in-memory log). It is complete for the complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, and the description adds no parameter details, which is appropriate. Baseline for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it retrieves a log of recent file modifications, creations, or deletions in the workspace. The verb 'Get' and specific resource 'file changes' are precise. It distinguishes itself from sibling tools like 'file_read' and 'file_delete' by focusing on a history of operations rather than direct file actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for reviewing recent file activity, but does not explicitly state when to use it versus alternatives (e.g., 'file_read' for content, 'workspace_search' for content). No when-not or prerequisite guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It mentions the access confinement and the requirement that directories be empty, but does not explain error conditions, side effects, or what happens on success or failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, with the main purpose in the first line. It is efficiently structured with an args section, though it could be slightly more compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an output schema, the description covers the essential aspects: purpose, access constraint, and parameter meaning. However, it could be more complete by clarifying behavior for non-empty directories.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no description for the 'path' parameter (0% coverage). The description adds that it is a relative path, which is helpful, but it does not specify format details or relative to what exactly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool deletes a file or empty directory, which is a specific verb+resource. It distinguishes from sibling tools like file_read, file_write, or file_move, which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage (when you want to delete), but does not explicitly specify when to use this over alternatives or when not to use it. No exclusionary conditions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | ||
| destination | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behaviors. It only states the operation and path constraint, but fails to mention overwrite behavior, success/failure response, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is short and front-loaded with purpose. Parameter descriptions are slightly redundant but acceptable. No unnecessary text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite an output schema (not shown), the description lacks info on conflict handling, error conditions, and when to prefer this over sibling tools. Incomplete for a file move operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%. Description adds minimal semantics beyond the schema: 'Source path relative to workspace' and 'Destination path relative to workspace' essentially restate the property titles without extra detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Move or rename a file/directory inside the workspace' – specific verb and resource. Also adds constraint about workspace root, distinguishing it from other file tools like file_delete or file_write.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage for moving/renaming within workspace, but no explicit guidance on when to use vs alternatives like file_copy (not listed) or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It explicitly states the tool is read-only and access is confined to the workspace root, which are key behavioral traits. It does not mention output format, but output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with purpose followed by a constraint. Every word earns its place; there is no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, output schema exists), the description covers purpose, parameter semantics, and constraints adequately for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides no description for the path parameter. The description adds essential meaning by stating the path is relative to the workspace root, fully compensating for the 0% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads contents of text/code files, using a specific verb and resource. It distinguishes itself from sibling tools like file_delete or file_write, which perform different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for reading files within the workspace, but does not explicitly state when to use this tool over alternatives such as directory_list for listing or web_fetch for remote content. No exclusions or conditional guidance provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| content | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description covers essential behaviors: creates intermediate directories and restricts to workspace root. However, it does not disclose whether the file is overwritten or appended, nor error handling details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded, and uses simple bullet-style args with no redundant information, making it efficient for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with an output schema, the description covers input behavior well. It could mention overwrite semantics, but is otherwise complete for typical usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description compensates by defining both parameters: 'path' as relative path and 'content' as text content, adding meaning beyond the bare schema titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Write content to a file' with relative path, specifies workspace root confinement, and distinguishes from sibling tools like file_read, file_delete, and file_move.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for writing files and creating intermediate directories, but lacks explicit guidance on when not to use or alternatives, such as when to prefer file_move or when read-only is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that image links and hyperlinks are removed to save token context size, and that output is in clean markdown. Since no annotations are provided, the description carries the full burden; it is transparent about these key behaviors but could mention error handling or size limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences plus an Args block. Every sentence provides value, and the purpose is front-loaded. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no nested objects) and the presence of an output schema, the description covers all necessary aspects: purpose, behavior, and parameter meaning. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds necessary meaning to the 'url' parameter: 'The web URL to fetch and convert.' This clarifies the purpose beyond the schema's title and type. Could include examples or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool 'Fetches a webpage's content and converts it to clean markdown'. This specific verb-resource combination distinguishes it from sibling tools like web_search (search) and file operations (local files).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when you need the content of a specific URL, but does not explicitly compare with alternatives like web_search or mention when not to use this tool. No exclusion criteria or context are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| engine | No | auto | |
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It reveals that the tool uses scraping techniques with automatic fallback between engines, which is useful behavioral info. However, it does not discuss limitations like potential blocking, rate limits, or result variability, which would be needed for full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear purpose statement followed by structured Args. It is front-loaded and every line earns its place, but the format could be slightly more polished (e.g., using standard sections).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (so return values are covered), the description adequately covers input parameters and engine choices. It omits edge cases, error handling, or performance notes, but remains largely complete for a search tool with simple parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description fully compensates by explaining each parameter (query, engine with options, limit with max). This adds significant meaning beyond the bare schema properties, though 'auto' engine selection is not further detailed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches the web using specific engines (DuckDuckGo, Mojeek, auto-fallback), which is a specific verb-resource combination that distinguishes it from siblings like web_fetch (which fetches a single URL) and workspace_search (which searches local files).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention when not to use it or recommend specific scenarios, leaving the agent without decision context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It explains that the tool indexes files and creates/updates a local SQLite database. This is clear about the side effect (database creation). However, it does not mention potential performance impact or error handling, so a 4 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that front-load the action. Every word contributes meaning. No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and the presence of an output schema, the description adequately explains purpose and outcome. It mentions the database creation and its purpose, which is complete for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so schema coverage is 100% trivially. The description adds no parameter info because none exists. A baseline of 4 is reasonable as the description is fine but not exceptional.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it indexes all text and code files to create/update a SQLite FTS5 database for offline searching. The verb 'indexes' and resource 'text and code files' are specific, and it distinguishes from sibling tools like workspace_search (which uses the index) and file read/write (which modify files).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool over alternatives. It implies use before workspace_search, but lacks explicit guidance on when not to use or prerequisites like workspace existence. A 3 is adequate for a simple tool but leaves room for improvement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses offline nature, speed, and indexing requirement. Does not mention error conditions or side effects, but covers key behavioral aspects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences plus an Args list, no fluff. Front-loaded with purpose and prerequisite. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given existence of output schema, description need not detail return values. It covers prerequisite, default limit, and search scope. Lacks mention of behavior when index not populated, but overall complete for search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but description adds meaning: query='Keyword or terms to search for', limit='Maximum matching snippets to return. Defaults to 10.' This compensates for missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs a fast keyword search across indexed workspace text/code files completely offline. It uses a specific verb and resource, and distinguishes from sibling tools like web_search (online) and file_read (specific file).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states prerequisite: Must run workspace_index at least once before searching. Provides default limit. However, it does not explicitly state when not to use or mention alternatives, though implied by context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
10 tool updates
v0.1.0- First observed
directory_list - First observed
file_changes_get - First observed
file_delete - First observed
file_move - First observed
file_read - First observed
file_write - First observed
web_fetch - First observed
web_search - First observed
workspace_index - First observed
workspace_search
TDQS
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
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Self-hosted AI-native knowledge workspace with hybrid search, GraphRAG, and MCP.
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.
Related MCP Servers
- AlicenseBqualityCmaintenanceA 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.74296MIT
- AlicenseAqualityAmaintenanceA 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 gradedqualityAmaintenanceLocal-first MCP server for safely searching, reading, summarizing, tagging, deduplicating, and organizing local files with scoped access, read-only defaults, and dry-run plans.16MIT
- AlicenseNot gradedqualityBmaintenanceMCP server enabling local-first web search, fetch, extract, and caching with citeable excerpts, no API key required. Supports research workflows for agents and apps.18MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/b1krams/helix-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server