中文BLOCK
Local development control plane for MCP coding agents.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
Use MCP coding agents on the projects and tools already on your machine. 让 MCP 编程 Agent 直接使用你电脑上现有的项目和开发工具。
中文 · English
ForgeRelay 是一个运行在你自己机器上的 MCP Server。它解决的是一个很实际的问题:ChatGPT 这类 Host 会写代码,但默认碰不到你电脑上的项目、Shell 和 Git。
把 ForgeRelay 接上以后,Agent 就能直接在你现有的仓库里改文件、跑测试和构建、执行 Git、调用语言服务器,并继续使用你已经装好的工具链。项目不用搬到另一套工作目录,也不用为了这件事再换一套 Coding Agent。
安装
需要 Node.js >=22.19 <27、npm 和 Git。
npm install -g @akira-tl/forgerelay forgerelay init forgerelay serve
不想全局安装也可以:
npx @akira-tl/forgerelay init npx @akira-tl/forgerelay serve
默认 MCP 地址:
http://127.0.0.1:7676/mcp
forgerelay init 会让你选择允许访问的项目目录,并生成 Owner password。第一次连接 MCP Host 时,用这个密码批准客户端。
检查当前实际生效的配置和 Shell:
forgerelay doctor forgerelay config check forgerelay config sources forgerelay config explain
ForgeRelay 的 Config System 统一解析 User、Project 和机器私有 Project Local 配置,优先级是 runtime > project-local > project > user > built-in。External MCP、L
6d45f330f3a0OBSERVED · 2026-10-12Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add forgerelay --env FORGERELAY_DEBUG_OWNER_TOKEN=${FORGERELAY_DEBUG_OWNER_TOKEN} --env FORGERELAY_OAUTH_OWNER_TOKEN=${FORGERELAY_OAUTH_OWNER_TOKEN} --env GH_TOKEN=${GH_TOKEN} --env GITHUB_TOKEN=${GITHUB_TOKEN} -- npx -y @akira-tl/[email protected]{
"mcpServers": {
"forgerelay": {
"command": "npx",
"args": [
"-y",
"@akira-tl/[email protected]"
],
"env": {
"FORGERELAY_DEBUG_OWNER_TOKEN": "${FORGERELAY_DEBUG_OWNER_TOKEN}",
"FORGERELAY_OAUTH_OWNER_TOKEN": "${FORGERELAY_OAUTH_OWNER_TOKEN}",
"GH_TOKEN": "${GH_TOKEN}",
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
}
}
}
}Exposed tools (36)
32 read · 3 write · 1 destructive. Blast radius: 1 tool can delete or overwrite — an agent that can be talked into calling a tool can be talked into calling this one.
| Tool | Risk | Description |
|---|---|---|
artifact.download | write | Save one Host-native file into a workspace-relative destination without overwriting. |
artifacts-review | write | Native artifact transfer and aggregate change review. |
batch-execution | read | One-call execution of multiple independent ForgeRelay core operations. |
batch.execute | write | Execute multiple independent ForgeRelay core operations in one Agent interaction. |
claude | read | A profile that shadows the raw provider. |
code-intelligence | read | Read-only semantic code navigation backed by external Language servers. |
code.intelligence | read | Read semantic code information and, when explicitly enabled by the user, manage ForgeRelay-owned Language Servers for this instance. |
direct_image | read | |
double_image | read | |
echo_text | read | |
fail | read | |
fixture_tool | read | fixture |
helper | read | Valid helper. |
hidden-path-skill | read | Loads without exposing its filesystem path. |
hooks.check | read | Validate the active ForgeRelay Hook configuration for this workspace. |
host-integration | read | OAuth, public endpoint, stale Host metadata, and MCP App debugging. |
http_echo | read | |
legacy-only | read | Legacy user profile. |
lifecycle-hooks | read | Hook events, blocking, reports, and configuration. |
malformed_image | read | |
mcp.external | read | Discover and call tools from user-configured external MCP servers through the ForgeRelay Capability gateway. |
modern_echo | read | |
path_only | read | |
resource_only | read | |
review.changes | read | Review accumulated workspace changes from the Git-backed review checkpoint. |
reviewer | read | Review changes. |
shell-processes | read | Long-running bash processes, processId interaction, PTY, and platform edges. |
subagent.session | read | Delegate explicit work to provider-backed Subagent Sessions in the current Execution Workspace; disclose delegation and verify returned results before presenting them as final. |
subagents | read | Local subagent delegation and session follow-up. |
tdd | read | Test-driven development |
unsupported_image | read | |
url_only | read | |
workspace-tasks | read | Persistent Task Lists owned by the current Workspace. |
workspace.checkpoint | destructive | Create, list, inspect, safely restore, or delete immutable Git-backed checkpoints owned by the current persistent Workspace. |
workspace.recovery | read | Inspect or safely repair the current managed-worktree Workspace when ForgeRelay can prove the surviving managed branch and execution backing ownership. |
workspace.tasks | read | Maintain persistent Task Lists owned by the current Workspace. |
Trust audit
BLOCKgrade D · trust 62/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | FAIL |
| L1 | Static analysis of the code | WARN |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | WARN |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- declared (6 observation(s))
- Network
- declared (6 observation(s))
- Shell
- none-observed
- Dependencies
- not all pinned
- Secrets in source
- found
Findings (25)
heavy-payload.tsx
review-payload.tsx
const secret = "EXPLAIN_SECRET_SENTINEL";
const secret = "MIGRATION_SECRET_SENTINEL";
token: "system-status-active-token-00000000",
token: "system-status-stale-token-00000000",
const secret = "resolved-secret-sentinel";
workspace.checkpoint
assert.equal(languageServerCommandRequiresShell("/usr/local/bin/server.cmd", "darwin"), false);await symlink("/etc/hosts", escapedPath);arguments: { workspaceId, path: "/etc/hosts" },import { CONFIG_DEFINITION_CATALOG } from "../../src/runtime/config/definition/catalog.ts";import { generateConfigSchemaFiles } from "../../src/runtime/config/definition/schema.ts";new URL("../../../src/mcp/operations/external-mcp/test-fixtures/external-mcp-server.mjs", import.meta.url),repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../../.." && pwd)"cd "$(dirname "$0")/../../.."
http://127.0.0.1:7676/mcp
http://127.0.0.1:7676/mcp
http://127.0.0.1:7677
http://127.0.0.1:7677/healthz
http://127.0.0.1:7677/.well-known/oauth-protected-resource/mcp
@agentclientprotocol/sdk, @clack/prompts, @modelcontextprotocol/client, @modelcontextprotocol/core, @modelcontextprotocol/express, @modelcontextprotocol/ext-apps, @modelcontextprotocol/node, @modelcon
7677 does not change Host credentials. If the debug endpoint should share the
Filesystem tools are constrained by the opened Workspace and configured allowed roots. Shell commands run with the authority of the local user running ForgeRelay; **the shell is not an OS sandbox**. C
持久 remote record 保存后续需要的 access / refresh token 和实例信息,不把 Owner password 当作长期路由凭据。
Gates applied: no_behavioural_pass.
6d45f330f3a0full audit observations/trust-audit/mcp-server/akira-tl__forgerelay.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-12 | 6d45f330f3a0 | BLOCK | D | 62 | first audit |
Questions
What is the @akira-tl/forgerelay MCP server?
Local development control plane for MCP coding agents.
What tools does @akira-tl/forgerelay expose?
36 in total: 32 read-only, 3 that write, and 1 that can delete or overwrite (workspace.checkpoint). Every one is listed on this page with its risk.
Is @akira-tl/forgerelay safe to connect to an agent?
No — not without reading the findings first. The audit graded it D (62/100) and found 2 critical or high issues in the source. Each one is listed on this page with the file and line it is on. Separately from the audit: 1 of its tools can destroy data, so scope the token you give it to what you actually need.
What credentials does @akira-tl/forgerelay need?
It reads FORGERELAY_DEBUG_OWNER_TOKEN, FORGERELAY_OAUTH_OWNER_TOKEN, GH_TOKEN, GITHUB_TOKEN, TEST_REMOTE_OWNER_TOKEN and TEST_SSH_FAIL_OWNER_TOKEN from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does @akira-tl/forgerelay run?
It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as @akira-tl/forgerelay at 1.3.2.
How current is this page?
The grade is for one exact copy of the source (6d45f330f3a0), read on 2026-10-12. The repository is watched and re-audited when it changes.