Coding Tools MCP

Coding Tools MCP

Empower any MCP-compatible AI Agent(MCP Client) with engineering-grade capabilities to understand, modify, run, and deliver real-world code repositories.

Category
访问服务器

README

Coding Tools MCP

Coding Tools MCP is a model-neutral coding-agent runtime MCP server. It exposes local coding primitives to any MCP client:

inspect repo -> search/read files -> apply structured patches -> run tests/commands
-> interact with stdin sessions -> inspect git status/diff

It is not a prompt wrapper. It does not expose external agent accounts, memory, cloud tasks, web search, image generation, model routing, plugin marketplace, or subagent orchestration as MCP tools.

Documentation Map

Quickstart

Install the published command from PyPI:

curl -fsSL https://raw.githubusercontent.com/xyTom/coding-tools-mcp/main/scripts/install.sh | bash

Install and start local Streamable HTTP against a workspace:

curl -fsSL https://raw.githubusercontent.com/xyTom/coding-tools-mcp/main/scripts/install.sh \
  | bash -s -- --start --workspace /path/to/repo

Install and expose a read-only bearer-token tunnel:

curl -fsSL https://raw.githubusercontent.com/xyTom/coding-tools-mcp/main/scripts/install.sh \
  | bash -s -- --tunnel cloudflared --auto-install-tunnel --workspace /path/to/repo

Or, from this checkout:

scripts/install.sh

Run the published package without a persistent install:

uvx coding-tools-mcp --workspace .

Use stdio for MCP clients:

uvx coding-tools-mcp --stdio --workspace /path/to/repo

If you are working from this checkout instead of a published package:

cd /root/coding-tools-mcp
python -m pip install -e ".[dev]"
coding-tools-mcp --workspace /path/to/repo --host 127.0.0.1 --port 8765

Install the optional image extra when you want view_image auto-resize support:

python -m pip install -e ".[image]"

HTTP endpoint:

http://127.0.0.1:8765/mcp

Stdio:

coding-tools-mcp --stdio --workspace /path/to/repo

Set CODING_TOOLS_MCP_TRACE=1 to emit redacted JSON tool-call trace events to stderr for local debugging. Logs stay off stdout so stdio JSON-RPC remains clean.

If your MCP client does not support permission elicitation and you explicitly want permission-gated operations to run, start with:

coding-tools-mcp --dangerously-skip-all-permissions --workspace /path/to/repo

This auto-grants permission-gated operations such as network-looking commands, destructive commands, shell expansion, and sensitive env passed through exec_command. Workspace path boundaries still apply.

MCP Client Examples

Generic stdio client:

[mcp_servers.coding_tools]
command = "uvx"
args = ["coding-tools-mcp", "--stdio", "--workspace", "/path/to/repo"]

Claude Code:

{
  "mcpServers": {
    "coding-tools": {
      "command": "uvx",
      "args": ["coding-tools-mcp", "--stdio", "--workspace", "/path/to/repo"]
    }
  }
}

Cursor:

{
  "mcpServers": {
    "coding-tools": {
      "command": "uvx",
      "args": ["coding-tools-mcp", "--stdio", "--workspace", "/path/to/repo"]
    }
  }
}

Generic Streamable HTTP clients should use MCP protocol version 2025-06-18 and point at http://127.0.0.1:8765/mcp.

Remote MCP

For remote MCP clients and local development over an HTTPS tunnel, keep the server bound to loopback and expose the tunnel URL with the safest profile your client can use. Anonymous tunnel testing should use read-only mode:

CODING_TOOLS_MCP_AUTH_MODE=noauth \
CODING_TOOLS_MCP_TOOL_PROFILE=read-only \
./scripts/tunnel.sh cloudflared /path/to/repo

Configure the remote MCP client with the HTTPS tunnel URL:

URL: https://<tunnel-host>/mcp

The tunnel scripts support cloudflared, ngrok, and Microsoft Dev Tunnel. If the selected tunnel CLI is missing, the script asks before installing it:

scripts/tunnel.sh cloudflared /path/to/repo
scripts/tunnel.sh ngrok /path/to/repo
scripts/tunnel.sh devtunnel /path/to/repo

For clients that support custom headers, use bearer-token auth with Authorization: Bearer <token>. For MCP clients that speak OAuth 2.1 Authorization Code + PKCE, use CODING_TOOLS_MCP_AUTH_MODE=oauth with scripts/tunnel.sh (or scripts/install.sh --auth-mode oauth); the only env var you need to set is CODING_TOOLS_MCP_SERVER_URL (which must match the tunnel's stable public URL), and the script prints generated CLIENT_ID/CLIENT_SECRET/PASSWORD values on startup. Clients that cannot send custom bearer headers and do not speak OAuth should use anonymous read-only mode only for local/testing tunnels, or be placed behind an external auth proxy for production use.

See docs/remote-mcp.md for the exact modes and security notes.

Tool Profiles

  • full: exposes all tools with truthful annotations. This is the default for backward compatibility.
  • read-only: recommended for remote or safe-mode clients; exposes only inspection tools, git read tools, image viewing, and default-cwd helpers.
  • compat-readonly-all: exposes all tools but advertises every tool as read-only for clients that gate availability on readOnlyHint. This is not a safety mode; mutation-capable tools such as apply_patch, exec_command, write_stdin, and kill_session can still mutate local state.

Tools

P0 tools exposed by default:

  • server_info
  • get_default_cwd
  • set_default_cwd
  • read_file
  • list_dir
  • list_files
  • search_text
  • apply_patch
  • exec_command
  • write_stdin
  • kill_session
  • git_status
  • git_diff
  • git_log
  • git_show
  • git_blame
  • request_permissions

Additional image tool exposed by default:

  • view_image

For input/output schemas and result envelopes, see docs/tools-and-schemas.md and docs/profile-v0.1.md.

Safety Boundary

The runtime binds one workspace root per server process. Paths are workspace-relative by default. Absolute paths, .. traversal, and symlink escapes are rejected. Recursive listing/search excludes .git, .reference, node_modules, target, dist, build outputs, virtualenvs, and common caches by default.

exec_command runs under policy controls with workspace-bound cwd, timeout, output caps, sensitive-value and loader/startup environment rejection, destructive command checks, network-looking command checks, shell-expansion permission gates, indirect absolute-path checks, cancellation/kill cleanup, session deadline watchdogs, and bounded session buffers. On Linux hosts with Landlock support it also applies filesystem confinement; on Windows, macOS, or Linux hosts without Landlock, command results include a warning and external sandboxing is required before running untrusted commands. This is still not a complete OS/container sandbox; see SECURITY.md.

--dangerously-skip-all-permissions disables the permission gates above for operators who accept that risk. Do not use it for untrusted workspaces or untrusted MCP clients.

Compliance

make compliance

Compliance and CI commands are documented in docs/ci-and-tests.md. The checked-in report files are generated artifacts; inspect their suite field before treating them as full compliance evidence.

Dogfood And Benchmark

Dogfood and SWE-bench notes live in docs/dogfood.md, docs/swe-bench.md, and BENCHMARK.md. This repository does not claim a model-generated SWE-bench leaderboard result.

Development Commands

make lint
make typecheck
make test
make compliance
make ci

See docs/ci-and-tests.md for the full test matrix.

License

This project is source-available, not open source. See LICENSE. Internal evaluation, development, testing, and security review are permitted; redistribution, hosted third-party service use, and production commercial use require prior written permission.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选