Colink MCP
This server provides read-only access to explore and inspect your local code projects.
List projects (
list_projects) — discover which code projects are available to read.Browse a repo (
repo_overview) — list the code files in a project, paginated, with an opaque snapshot handle for reusing a consistent view.Read source (
read_file) — read a file's contents, including a specific line range (default 200 lines, max 1000).Search code (
search_code) — find literal, case-sensitive text across a project, returning file paths and line numbers.Review changes (
get_diff) — see the latest code changes versus the previous state, optionally limited to one file.Snapshot comparison — for all read tools, omit
snapshotfor current code, useprevious, or pass a handle fromrepo_overviewfor consistent reads.
All five tools are read-only, non-destructive, and idempotent — there is no ability to edit, create, or delete files here.
Enables ChatGPT/OpenAI to read selected local code projects via MCP, exposing read-only tools for project listings, source reading, code search, and diffs.
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., "@Colink MCPshow me what changed in my project since the last snapshot"
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.
公开预发行:0.5.0 Beta 5(0.5.0b5,build 22) · macOS 14+ · Apple Silicon · MIT
本版增加本机开发终端、固定数据库只读工具和局部代码索引更新。原生终端按当前 macOS 用户权限运行;可选隔离执行器目前只在已验证的 Darwin 27 上开放。 安装包声明最低 macOS 14;完整原生运行验收目前来自维护者的 macOS 27。 更新内容和验证边界见 Beta 5 发行说明。
CoLink 把你选定的本机项目接入 MCP。你可以在 ChatGPT 网页端询问项目结构、查找 函数、理解跨文件依赖;需要改代码时,在本机打开写入开关,让 AI 精准编辑、创建 或删除文件。默认只读,项目由你在本机确认。开发终端按当前系统用户权限运行, 项目选择决定初始目录,不构成文件系统或数据库隔离。
能做什么
功能 | 你可以用它做什么 |
按需读取源码 | 查找文件、搜索代码、读取指定行或片段;直接读取磁盘上已保存的文件 |
多项目管理 | 选择一个工作目录,分别启用其中的项目;在对话中指定项目 |
Python / Java 代码关系 | 查找符号、定义和引用,按需查询类关系、调用关系、文件/模块依赖、反向影响和依赖层级 |
精准写入 | 本机授权后按行插入、替换指定范围或唯一片段;修改前核对原文和文件哈希 |
创建、移动与删除 | 创建文件和目录,在任务范围内移动源码与静态资源,删除明确指定的单个文件;不提供递归删除 |
任务 Diff | 查看同一任务跨多轮、跨文件的累计改动,不在普通问答里展示递增版本编号 |
网页开发终端 | 开发档直接运行本机命令、安装依赖与启动前后端,支持交互输入和输出;按当前 macOS 用户权限执行 |
环境与端口 | 查询本机实际工具版本、创建项目 Python 虚拟环境、查看监听与冲突;手动启动的本项目旧服务需本机确认后停止 |
数据库命令 | 只读档查看库表、结构和数据;开发档通过 mysql、psql、redis-cli、sqlite3 或驱动执行 CRUD、DDL 等账号允许的操作,无连接页和聊天卡片 |
存储位置 | 在齿轮设置内的折叠入口查看或更换本机运行数据目录;默认 |
本地 Git | 精确提交本任务选择的文件,保留用户原有暂存内容;首版不推送 |
菜单栏控制 | 启动、关闭、选择文件夹和管理项目;跟随系统深浅主题,不占 Dock 位置 |
可选自动匹配 Skill | 本机代码缺少上下文时优先读取;已经贴出足够代码时直接回答,无需每次手选技能 |
普通文本源码读取不限于 Python / Java;结构化关系分析目前重点支持这两种语言。 关系来自静态分析,动态调用、外部库内部实现等可能无法确定,工具会标明不确定项。 Skill 是否自动匹配由客户端决定,不保证每轮触发。
本版的结构索引按项目使用独立 SQLite,只保留当前一版;每项目磁盘上限 500 MiB,按需分配。最多同时打开 4 个项目索引,关闭连接后缓存保留在磁盘; 详细容量、关系复用与性能复测见 安装版索引修复。
Related MCP server: github-assistant-mcp
开始使用
1. 安装应用
打开 0.5.0 Beta 5 下载页,
下载 Colink-macos-arm64.dmg,将 Colink.app 拖入“应用程序”,然后打开 CoLink。
也可以下载 ZIP 安装。
安装包已包含 Python、MCP 运行依赖和隧道客户端,不需要先安装开发环境。 目前支持 Apple Silicon Mac(M 系列芯片),macOS 14 或更新版本。 Beta 包尚未完成 Apple Developer ID 签名和公证,首次打开可能出现系统安全提示; 详情与文件校验方法见 安装指南。
2. 配置自己的连接
在菜单栏面板完成“首次连接设置”,填写你自己的 Tunnel ID 和运行密钥,再在 ChatGPT 中添加对应的私有 MCP 连接。首次配置步骤见 连接指南。
连接通过出站私有隧道建立,不需要 VPS、路由器端口映射或本机公网入站端口。 你仍需要具有相应功能和权限的 ChatGPT / Platform 账号;安装软件不会自动获得这些权限。
3. 选择项目并启动
先用自带样例确认连接可用,再选择自己的项目或工作目录。在“项目管理”中启用 要提供给 AI 的项目,点击“启动”。新发现的项目不会自动获得访问许可。
在新对话中可以这样问:
看看我已连接的项目有哪些。请只读取项目清单。
解释指定项目的入口函数,并查一下它依赖哪些文件。
找到这个 Python 类的定义、调用位置,以及修改它可能影响的模块。
主面板提供 只读 / 写入 / 开发 三档模式。需要修改时选择 写入,确认准确项目, 并明确告诉 AI 要改什么。关闭连接、退出或重启后,写入和运行权限都会关闭。更新旧版后,应在 ChatGPT 原连接页刷新工具并新建对话。写入使用方法见 读取与写入指南。
运行项目时选择 开发,为准确项目开启本机开发授权。网页可先查询环境和端口,
再通过 terminal_* 运行命令或数据库 CLI。终端以当前 macOS 用户权限运行,
项目 ID 决定授权入口和初始目录,并不隔离文件、网络或数据库。只读/写入档只有
固定数据库读取;本版没有数据库连接页、聊天卡片或逐库授权入口。
让 Agent 协助安装
把下面这句话交给你已有的本机编码助手:
请按照 https://github.com/YuyanYYt/Colink/blob/main/docs/AGENT_INSTALL.md 帮我安装 CoLink,先检查系统、版本和校验值,再说明安装计划;保留现有配置, 由我自己完成登录、密钥输入和项目授权。
Agent 可以协助下载、校验和安装,但不能代替账号授权或绕过系统安全提示。 想减少日常手动选择,另见 自动匹配 Skill 的安装方法。
从源码运行
适合开发者、Linux 用户或使用本地 stdio MCP 客户端的用户。准备 Git、Python 3.11+ 和 uv,然后运行:
git clone https://github.com/YuyanYYt/Colink.git
cd Colink
uv sync --locked让支持 stdio 的 MCP 客户端在仓库目录启动以下命令,即可只读连接自带样例:
uv run colink live --root examples/sample_project --project sample \
--data-dir .code-context/live-sample这不是网页访问地址,不会自动配置 ChatGPT 或打开写入权限。 多项目、HTTP、旧镜像兼容入口和客户端配置见 命令行指南。
版本更新
这里只列使用者能感受到的变化。开发阶段也保留在表中,不代表每个阶段都有独立安装包; 已发布包和对应源码可在 Releases 找到。
版本 | 主要变化 |
只读 / 写入 / 开发三档、原生终端、固定数据库只读、局部索引和自定义运行数据目录;见 发行说明 | |
0.5.0 Beta 4 · 维护源码 | 网页独立开发作业、原生隔离与有界存储、环境/端口/数据库引导、受控移动与本地 Git;公开发行状态和实际验收另行记录 |
0.5.0 Beta 2 · 公开发行 | 改善无 Git 项目发现和同名项目区分;发布直读、多项目及受控写入安装包;移除主动代码回退,代码历史交给项目 Git 管理 |
0.5.0 Beta 1 | 原文件按需直读、多项目授权、默认关闭的精准编辑与文件/目录创建、任务 Diff;后续源码补充单文件删除 |
0.4.3 · 开发阶段 | 修复自定义 Python 源码根的模块定位,支持显式源码根配置 |
0.4.2 · 开发阶段 | Python / Java 符号与关系查询;单文件上限提高到 4 MiB;品牌统一为 CoLink |
Diff 摘要、分页读取、连接状态检查、文件过滤与自动匹配 Skill | |
首个公开自包含 DMG / ZIP、首次连接设置、菜单栏运行和 Agent 安装指南 | |
0.3.3 | 项目与插件统一品牌;旧镜像只保留当前和前一次代码状态,取消面向用户的递增版本编号 |
0.3.2 | 插件名称统一,Logo 间距与中心对称优化 |
0.3.1 | 精简界面、平滑 Logo,支持从“应用程序”重新打开 |
0.3.0 | 原生 macOS 毛玻璃菜单栏界面,加入启动、关闭和选择文件夹 |
0.2.0 | 本机持续托管和私有隧道连接,无需另购服务器 |
0.1.0 | 初版源码读取、搜索、Diff、同步和 stdio / HTTP MCP |
完整记录见 CHANGELOG。更新应用请先关闭并退出旧版,保留原配置与数据; 历史版本可下载,但不保证能直接读取新版数据格式,详见 升级说明。
使用前需要知道
你决定可读范围。 只开放本机已确认的项目;不要直接共享个人主目录、系统目录或凭据目录。
私有连接不等于代码不出电脑。 被查询到的源码会发送给使用它的 AI 客户端及其服务提供方。
写入默认关闭。 本机许可和客户端工具确认相互独立;不会自动授予“全部权限”。
代码历史使用 Git。 当前版没有主动代码回退按钮;修改前保存重要稳定点,任务 Diff 不是 Git 历史。
运行独立授权。 首版非交互作业支持 Python、npm、Maven 和隔离 Shell;环境必须实际存在。Node 服务有 Unix socket 适配器,Python/JVM 服务需要相应接入,现有 Tomcat/Spring TCP 服务暂不能直接兼容。CPU、内存与进程数是监督软限制,原生保护不是虚拟机。
数据库需要实际验证。 工具存在、端口开放和进程启动都不代表业务成功;迁移、CRUD、重启后数据及向量检索分别验证。Qdrant 目前提供连接配置与引导,执行需项目范围认证,尚未启用。
存储有界,但不是零。 读取不保留完整源码镜像;结构索引、任务比较起点和中断保护仍占空间,并有容量限制。
过滤规则、隐私与写入边界见 SECURITY。
更多资料与贡献
安装与升级 · 读取与写入 · Python / Java 代码关系 · 自动匹配 Skill · 技术架构 · 开发与贡献
欢迎通过 Issues 提交问题和功能建议。 请附系统、芯片、应用版本和复现步骤,不要上传运行密钥或私人源码。
CoLink 使用 MIT 许可证。这是每位用户独立运行的开源软件,不是共享维护者 账号的公共连接,也不代表已经上架 ChatGPT 公共插件目录。
软件恢复锚点
当前首选:anchor/colink-0.5.0b5-build19-verified(恢复基准为 0.5.0b5 · build 19,对应源码 79ad2ae;当前发布版为 build 22)。
恢复前保留当前改动并检查运行数据兼容性,具体步骤和归档记录见
build 19 恢复说明。2026-10-08 用户明确改选本机新版,
旧 CoLink 恢复标签已删除;历史文档仅保留当时记录。
Available Tools
5 toolsget_diffARead-onlyIdempotent
Review the latest code changes against the preceding state; no numbered versions needed. Omit snapshot for current code or reuse its opaque handle. With only one initial state, compare against an empty project. Optional path limits the comparison to one file.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| snapshot | No | ||
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description goes beyond that by disclosing two real behaviors: no version numbering is required, and a single-state project diffs against an empty project. It does not mention result format or size, but the output schema exists for that.
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?
Three sentences, front-loaded with the core purpose before the parameter conditions. Slightly dense and the phrase "no numbered versions needed" is a bit oblique, but no sentence is wasted.
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?
With an output schema present, return values need not be explained, and the description covers all three parameters plus the edge case of a single initial state. What remains missing is any indication of comparison scope limits or relationship to sibling tools.
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%, so the description must carry the parameters, and it does: snapshot is an opaque handle that can be omitted for current code, and path narrows the diff to one file. project_id is only implicitly covered, which is the one small gap.
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 states a specific verb+resource ("Review the latest code changes against the preceding state"), which reads as a diff-retrieval operation and is distinguishable from read_file/search_code/repo_overview by its comparative scope. It never names a sibling explicitly, so differentiation is inferential rather than stated.
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?
It gives conditional usage for parameters ("Omit snapshot for current code", "With only one initial state, compare against an empty project"), which is real guidance, but it never says when to prefer get_diff over repo_overview or search_code. Usage is implied through parameter conditions rather than stated as a routing decision.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_projectsBRead-onlyIdempotent
Find available code projects. Context handles are internal, not user-facing labels.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds one genuinely useful piece of context — that context handles are internal identifiers rather than display labels — but says nothing about ordering, scope, or filtering behavior.
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 short sentences with no filler, and the core purpose is front-loaded. The second sentence is terse to the point of being cryptic, but it is not wasted.
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?
An output schema exists, so return values needn't be explained, and there are no parameters to document. Still, for a discovery tool sitting beside repo_overview, the description leaves the project-vs-repo relationship and the expected usage flow unstated.
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?
Zero parameters, so per the rubric the baseline is 4. The note that 'context handles are internal, not user-facing labels' is about output labeling rather than inputs, so it doesn't shift this dimension.
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?
States a clear verb+resource: 'Find available code projects.' This is distinguishable from siblings like repo_overview, read_file, search_code, and get_diff, which all operate on code content rather than enumerating projects. However, it never clarifies how a 'project' relates to a 'repo' in this ecosystem.
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?
No guidance on when to call this versus siblings such as repo_overview, nor any prerequisites or ordering advice. The intent (discover projects before acting on them) is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_fileARead-onlyIdempotent
Read source to answer code questions; default 200, max 1000 lines. Omit snapshot for current code, use 'previous', or reuse repo_overview's opaque handle for consistent reads. Report code findings, not handles, hashes or synchronization metadata, unless requested.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| end_line | No | ||
| snapshot | No | ||
| project_id | Yes | ||
| start_line | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds real behavioral context: default 200 and max 1000 lines, snapshot consistency semantics, and output-reporting guidance ("report code findings, not handles, hashes..."). That is more than the annotations provide.
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?
Front-loads the purpose, then adds two compact clauses on snapshot semantics and reporting. Dense but every sentence carries information; minor awkwardness in the mid-clause aside, it is appropriately sized.
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?
An output schema exists, so return-value detail is unnecessary, and the description covers the non-obvious snapshot and line-limit behavior. Given the low schema coverage, project_id and path could be clarified, but an agent has enough to invoke it 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?
Schema description coverage is 0%, so the description must carry the load. It explains snapshot values well and the default/max line count maps to start_line/end_line behavior, but path and project_id are left entirely undocumented. Partial compensation only.
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?
States a specific verb+resource ("Read source") and ties it to a goal ("answer code questions"), which distinguishes it from list_projects, search_code, and get_diff. It references repo_overview's handle, but does not otherwise differentiate itself from siblings that also surface code, so it falls short of a 5.
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?
Provides condition-based guidance for the snapshot parameter (omit for current, 'previous', or reuse a repo_overview handle), which is genuinely useful. However, it never states when to prefer read_file over search_code or get_diff, so usage relative to alternatives remains implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
repo_overviewARead-onlyIdempotent
List code files. Omit snapshot for current code, use 'previous', or reuse an opaque handle. Pass the returned handle to follow-up reads; do not include it in the answer. Only current and previous code are retained. Expired handles require a fresh analysis.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| snapshot | No | ||
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so safety is covered. The description adds genuinely new behavioral context: retention is limited to current and previous code, handles expire and require a fresh analysis, and the handle must not appear in the answer. That lifecycle detail goes well beyond the annotations.
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?
Short, front-loaded, and every sentence carries information about the snapshot/handle lifecycle. The phrasing is terse to the point of being cryptic in places ("do not include it in the answer"), but there is no 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?
An output schema exists, so return shape need not be described, and the description covers the tricky part (snapshot selection, handle reuse, expiry). Missing only pagination behavior for limit/offset and any hint of result size, which is minor given the output schema.
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%, so the description carries the burden, and it does explain the snapshot parameter's three modes and the handle contract thoroughly. But limit, offset, and project_id receive no explanation at all, leaving pagination semantics undocumented.
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?
States a specific verb+resource ("List code files"), so an agent knows the basic operation. However, it never distinguishes itself from siblings like read_file or search_code, and the name "repo_overview" suggests something broader than a file listing, leaving a small ambiguity about scope.
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?
It gives concrete guidance on the snapshot argument (omit for current code, use 'previous', or reuse a handle) and on passing handles to follow-up reads, which implies a workflow. But it never says when to choose this tool over read_file, search_code, or get_diff, so sibling selection is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_codeARead-onlyIdempotent
Locate literal, case-sensitive code text with paths and lines. Omit snapshot for current code, use 'previous', or reuse an opaque handle. Keep handles out of the answer.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| snapshot | No | ||
| project_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower; the description adds real behavioral detail on matching semantics (literal, case-sensitive) and the snapshot-handle lifecycle, including the caution to keep handles out of the answer. It stops short of describing result ordering or pagination behavior.
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 short sentences, front-loaded with the core behavior and no filler. The trailing 'Keep handles out of the answer' is terse and slightly ambiguous but earns its place as an operational caution.
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?
An output schema exists, so return values need no explanation here. With matching semantics, snapshot modes, and the safety profile covered by annotations, the definition is nearly sufficient; only limit/pagination behavior is unaddressed.
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%, so the description must carry the load. It does explain query semantics (literal, case-sensitive) and snapshot modes, but says nothing about limit or project_id, leaving two of four parameters undocumented anywhere.
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?
States a specific verb and resource ('Locate literal, case-sensitive code text') plus what is returned ('paths and lines'). It does not explicitly contrast itself with read_file or get_diff, but 'search' vs 'read' is a reasonably clear split for an agent.
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 snapshot guidance ('Omit snapshot for current code, use previous, or reuse an opaque handle') is useful mode-selection advice, but it is parameter usage rather than tool-selection guidance. There is no statement of when to prefer this over read_file or get_diff, so usage is only implied.
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.
5 tool updates
v0.4.0- First observed
get_diff - First observed
list_projects - First observed
read_file - First observed
repo_overview - First observed
search_code
TDQS
Scored across 5 tools
Each tool targets a distinct action: listing projects, listing files, reading content, searching, and diffing. The four read tools share a 'snapshot'/opaque-handle mechanism but their core purposes (files vs. content vs. search vs. diff) remain clearly separable.
Four tools follow a verb_noun pattern (list_projects, read_file, search_code, get_diff). repo_overview breaks the pattern as a noun-first name, a minor deviation but still readable.
Five tools is a lean but well-scoped set for a read-only code exploration server. Each tool covers a distinct need without redundancy, though slightly thin overall.
Covers the core read-only lifecycle: discover projects, enumerate files, read content, search text, and view diffs. Minor gaps exist (e.g., no directory-level navigation or metadata/project-detail view), but agents can work around them.
Maintenance
Related MCP Connectors
Code intelligence for LLMs. Analyze, search, and retrieve code from any public git repository.
Read-only access to your CodeMouse accounts, repositories, and AI pull-request reviews.
Serves your design system and coding standards to coding agents, so they stop guessing.
Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only
Related MCP Servers
- FlicenseBqualityDmaintenanceProvides LLMs with safe, read-only access to local codebases for searching, reading files, and finding function definitions. All source code remains local, ensuring privacy while enabling AI assistants to explore project structures and functionality.4-
- FlicenseAqualityCmaintenanceA read-only MCP server that lets AI assistants inspect local workspace files, search context, view git diffs, and fetch a fixed GitHub profile, all within a sandboxed stdio transport.5-
- AlicenseAqualityAmaintenanceRead-only MCP server that gives Claude Code and Codex clean, token-efficient codebase context, with API keys and passwords masked automatically.828Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables ChatGPT to inspect a selected local project on demand, retrieving project overviews, code search results, file excerpts, and Git context without pasting entire repositories into the conversation.5MIT