A modern Model Context Protocol (MCP) server for SVN (Subversion). Exposes core SVN operations as automated MCP tools for agent-driven workflows, seamless automation, and version control integration.
- Automates SVN repositories through the MCP agent and tool system
- Exposes high-level SVN commands (status, diff, log, update, add, commit, checkout, branch ops) as callables
- Compatible with fastmcp
- Python 3.10+ and modern build/packaging standards
pip install mcp-server-svn- Requires SVN (svnCLI) in your PATH.
- fastmcp installed automatically as a dependency.
| Tool | Inputs | Outputs | Description | 
|---|---|---|---|
| svn_status | repo_path(str) | status(str),error(str) | Show working copy/repo status | 
| svn_diff | repo_path(str),revision(str, optional) | diff(str),error(str) | Show working copy or revision differences | 
| svn_commit | repo_path(str),message(str) | output(str),error(str) | Commit changes with a message | 
| svn_update | repo_path(str) | output(str),error(str) | Bring working copy up to date | 
| svn_log | repo_path(str),limit(int, optional) | log(str),error(str) | Show repository log entries | 
| svn_add | repo_path(str),target(str) | output(str),error(str) | Add files/directories to version control | 
| svn_checkout | url(str),target_path(str, optional) | output(str),error(str) | Checkout a full SVN repo to disk | 
| svn_switch | repo_path(str),url(str) | output(str),error(str) | Switch working copy to branch/tag | 
| svn_list_branches | repo_url(str) | branches(list of str),error(str) | List branches/tags in the repo | 
| svn_create_branch | source_path(str),dest_url(str),message(str) | output(str),error(str) | Create branch/tag from trunk | 
| svn_delete_branch | target_url(str),message(str) | output(str),error(str) | Delete branch/tag | 
| svn_cleanup | repo_path(str) | output(str),error(str) | Remove locks and clean up the working copy (fix interrupted ops) | 
| svn_revert | targets(list of str)recursive(bool, optional) | output(str),error(str) | Revert changes to files/dirs; supports recursive option | 
| svn_merge | source(str),repo_path(str),revision(str, optional) | output(str),error(str) | Merge changes from a source URL/path into the working copy | 
| svn_resolve | targets(list of str),accept(str, optional) | output(str),error(str) | Mark files as resolved after conflict; supports resolution modes | 
| svn_whoami | (none) | username(str),error(str) | Return the cached SVN username, if available in your auth files | 
| svn_version | (none) | version(str),error(str) | Report the installed SVN client version | 
Start the MCP server (after installation):
mcp-server-svnOr using the Python module:
python -m mcp_server_svn- Python 3.10+
- fastmcp (auto-installed)
- SVN command-line client (svn) installed and accessible from your PATH
To use mcp-server-svn as an MCP tool server in cline, add an entry to your cline configuration:
"svn": {
  "autoApprove": [
    "svn_status",
    "svn_diff",
    "svn_update",
    "svn_log",
    "svn_add",
    "svn_checkout"
  ],
  "timeout": 30,
  "type": "stdio",
  "command": "/usr/bin/python3.11",
  "args": [
    "-m",
    "mcp_server_svn"
  ]
}Adjust "command" as needed (e.g., "python3" or your virtualenv path). See the cline documentation for details.
Manav Desai
Email: manav27202@gmail.com