file-read
Read content from one or more files within the project directory structure
One 20 MB binary that gives your AI read, write and search across several projects at once.
LABSCO SUMMARY
Tests, migrations, linters, deployments — you describe the command once and the AI can trigger it, with a schema when it needs arguments. Paired with the multi-project list, that is what makes a change spanning three microservices a single conversation rather than three. Custom tools are opt-in and time-limited, which is the right default for something that shells out.
CTX: an MCP server plus a context generator, shipped as a single dependency-free binary. It gives an assistant filesystem access across the projects you list, and lets you turn your own commands into tools.
The binary, installed with the shell or PowerShell script — no Node.js, no Python, no runtime. ctx mcp:config detects your OS and writes the client configuration, or add the ctx server command yourself, with -c and a path to pin it to one project. ctx init creates context.yaml. Custom tools are gated by MCP_CUSTOM_TOOLS_ENABLE, and a command's runtime is capped by MCP_TOOL_MAX_RUNTIME, which defaults to 30.
One command — curl -sSL https://raw.githubusercontent.com/context-hub/generator/main/download-latest.sh | sh
USE CASES
List the projects in config and let the assistant see and edit all of them in one session.
Declare the command as a custom tool, and it can run tests and read the result instead of asking you to.
Download one binary and run ctx mcp:config — nothing else to install.
Generate markdown documents from files, git diffs and URLs, and paste them in.
Listed in project code.
file-readRead content from one or more files within the project directory structure
file-writeWrite content to a file (mostly new files, use apply-path for updates if possible). Can create parent directories automatically.
file-replace-contentReplace a unique occurrence of text in a file with exact matching.
file-insert-contentInsert content at specific line number(s) in a file. Supports single or batch insertions with automatic line offset calculation.
file-delete-contentDelete specific line(s) from a file. Supports individual lines or ranges.
file-searchSearch for text or regex patterns in files. Returns matches with surrounding context lines and line numbers. Useful for finding code patterns, function definitions, or specific content across the codebase.
directory-listList directories and files with filtering options using Symfony Finder. Always ask for source path.
php-structureAnalyze PHP file structure and relationships. Returns class/interface/trait signatures with links to related files (extends, implements, use statements, type hints). Use depth parameter to follow relationships recursively.
context-requestRequest a context document using JSON schema, filters and modifiers
context-getGet a specific context document from the project context config
contextList all contexts in the project context config
library-searchSearch for available documentation libraries in Context7
find-docsFind documentation for a specific library
projects-listList all registered projects with their paths, aliases, and configuration details. Also shows whitelisted projects available for the "project" parameter in tools.
project-switchSwitch to a different project by path or alias
research-templates-listRetrieve all available templates for creating researches
research-createCreate a new research from an existing template with validation and proper initialization
researches-listRetrieve a list of user's researches
research-getRetrieve a single research by ID
research-updateUpdate existing research properties including title, description, status, tags, entry directories, and memory entries
research-entry-createAdd new content entries to research categories
research-entriesRetrieve a list of entries from a research
research-entry-readRetrieve detailed information about a specific entry
research-entry-updateUpdate existing research entries with new title, content, status, or tags while preserving entry metadata
git-statusShow the working tree status - displays paths that have differences between the index and the working tree, between the index and HEAD, and paths that are untracked
git-addAdd files to the staging area for the next commit. Stages changes in the working directory to be included in the next commit
git-commitCreate a new commit with staged changes. Records changes to the repository with a commit message. Use git-add tool first to stage files, or use stageAll option to stage all tracked files automatically
BEFORE YOU INSTALL
27 tools registered in the project's code. That is the default set. MCP_PROMPT_OPERATIONS adds prompt-get and prompts-list; MCP_FILE_OPERATIONS, MCP_CONTEXT_OPERATIONS, MCP_DOCS_TOOLS_ENABLED, MCP_PROJECT_OPERATIONS and MCP_GIT_OPERATIONS each switch their group off; every custom tool you declare in context.yaml adds one more.
ctx on PATH
INSTALLATION
curl -sSL https://raw.githubusercontent.com/context-hub/generator/main/download-latest.sh | sh{
"mcpServers": {
"ctx": {
"command": "ctx",
"args": [
"server"
]
}
}
}ctx mcp:config