mcp-dev-servers
Provides 7 MCP servers with 95 tools for git, GitHub, .NET, Ollama, Rust, template sync, and Python, enabling natural-language commands to perform real development operations.
README
MCP Dev Servers
Give Claude Code 95 tools that turn natural-language asks into real
git,gh,dotnet,cargo,uv, and Ollama operations. Seven MCP servers, onepip install, opt in per project — so "what changed since main?" becomes a structured diff and "are any NuGet packages vulnerable?" becomes a real audit.
You: what changed since main?
Claude calls: git_diff_summary(base="main")
Returns: { "files_changed": 3, "insertions": 47, "deletions": 12, ... }
Claude: "You changed 3 files since main: src/auth.py (+40 −5), tests/...
✅ For: Claude Code users on Windows / macOS / Linux working in git-backed projects (any language; .NET, Rust, and Ollama get bonus tooling).
Built with FastMCP and the Model Context Protocol.
Servers
| Server | Console script | Module | Tools | Description |
|---|---|---|---|---|
| git-tools | mcp-git-tools |
mcp_dev_servers.git_mcp |
34 | Git operations (status, diff, commit, tag, branch, push, fetch, reset, rebase, worktree, etc.) |
| github-tools | mcp-github-tools |
mcp_dev_servers.github_mcp |
17 | GitHub utilities not in the official GitHub MCP (releases, workflow dispatch/management, PR labels/auto-merge, branch protection) |
| dotnet-tools | mcp-dotnet-tools |
mcp_dev_servers.dotnet_mcp |
19 | .NET build, test, NuGet, EF migrations, code quality, coverage |
| ollama-tools | mcp-ollama-tools |
mcp_dev_servers.ollama_mcp |
6 | Local Ollama LLM operations (health, warmup, compression, JSON extraction) |
| rust-tools | mcp-rust-tools |
mcp_dev_servers.rust_mcp |
4 | Cargo build, test, clippy with structured diagnostics |
| template-sync-tools | mcp-template-sync-tools |
mcp_dev_servers.template_sync_mcp |
8 | Template manifest, status, diff, merge, placeholder ops, cross-variant sync |
| python-tools | mcp-python-tools |
mcp_dev_servers.python_tools_mcp |
7 | Python dev workflows (wheel/sdist inspect, smoke install, pytest, ruff, uv build, coverage) |
Prerequisites
Each server has its own external dependencies:
| Server | Requires |
|---|---|
| git-tools | Git installed and in PATH |
| github-tools | Git + GitHub CLI (gh) installed and authenticated |
| dotnet-tools | .NET SDK 8.0+ |
| ollama-tools | Ollama running locally |
| rust-tools | Rust toolchain (cargo, rustc) |
| template-sync-tools | Git (for three-way merge ancestor lookup) |
| python-tools | Python 3.11+, uv, pytest, ruff, coverage (in project environment) |
All servers require Python 3.11+.
Quick Start
Install directly from the GitHub repo (PyPI publishing is planned but not yet done — see Roadmap):
pip install "mcp-dev-servers[ollama] @ git+https://github.com/dagonet/mcp-dev-servers.git"
Once this package is on PyPI, the shorter form will also work:
pip install "mcp-dev-servers[ollama]" # future — not yet published
Available extras: ollama (pulls httpx), git, github, dotnet, rust, template-sync, python-tools, dev (for running tests). The non-ollama extras pull no Python packages today — they exist as documentation for which external tool each server expects (see Prerequisites).
The package installs 7 console scripts (mcp-git-tools, mcp-github-tools, mcp-dotnet-tools, mcp-ollama-tools, mcp-rust-tools, mcp-template-sync-tools, mcp-python-tools). Register them with claude mcp add:
# git-tools (user-level — works in every git repo)
claude mcp add --scope user --transport stdio git-tools -- mcp-git-tools
# github-tools (user-level)
claude mcp add --scope user --transport stdio github-tools \
-e GH_PROMPT_DISABLED=1 \
-- mcp-github-tools
# ollama-tools (user-level — if running Ollama)
claude mcp add --scope user --transport stdio ollama-tools \
-e OLLAMA_URL=http://127.0.0.1:11434 \
-e OLLAMA_MODEL_FIRST_PASS=mistral:7b-instruct-q4_K_M \
-e OLLAMA_MODEL_EXTRACT_JSON=qwen2.5:7b-instruct-q4_K_M \
-- mcp-ollama-tools
# rust-tools (user-level — works in every Rust project)
claude mcp add --scope user --transport stdio rust-tools -- mcp-rust-tools
# dotnet-tools (project-level — only in .NET projects)
claude mcp add --scope project --transport stdio dotnet-tools -- mcp-dotnet-tools
# template-sync-tools (user-level — template syncing for any project)
claude mcp add --scope user --transport stdio template-sync-tools -- mcp-template-sync-tools
# python-tools (user-level — works in every Python project)
claude mcp add --scope user --transport stdio python-tools -- mcp-python-tools
If
mcp-git-toolsisn't found on your PATH, install withpipxso the scripts land in a PATH-resolvable location:pipx install "mcp-dev-servers[ollama] @ git+https://github.com/dagonet/mcp-dev-servers.git"Alternatively, pass the absolute path to each console script in your
claude mcp addcommands.
Then grant tool permissions in your settings.json (user or project level):
{
"permissions": {
"allow": [
"mcp__git-tools__*",
"mcp__github-tools__*",
"mcp__dotnet-tools__*",
"mcp__ollama-tools__*",
"mcp__rust-tools__*",
"mcp__template-sync-tools__*",
"mcp__python-tools__*"
]
}
}
Registration Strategy
| Server | Scope | Rationale |
|---|---|---|
| git-tools | User | Every git repo benefits from these tools |
| github-tools | User | Every GitHub repo benefits from these tools |
| ollama-tools | User | Cross-project if running Ollama |
| rust-tools | User | Every Rust project benefits from these tools |
| dotnet-tools | Project | Only relevant in .NET projects |
| template-sync-tools | User | Cross-project template syncing |
| python-tools | User | Every Python project benefits from these tools |
Environment Variables
| Variable | Server | Default |
|---|---|---|
OLLAMA_URL |
ollama-tools | http://127.0.0.1:11434 |
OLLAMA_MODEL_FIRST_PASS |
ollama-tools | mistral:7b-instruct-q4_K_M |
OLLAMA_MODEL_EXTRACT_JSON |
ollama-tools | qwen2.5:7b-instruct-q4_K_M |
GH_EXE |
github-tools | Auto-detected |
Tool Reference
git-tools (34 tools)
| Tool | Description |
|---|---|
git_env_info |
Diagnostic info about git installation |
git_status |
Fast porcelain git status |
git_add |
Stage specific files |
git_rm |
Remove files from tracking |
git_commit |
Create a commit |
git_diff_summary |
Compact diffstat summary |
git_diff |
Full diff output |
git_log |
Recent commit history |
git_branch_list |
List branches |
git_branch_create |
Create a branch without checking it out |
git_branch_delete |
Delete a local branch (safe against current branch) |
git_checkout |
Checkout branch/tag/commit |
git_pull |
Pull from remote |
git_push |
Push to remote (branches + optional --tags) |
git_fetch |
Fetch from remote without merging |
git_reset |
Reset HEAD to ref (soft/mixed/hard) |
git_stash |
Stash operations (push/pop/list/drop/clear) |
git_remote_list |
List configured remotes |
git_tag_list |
List tags |
git_tag_create |
Create an annotated or lightweight tag |
git_tag_delete |
Delete a local tag |
git_describe |
Derive a human-readable version string from a commit |
git_revert |
Create a revert commit (merge-safe recovery) |
git_rebase |
Rebase current branch onto another ref (non-interactive only) |
git_archive |
Produce a tarball or zip of a tree at a given ref |
git_config_get |
Read a single git config key |
git_config_set |
Set a single git config key (allowlisted keys only) |
git_restore |
Revert working-tree changes for files |
git_clean_dry_run |
List files git clean -fd would remove (read-only) |
git_reflog |
Read reflog entries for HEAD or a specific ref |
git_show |
Show commit details |
git_worktree_list |
List worktrees with parsed branch / detached / locked / prunable flags |
git_worktree_add |
Add a worktree on a new or existing branch |
git_worktree_remove |
Remove a worktree; returns the freed branch name for optional cleanup |
github-tools (17 tools)
| Tool | Description |
|---|---|
gh_repo_from_origin |
Get OWNER/REPO from local git remote |
gh_workflow_list |
List GitHub Actions workflow runs |
github_release_create |
Create a GitHub release (defaults to draft mode) |
github_release_edit |
Edit an existing release (use draft=false to publish) |
github_release_delete |
Delete a release (requires exact tag_name match) |
github_release_upload_asset |
Upload a single asset to an existing release |
github_release_delete_asset |
Remove an asset from a release (requires exact asset_name match) |
github_workflow_dispatch |
Trigger a workflow_dispatch-enabled workflow |
github_workflow_run_wait |
Block until a workflow run reaches a terminal state |
github_workflow_run_rerun |
Re-run a failed or cancelled workflow run |
github_workflow_run_cancel |
Cancel an in-progress workflow run |
github_check_runs_for_sha |
List check runs for an arbitrary commit SHA |
github_branch_protection_get |
Read branch protection rules for a branch |
github_pr_label_add |
Add labels to a pull request |
github_pr_label_remove |
Remove labels from a pull request |
github_pr_request_review |
Request review from users or teams on a PR |
github_pr_auto_merge |
Toggle auto-merge on a pull request |
dotnet-tools (19 tools)
| Tool | Description |
|---|---|
build_and_extract_errors |
Build and extract structured errors/warnings |
run_tests_summary |
Run tests and parse TRX results |
analyze_namespace_conflicts |
Find duplicate type definitions |
nuget_list_outdated |
List outdated NuGet packages |
nuget_check_vulnerabilities |
Check for NuGet security vulnerabilities |
nuget_dependency_tree |
Full NuGet dependency tree |
parse_csproj |
Parse .csproj file structure |
analyze_project_references |
Analyze inter-project dependencies |
check_framework_compatibility |
Check target framework mismatches |
ef_migrations_status |
List EF Core migrations status |
ef_pending_migrations |
Check for pending EF migrations |
ef_dbcontext_info |
Get DbContext provider/connection info |
analyze_method_complexity |
Estimate cyclomatic complexity |
find_large_files |
Find files exceeding line count threshold |
find_god_classes |
Find classes with too many members |
parse_stack_trace |
Parse .NET stack traces |
parse_coverage_report |
Parse Cobertura coverage XML |
run_coverage |
Run tests with coverage collection |
map_dotnet_structure |
Map .NET project file structure |
ollama-tools (6 tools)
| Tool | Description |
|---|---|
ollama_health |
Check Ollama server status |
ollama_list_models |
List available Ollama models |
warm_models |
Pre-load models for faster inference |
local_first_pass |
Compress text via local LLM |
extract_json |
Extract structured JSON from text |
map_project_structure |
Map directory structure |
python-tools (7 tools)
| Tool | Description |
|---|---|
wheel_inspect |
Read METADATA, version, and entry points from a wheel |
sdist_inspect |
Read PKG-INFO and file manifest from a source distribution |
python_smoke_install |
Create throwaway venv, install wheel, run commands (cross-platform) |
uv_build |
Build Python distributions with uv (clean+build+collect) |
pytest_run |
Run pytest with structured output (typed counts + failure details) |
ruff |
Run ruff linter (mode="check") or formatter (mode="format") |
coverage |
Run tests under coverage and return typed coverage summary |
rust-tools (4 tools)
| Tool | Description |
|---|---|
cargo_env_info |
Diagnostic info about Rust/Cargo installation |
cargo_build |
Build with structured error/warning diagnostics |
cargo_test |
Run tests and return results |
cargo_clippy |
Lint with structured clippy diagnostics |
template-sync-tools (8 tools)
| Tool | Description |
|---|---|
template_load_manifest |
Load and validate manifest (auto-migrates v1 to v2) |
template_compute_status |
Per-file sync status (UP_TO_DATE, PROJECT_CUSTOM, AUTO_UPDATE, CONFLICT) |
template_get_diff |
Unified diff with three-way merge support |
template_apply_file |
Apply template/provided content or skip, returns manifest entry |
template_finalize_sync |
Atomically write manifest after sync completes |
template_reverse_placeholders |
Deterministic reverse placeholder replacement (longest-first) |
template_check_cross_variant |
Check which variants share identical file content |
template_propagate_to_variants |
Write template-ready content to multiple variant directories |
JSON Configuration
As an alternative to claude mcp add, you can configure servers directly in ~/.claude.json (user-level) or .claude/mcp.json (project-level):
{
"mcpServers": {
"git-tools": {
"command": "mcp-git-tools"
},
"github-tools": {
"command": "mcp-github-tools",
"env": {
"GH_PROMPT_DISABLED": "1"
}
},
"dotnet-tools": {
"command": "mcp-dotnet-tools"
},
"rust-tools": {
"command": "mcp-rust-tools"
},
"ollama-tools": {
"command": "mcp-ollama-tools",
"env": {
"OLLAMA_URL": "http://127.0.0.1:11434"
}
},
"template-sync-tools": {
"command": "mcp-template-sync-tools"
},
"python-tools": {
"command": "mcp-python-tools"
}
}
}
If mcp-* scripts aren't on your PATH, use the absolute path to the script (e.g. "command": "/full/path/to/venv/bin/mcp-git-tools") or switch to pipx which installs scripts in a PATH-resolvable location.
Design Decisions
- stdio transport: All servers use stdio for Claude Code compatibility
- Cross-platform: Windows
CREATE_NO_WINDOWflag prevents console popups; Unix process group handling for clean timeouts - No bash git:
git_mcp.pyresolvesgit.exedirectly to avoid.cmdwrapper issues on Windows - English locale: dotnet-tools forces
DOTNET_CLI_UI_LANGUAGE=enfor consistent output parsing - Output limits: Large outputs (diffs, logs) are truncated to prevent context overflow
Roadmap
- PyPI publishing. The package is fully PyPI-ready (pyproject.toml, hatchling build, console scripts, smoke tests) but not yet uploaded. Once published,
pip install "mcp-dev-servers[ollama]"will work without the git URL. - GitHub Actions. Automated test runs on PRs and Trusted-Publishing-based releases on tag push are planned.
Development
To contribute or run from source:
git clone https://github.com/dagonet/mcp-dev-servers.git
cd mcp-dev-servers
python -m venv .venv
.venv/Scripts/activate # Windows
# source .venv/bin/activate # Linux/macOS
pip install -e ".[ollama,dev]"
pytest tests/
pip install -e installs the package in editable mode, so the console scripts (mcp-git-tools, etc.) pick up your local edits immediately. pytest tests/ runs the smoke tests that verify each server imports cleanly and registers the expected number of tools.
Related Projects
Part of an ecosystem for AI-assisted development with Claude Code:
- claude-code-toolkit -- Template system for bootstrapping projects with Claude Code configuration, MCP server setup, and cross-platform setup scripts
- open-brain -- A personal AI memory system with a CLI, MCP server, and web dashboard; as of v0.3.0 it also compiles topic-level wiki pages with provenance and runs a contradiction-audit pass over your captured notes
Open Brain's MCP server runs alongside the servers here in the same Claude Code session -- its thoughts_*, wiki_*, and contradictions_* tools surface decisions, insights, and topic summaries that complement the git_*, gh_*, dotnet_*, cargo_*, ollama_*, and template_* tools above.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。