mcp-win-stdio-git 0.2.5__tar.gz → 0.3.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mcp_win_stdio_git-0.2.5 → mcp_win_stdio_git-0.3.1}/.gitignore +63 -63
- {mcp_win_stdio_git-0.2.5 → mcp_win_stdio_git-0.3.1}/PKG-INFO +7 -7
- {mcp_win_stdio_git-0.2.5 → mcp_win_stdio_git-0.3.1}/README.md +5 -5
- {mcp_win_stdio_git-0.2.5 → mcp_win_stdio_git-0.3.1}/pyproject.toml +5 -2
- {mcp_win_stdio_git-0.2.5 → mcp_win_stdio_git-0.3.1}/src/mcp_win_stdio/git/__init__.py +1 -1
- {mcp_win_stdio_git-0.2.5 → mcp_win_stdio_git-0.3.1}/src/mcp_win_stdio/git/cli.py +6 -3
- {mcp_win_stdio_git-0.2.5 → mcp_win_stdio_git-0.3.1}/src/mcp_win_stdio/git/guide.py +4 -2
- {mcp_win_stdio_git-0.2.5 → mcp_win_stdio_git-0.3.1}/src/mcp_win_stdio/git/server.py +4 -4
- {mcp_win_stdio_git-0.2.5 → mcp_win_stdio_git-0.3.1}/src/mcp_win_stdio/git/__main__.py +0 -0
|
@@ -1,63 +1,63 @@
|
|
|
1
|
-
__pycache__/
|
|
2
|
-
*.py[cod]
|
|
3
|
-
*$py.class
|
|
4
|
-
*.so
|
|
5
|
-
.Python
|
|
6
|
-
build/
|
|
7
|
-
develop-eggs/
|
|
8
|
-
dist/
|
|
9
|
-
downloads/
|
|
10
|
-
eggs/
|
|
11
|
-
.eggs/
|
|
12
|
-
lib/
|
|
13
|
-
lib64/
|
|
14
|
-
parts/
|
|
15
|
-
sdist/
|
|
16
|
-
var/
|
|
17
|
-
wheels/
|
|
18
|
-
share/python-wheels/
|
|
19
|
-
*.egg-info/
|
|
20
|
-
.installed.cfg
|
|
21
|
-
*.egg
|
|
22
|
-
MANIFEST
|
|
23
|
-
|
|
24
|
-
*.manifest
|
|
25
|
-
*.spec
|
|
26
|
-
api.txt
|
|
27
|
-
pypi-api.txt
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
pip-log.txt
|
|
31
|
-
pip-delete-this-directory.txt
|
|
32
|
-
pypi api.txt
|
|
33
|
-
htmlcov/
|
|
34
|
-
.tox/
|
|
35
|
-
.nox/
|
|
36
|
-
.coverage
|
|
37
|
-
.coverage.*
|
|
38
|
-
.cache
|
|
39
|
-
nosetests.xml
|
|
40
|
-
coverage.xml
|
|
41
|
-
*.cover
|
|
42
|
-
*.py,cover
|
|
43
|
-
.hypothesis/
|
|
44
|
-
.pytest_cache/
|
|
45
|
-
cover/
|
|
46
|
-
|
|
47
|
-
*.mo
|
|
48
|
-
*.pot
|
|
49
|
-
|
|
50
|
-
.env
|
|
51
|
-
.venv
|
|
52
|
-
env/
|
|
53
|
-
venv/
|
|
54
|
-
ENV/
|
|
55
|
-
env.bak/
|
|
56
|
-
venv.bak/
|
|
57
|
-
|
|
58
|
-
.idea/
|
|
59
|
-
.vscode/
|
|
60
|
-
*.swp
|
|
61
|
-
*.swo
|
|
62
|
-
|
|
63
|
-
*.log
|
|
1
|
+
__pycache__/
|
|
2
|
+
*.py[cod]
|
|
3
|
+
*$py.class
|
|
4
|
+
*.so
|
|
5
|
+
.Python
|
|
6
|
+
build/
|
|
7
|
+
develop-eggs/
|
|
8
|
+
dist/
|
|
9
|
+
downloads/
|
|
10
|
+
eggs/
|
|
11
|
+
.eggs/
|
|
12
|
+
lib/
|
|
13
|
+
lib64/
|
|
14
|
+
parts/
|
|
15
|
+
sdist/
|
|
16
|
+
var/
|
|
17
|
+
wheels/
|
|
18
|
+
share/python-wheels/
|
|
19
|
+
*.egg-info/
|
|
20
|
+
.installed.cfg
|
|
21
|
+
*.egg
|
|
22
|
+
MANIFEST
|
|
23
|
+
|
|
24
|
+
*.manifest
|
|
25
|
+
*.spec
|
|
26
|
+
api.txt
|
|
27
|
+
pypi-api.txt
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
pip-log.txt
|
|
31
|
+
pip-delete-this-directory.txt
|
|
32
|
+
pypi api.txt
|
|
33
|
+
htmlcov/
|
|
34
|
+
.tox/
|
|
35
|
+
.nox/
|
|
36
|
+
.coverage
|
|
37
|
+
.coverage.*
|
|
38
|
+
.cache
|
|
39
|
+
nosetests.xml
|
|
40
|
+
coverage.xml
|
|
41
|
+
*.cover
|
|
42
|
+
*.py,cover
|
|
43
|
+
.hypothesis/
|
|
44
|
+
.pytest_cache/
|
|
45
|
+
cover/
|
|
46
|
+
|
|
47
|
+
*.mo
|
|
48
|
+
*.pot
|
|
49
|
+
|
|
50
|
+
.env
|
|
51
|
+
.venv
|
|
52
|
+
env/
|
|
53
|
+
venv/
|
|
54
|
+
ENV/
|
|
55
|
+
env.bak/
|
|
56
|
+
venv.bak/
|
|
57
|
+
|
|
58
|
+
.idea/
|
|
59
|
+
.vscode/
|
|
60
|
+
*.swp
|
|
61
|
+
*.swo
|
|
62
|
+
|
|
63
|
+
*.log
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: mcp-win-stdio-git
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.1
|
|
4
4
|
Summary: Unified Git & GitHub Model Context Protocol (MCP) server for Windows & Claude: 33 tools combining local Git repository management (init, remotes, restore, bookmarks, branching, commits, diffs) and remote GitHub CLI (gh) operations with hybrid synergy workflows.
|
|
5
5
|
Author: Mohan Kumar Indala
|
|
6
6
|
License-Expression: MIT
|
|
@@ -18,28 +18,28 @@ Classifier: Programming Language :: Python :: 3.13
|
|
|
18
18
|
Classifier: Programming Language :: Python :: 3.14
|
|
19
19
|
Classifier: Topic :: Software Development :: Version Control :: Git
|
|
20
20
|
Requires-Python: >=3.10
|
|
21
|
-
Requires-Dist: mcp-win-stdio>=0.
|
|
21
|
+
Requires-Dist: mcp-win-stdio>=0.3.1
|
|
22
22
|
Requires-Dist: mcp>=1.2.0
|
|
23
23
|
Description-Content-Type: text/markdown
|
|
24
24
|
|
|
25
25
|
# mcp-win-stdio-git
|
|
26
26
|
|
|
27
|
-
Unified Git & GitHub Model Context Protocol (MCP) server for Windows & Claude Desktop: **
|
|
27
|
+
Unified Git & GitHub Model Context Protocol (MCP) server for Windows & Claude Desktop: **46 tools** seamlessly unifying local Git repository management and remote GitHub CLI (`gh`) operations with hybrid synergy workflows.
|
|
28
28
|
|
|
29
29
|
Part of the **`mcp-win-stdio`** Windows-optimized suite.
|
|
30
30
|
|
|
31
31
|
---
|
|
32
32
|
|
|
33
|
-
## 🚀 Features (
|
|
33
|
+
## 🚀 Features (46 Tools)
|
|
34
34
|
|
|
35
|
-
- **Local Git Suite (
|
|
35
|
+
- **Local Git Suite (27 Tools)**:
|
|
36
36
|
- Repository initialization (`git_init`) and bookmark management (`use_repo`, `list_repos`, `add_repo`, `remove_repo`, `rename_alias`).
|
|
37
37
|
- Remotes management (`git_remote`: list, add, set-url, remove, get-url).
|
|
38
38
|
- Safe file restoration (`git_restore`) and guarded destructive reset (`git_reset`).
|
|
39
|
-
- Branching (`git_branch`), staging & commits with untracked safeguards (`git_commit`), paginated chunked diffs (`git_diff`), commit logs (`git_log`), stashing (`git_stash`), remote sync (`git_sync`), blame (`git_blame`), tags (`git_tag`), cherry-pick (`git_cherry_pick`), clean (`git_clean_untracked`), regex search (`git_grep`), and config (`git_config`).
|
|
39
|
+
- Branching (`git_branch`), staging & commits with untracked safeguards (`git_commit`), status (`git_status`), paginated chunked diffs (`git_diff`), commit logs (`git_log`), stashing (`git_stash`), remote sync (`git_sync`), blame (`git_blame`), tags (`git_tag`), cherry-pick (`git_cherry_pick`), clean (`git_clean_untracked`), regex search (`git_grep`), and config (`git_config`).
|
|
40
40
|
- Isolated background workspaces via `git_worktree`.
|
|
41
41
|
- In-progress merge and rebase conflict detection & resolution (`git_conflict_resolve`).
|
|
42
|
-
- **Remote GitHub CLI Suite (
|
|
42
|
+
- **Remote GitHub CLI Suite (16 Tools)**:
|
|
43
43
|
- Pull requests (`gh_pr_list`, `gh_pr_view`, `gh_pr_diff`, `gh_pr_checkout`, `gh_pr_action`, `gh_pr_checks`, `gh_pr_review_comments`).
|
|
44
44
|
- Releases (`gh_release_list`, `gh_release_create`).
|
|
45
45
|
- Issue tracking (`gh_issue_list`, `gh_issue_view`, `gh_issue_create`, `gh_issue_comment`).
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
# mcp-win-stdio-git
|
|
2
2
|
|
|
3
|
-
Unified Git & GitHub Model Context Protocol (MCP) server for Windows & Claude Desktop: **
|
|
3
|
+
Unified Git & GitHub Model Context Protocol (MCP) server for Windows & Claude Desktop: **46 tools** seamlessly unifying local Git repository management and remote GitHub CLI (`gh`) operations with hybrid synergy workflows.
|
|
4
4
|
|
|
5
5
|
Part of the **`mcp-win-stdio`** Windows-optimized suite.
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
## 🚀 Features (
|
|
9
|
+
## 🚀 Features (46 Tools)
|
|
10
10
|
|
|
11
|
-
- **Local Git Suite (
|
|
11
|
+
- **Local Git Suite (27 Tools)**:
|
|
12
12
|
- Repository initialization (`git_init`) and bookmark management (`use_repo`, `list_repos`, `add_repo`, `remove_repo`, `rename_alias`).
|
|
13
13
|
- Remotes management (`git_remote`: list, add, set-url, remove, get-url).
|
|
14
14
|
- Safe file restoration (`git_restore`) and guarded destructive reset (`git_reset`).
|
|
15
|
-
- Branching (`git_branch`), staging & commits with untracked safeguards (`git_commit`), paginated chunked diffs (`git_diff`), commit logs (`git_log`), stashing (`git_stash`), remote sync (`git_sync`), blame (`git_blame`), tags (`git_tag`), cherry-pick (`git_cherry_pick`), clean (`git_clean_untracked`), regex search (`git_grep`), and config (`git_config`).
|
|
15
|
+
- Branching (`git_branch`), staging & commits with untracked safeguards (`git_commit`), status (`git_status`), paginated chunked diffs (`git_diff`), commit logs (`git_log`), stashing (`git_stash`), remote sync (`git_sync`), blame (`git_blame`), tags (`git_tag`), cherry-pick (`git_cherry_pick`), clean (`git_clean_untracked`), regex search (`git_grep`), and config (`git_config`).
|
|
16
16
|
- Isolated background workspaces via `git_worktree`.
|
|
17
17
|
- In-progress merge and rebase conflict detection & resolution (`git_conflict_resolve`).
|
|
18
|
-
- **Remote GitHub CLI Suite (
|
|
18
|
+
- **Remote GitHub CLI Suite (16 Tools)**:
|
|
19
19
|
- Pull requests (`gh_pr_list`, `gh_pr_view`, `gh_pr_diff`, `gh_pr_checkout`, `gh_pr_action`, `gh_pr_checks`, `gh_pr_review_comments`).
|
|
20
20
|
- Releases (`gh_release_list`, `gh_release_create`).
|
|
21
21
|
- Issue tracking (`gh_issue_list`, `gh_issue_view`, `gh_issue_create`, `gh_issue_comment`).
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "mcp-win-stdio-git"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.3.1"
|
|
8
8
|
description = "Unified Git & GitHub Model Context Protocol (MCP) server for Windows & Claude: 33 tools combining local Git repository management (init, remotes, restore, bookmarks, branching, commits, diffs) and remote GitHub CLI (gh) operations with hybrid synergy workflows."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
|
|
@@ -30,7 +30,7 @@ classifiers = [
|
|
|
30
30
|
]
|
|
31
31
|
|
|
32
32
|
dependencies = [
|
|
33
|
-
"mcp-win-stdio>=0.
|
|
33
|
+
"mcp-win-stdio>=0.3.1",
|
|
34
34
|
"mcp>=1.2.0",
|
|
35
35
|
]
|
|
36
36
|
|
|
@@ -40,3 +40,6 @@ mws-git = "mcp_win_stdio.git.cli:main"
|
|
|
40
40
|
|
|
41
41
|
[tool.hatch.build.targets.wheel]
|
|
42
42
|
packages = ["src/mcp_win_stdio"]
|
|
43
|
+
|
|
44
|
+
[tool.uv.sources]
|
|
45
|
+
mcp-win-stdio = { workspace = true }
|
|
@@ -10,14 +10,17 @@ import sys
|
|
|
10
10
|
# Ensure Windows console uses UTF-8 without crashing on cp1252
|
|
11
11
|
if sys.platform == "win32":
|
|
12
12
|
try:
|
|
13
|
-
sys.stdout
|
|
14
|
-
|
|
13
|
+
if hasattr(sys.stdout, "reconfigure"):
|
|
14
|
+
getattr(sys.stdout, "reconfigure")(encoding="utf-8", errors="replace")
|
|
15
|
+
if hasattr(sys.stderr, "reconfigure"):
|
|
16
|
+
getattr(sys.stderr, "reconfigure")(encoding="utf-8", errors="replace")
|
|
15
17
|
except Exception:
|
|
16
18
|
pass
|
|
17
19
|
|
|
18
|
-
from mcp_win_stdio.git import __version__
|
|
19
20
|
from mcp_win_stdio.git.server import mcp
|
|
20
21
|
|
|
22
|
+
from mcp_win_stdio.git import __version__
|
|
23
|
+
|
|
21
24
|
|
|
22
25
|
def cmd_run(args: argparse.Namespace) -> None:
|
|
23
26
|
"""Run Git & GitHub MCP server over stdio."""
|
|
@@ -9,8 +9,10 @@ import sys
|
|
|
9
9
|
# Ensure Windows console uses UTF-8 without crashing on cp1252
|
|
10
10
|
if sys.platform == "win32":
|
|
11
11
|
try:
|
|
12
|
-
sys.stdout
|
|
13
|
-
|
|
12
|
+
if hasattr(sys.stdout, "reconfigure"):
|
|
13
|
+
getattr(sys.stdout, "reconfigure")(encoding="utf-8", errors="replace")
|
|
14
|
+
if hasattr(sys.stderr, "reconfigure"):
|
|
15
|
+
getattr(sys.stderr, "reconfigure")(encoding="utf-8", errors="replace")
|
|
14
16
|
except Exception:
|
|
15
17
|
pass
|
|
16
18
|
|
|
@@ -17,14 +17,14 @@ from typing import Any, Dict, List, Literal, Optional
|
|
|
17
17
|
try:
|
|
18
18
|
from mcp.server.mcpserver import MCPServer as FastMCP
|
|
19
19
|
except (ImportError, ModuleNotFoundError):
|
|
20
|
-
from mcp.server.fastmcp import FastMCP
|
|
20
|
+
from mcp.server.fastmcp import FastMCP # type: ignore[import-not-found]
|
|
21
21
|
|
|
22
|
-
from mcp_win_stdio.core.config import
|
|
22
|
+
from mcp_win_stdio.core.config import USER_DIR, ensure_workspace_dirs
|
|
23
23
|
|
|
24
24
|
mcp = FastMCP("git-mcp")
|
|
25
25
|
|
|
26
26
|
# Persistent repository bookmarks
|
|
27
|
-
GIT_CONFIG_DIR =
|
|
27
|
+
GIT_CONFIG_DIR = USER_DIR
|
|
28
28
|
REPOS_CONFIG_FILE = GIT_CONFIG_DIR / "git_repos.json"
|
|
29
29
|
|
|
30
30
|
_ACTIVE_REPO: Optional[Path] = None
|
|
@@ -1791,7 +1791,7 @@ def gh_auth_status() -> Dict[str, Any]:
|
|
|
1791
1791
|
return get_gh_missing_guidance()
|
|
1792
1792
|
|
|
1793
1793
|
res = run_gh_command(["auth", "status"], cwd=resolve_repo_path())
|
|
1794
|
-
out =
|
|
1794
|
+
out = res.get("stderr") or res.get("stdout") or ""
|
|
1795
1795
|
return {
|
|
1796
1796
|
"success": bool(res.get("success")),
|
|
1797
1797
|
"raw_status": out,
|
|
File without changes
|