
Ghostlink
io.github.bgorzelic由 GitHub 账号 bgorzelic 发布v0.1.0更新于 Oct 24, 2026
Sandboxed repo access for coding agents: search, read, patch, run, git -- confined to a repo root.
概览
本地运行的沙箱式 MCP 服务器,让编码助手在单一仓库根目录内搜索、读取、打补丁、运行白名单命令并查看 git 状态。
- 可以做什么
- 用正则和 glob 过滤搜索代码,并在大小上限与二进制检测下读取文件
- 以 dry-run、沙箱校验和原子回滚方式应用统一 diff 补丁
- 运行固定命令集(test、lint、typecheck、build、smoke),参数受白名单限制并带超时
- 查看 git 状态(分支、领先/落后)以及暂存或未暂存的 diff
- 每次调用返回结构固定的 JSON 信封并附来源信息,同时写入一条 JSONL 审计记录
- 适用场景
- 当助手需要在本地 git 仓库上工作、但不应获得原始 shell 权限时使用:适用于编码代理的搜索、读取、打补丁、验证循环,且操作被限制在一个仓库根目录内、输出有上限。
- 运行要求
- 通过 npm 包(npx)或构建后的源码以 STDIO 在本地运行。需要 Node.js 18+、已安装 ripgrep,以及一个 git 仓库。必须设置环境变量 GHOSTLINK_REPO_ROOT,值为仓库的绝对路径。GHOSTLINK_LOG 可选,用于选择审计日志方式(stdout、file 或 off)。
安装
在 SourceWeft 中
- 打开 控制台中的 Ghostlink,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
GhostLink
A security-hardened MCP server that gives AI coding agents safe, deterministic access to local repositories.
[CI] [npm] [TypeScript] [Node] [Tests] [License: ISC]
Add it to any MCP client that supports STDIO. For Claude Code, create .mcp.json in the target repo root:
Then run claude in that directory — six repo tools appear, all confined to GHOSTLINK_REPO_ROOT. Every tool call returns the same deterministic ToolEnvelope:
On error, "error": { "code": "...", "message": "..." } replaces "data". Full tool schemas: docs/TOOLS.md.
Tools
What is GhostLink?
GhostLink is a local-first Model Context Protocol server that exposes your codebase to AI coding agents through a small set of policy-gated tools. It solves a specific problem: AI agents need to search, read, patch, and verify code, but giving them raw shell access is a liability. GhostLink provides a sandboxed capability plane where every tool call is confined to a single repository root, every output follows a deterministic JSON shape, and every invocation is audit-logged.
Why GhostLink?
Architecture
GhostLink is a three-layer stack designed for extensibility without core changes:
The createServer() factory knows nothing about transport. Adding HTTP/SSE in Phase 2 means writing a new transport binding and auth middleware -- the server factory and all tool implementations remain unchanged. Phase 3 (agent runtime) adds memory resources and orchestration as consumers of GhostLink, not modifications to it.
Quick Start
Prerequisites
- Node.js 18+
- ripgrep (
brew install ripgrep) - A git repository to expose
Install
From npm:
Or from source:
Smoke Test (Raw STDIO)
GhostLink speaks JSON-RPC 2.0 over STDIO. Test it directly:
This returns all 6 tools and their schemas.
Client Configuration
GhostLink works with any MCP client that supports STDIO transport. The npx snippet at the top of this page works everywhere; a source checkout uses node with the built entry point instead:
The transport is always STDIO. Ready-to-use .mcp.json and CLAUDE.md templates for target projects live in templates/.
Security Model
GhostLink enforces defense-in-depth at every layer:
- Repo-root sandbox -- All file operations confined to
GHOSTLINK_REPO_ROOT. Path traversal, symlink escape, null bytes, and absolute paths outside the root are all rejected before any filesystem access. - No shell execution --
repo.runusesspawnwithshell: false. Commands are limited to a fixed allowlist (test, lint, typecheck, build, smoke) with per-command argument allowlists. Environment is stripped to six safe variables. - Output caps -- Every tool that returns bulk data enforces hard maximums (200 search results, 10MB file reads, 200KB stdout/stderr, 2MB diffs). Truncation is flagged, never silent.
- Atomic patch rollback --
repo.apply_patchvalidates all paths and computes all patches before writing anything. If any write fails, completed writes are rolled back to their original state. - Timeout enforcement --
repo.runkills processes at configurable timeouts (default 120s, hard cap 300s) with SIGTERM then SIGKILL.
Full threat model and mitigations: docs/SECURITY.md.
Audit Logging
Every tool call produces a JSONL audit entry: {ts, tool, ok, duration_ms, error_code?, repo_root}.
Set via environment variable:
Prompt Templates
docs/PROMPTS.md contains ready-to-use prompts for high-autonomy agent operation, including orchestrator prompts, sub-agent role definitions (Protocol Engineer, Toolsmith, Security Reviewer, Test Engineer, Docs Engineer), and multi-instance coordination patterns.
Development
Full verification after edits:
Documentation
Roadmap
Phase 1 -- Local STDIO [Shipped, v0.1.0]
Deterministic tool surface, repo-root sandbox, curated command execution, 108 tests, JSONL audit logging, npm package published.
Phase 2 -- Remote Transport [Planned]
HTTP/SSE transport, OAuth 2.1 authentication, multi-user tenant separation, per-tenant rate limiting, schema versioning, structured audit logging with correlation IDs.
Phase 3 -- Agent Runtime [Future]
Persistent memory resources exposed via MCP, optional policy-gated memory write tools, orchestration layer (external to GhostLink), evaluation loops, sub-agent coordination framework.
License
ISC
来源:README.md,提交 9f40c5f
工具
0版本历史
1- v0.1.0最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分