SVN MCP Server
This server enables AI agents to interact with Subversion (SVN) repositories for version control management through the following tools:
Health & Diagnostics
svn_health_check: Verify the health status of the SVN system and working copysvn_diagnose: Diagnose specific SVN command problemssvn_clear_credentials: Clear cached SVN credentials to resolve authentication errors
Repository Information
svn_info: Get detailed information about the working copy or a specific file/pathsvn_status: View the status of files in the working copy (local and/or remote)svn_log: Browse commit history with optional path filtering, limits, and revision rangessvn_diff: View differences between file revisions
Repository Operations
svn_checkout: Check out an SVN repository with options for depth, revision, and externalssvn_update: Update the working copy from the repository with conflict resolution options
File Management
svn_add: Add files or directories to version controlsvn_commit: Commit local changes to the repository with a messagesvn_delete: Remove files or directories from version controlsvn_revert: Revert local changes on files or directories
Maintenance
svn_cleanup: Clean up the working copy from interrupted or failed operations
Enables AI agents to manage Subversion (SVN) repositories, including basic operations (info, status, log, diff, checkout, update), file management (add, commit, delete, revert), and maintenance tasks like cleanup.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SVN MCP Server show me the status of the current working directory"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
SVN MCP Server
A complete MCP (Model Context Protocol) server for Subversion (SVN) integration, designed to let AI agents manage SVN repositories efficiently.
π― Features
β Basic repository operations: info, status, log, diff, checkout, update
β File management: add, commit, delete, revert
β Maintenance tools: cleanup
π Branch management: (In development)
π Advanced operations: merge, switch, properties (In development)
π Analysis tools: blame, conflict detection (In development)
π Batch operations: (In development)
Related MCP server: MCP Toolkit
π Requirements
Node.js >= 18.0.0
Subversion (SVN) installed and available on PATH
TypeScript (for development)
π Detecting the SVN installation
Check whether SVN is installed
# Basic command to check SVN
svn --version
# Check the full path of the executable
where svn # Windows
which svn # Linux/Mac
# Check the full SVN client
svn --version --verboseExpected output if SVN is correctly installed:
svn, version 1.14.x (r1876290)
compiled Apr 13 2023, 17:22:07 on x86_64-pc-mingw32
Copyright (C) 2023 The Apache Software Foundation.
This software consists of contributions made by many people;
see the NOTICE file for more information.
Subversion is open source software, see http://subversion.apache.org/β Common errors if SVN is NOT installed:
# Windows
'svn' is not recognized as an internal or external command
# Linux/Mac
svn: command not found
bash: svn: command not foundπ οΈ Advanced diagnostics
# Check the system PATH
echo $PATH # Linux/Mac
echo %PATH% # Windows CMD
$env:PATH # Windows PowerShell
# Search for SVN executables on the system
find / -name "svn" 2>/dev/null # Linux
Get-ChildItem -Path C:\ -Name "svn.exe" -Recurse -ErrorAction SilentlyContinue # Windows PowerShell
# Check the specific client version
svn --version | head -1 # Get just the first line with the versionπΎ Installing SVN on Windows
Option 1: Package managers
# Using Chocolatey (Recommended)
choco install subversion
# Using winget
winget install CollabNet.Subversion
# Using Scoop
scoop install subversionOption 2: Official installers
TortoiseSVN (includes the command-line client):
https://tortoisesvn.net/downloads.html β Includes GUI and CLI clients β Windows Explorer integrationSlikSVN (command line only):
https://sliksvn.com/download/ β Lightweight (CLI only) β Ideal for automationCollabNet Subversion:
https://www.collab.net/downloads/subversion β Enterprise version β Commercial support available
Option 3: Visual Studio or Git for Windows
# If you have Git for Windows installed, it can include SVN
git svn --version
# Visual Studio can also include SVN
# Go to: Visual Studio Installer > Modify > Individual Components > Subversionπ§ Installing SVN on Linux
# Ubuntu/Debian
sudo apt-get update
sudo apt-get install subversion
# CentOS/RHEL/Fedora
sudo yum install subversion # CentOS 7
sudo dnf install subversion # CentOS 8/Fedora
# Arch Linux
sudo pacman -S subversion
# Alpine Linux
sudo apk add subversionπ Installing SVN on macOS
# Homebrew (Recommended)
brew install subversion
# MacPorts
sudo port install subversion
# From Xcode Command Line Tools (may already be included)
xcode-select --installπ§ Configuring SVN after installation
Check the global configuration
# Show current configuration
svn config --list
# Configure the global user
svn config --global auth:username your_username
# Configure the default editor
svn config --global editor "code --wait" # VS Code
svn config --global editor "notepad" # Windows Notepad
svn config --global editor "nano" # Linux/Mac nanoCheck repository access
# Test connection to a repository (without checking out)
svn list https://svn.example.com/repo/trunk
# Test with specific credentials
svn list https://svn.example.com/repo/trunk --username user --password passwordπ Installation
From NPM
npm install -g @grec0/mcp-svnLocal Development
git clone https://github.com/gcorroto/mcp-svn.git
cd mcp-svn
npm install
npm run buildβοΈ Configuration
Environment Variables
Variable | Description | Default |
| Path to the SVN executable |
|
| Local working copy directory |
|
| Repository URL. Enables URL-only workflows and | - |
| Authentication user | - |
| Authentication password | - |
| Timeout in milliseconds |
|
SVN_WORKING_DIRECTORY and SVN_URL are independent β set either or both. With both configured, local operations (svn_status, svn_commit, ...) run in the working copy, and URL-capable tools (svn_cat, svn_list, svn_info, svn_log, svn_diff) can be called with:
a full URL (
https://svn.example.com/repo/trunk/file.sql)a repo-relative path starting with
/(/trunk/file.sql) β joined withSVN_URLa local path β resolved against the working copy
Example MCP Configuration
{
"mcpServers": {
"svn": {
"command": "npx",
"args": ["@grec0/mcp-svn"],
"env": {
"SVN_PATH": "svn",
"SVN_WORKING_DIRECTORY": "C:/path/to/working/copy",
"SVN_URL": "https://svn.example.com/repo",
"SVN_USERNAME": "your_username",
"SVN_PASSWORD": "your_password"
}
}
}
}π οΈ Available Tools
Basic Operations
svn_health_check
Check the health status of the SVN system and working copy.
svn_health_check()svn_info
Get detailed information about the working copy or a specific file.
svn_info(path?: string)svn_status
Show the status of files in the working copy.
svn_status(path?: string, showAll?: boolean)svn_log
Show the commit history of the repository.
svn_log(path?: string, limit?: number, revision?: string)svn_diff
Show differences between file revisions.
svn_diff(path?: string, oldRevision?: string, newRevision?: string)Repository Operations
svn_checkout
Check out an SVN repository.
svn_checkout(
url: string,
path?: string,
revision?: number | "HEAD",
depth?: "empty" | "files" | "immediates" | "infinity",
force?: boolean,
ignoreExternals?: boolean
)svn_update
Update the working copy from the repository.
svn_update(
path?: string,
revision?: number | "HEAD" | "BASE" | "COMMITTED" | "PREV",
force?: boolean,
ignoreExternals?: boolean,
acceptConflicts?: "postpone" | "base" | "mine-conflict" | "theirs-conflict" | "mine-full" | "theirs-full"
)File Management
svn_add
Add files to version control.
svn_add(
paths: string | string[],
force?: boolean,
noIgnore?: boolean,
parents?: boolean,
autoProps?: boolean,
noAutoProps?: boolean
)svn_commit
Commit changes to the repository.
svn_commit(
message: string,
paths?: string[],
file?: string,
force?: boolean,
keepLocks?: boolean,
noUnlock?: boolean
)svn_delete
Remove files from version control.
svn_delete(
paths: string | string[],
message?: string,
force?: boolean,
keepLocal?: boolean
)svn_revert
Revert local changes on files.
svn_revert(paths: string | string[])Maintenance Tools
svn_cleanup
Clean up the working copy from interrupted operations.
svn_cleanup(path?: string)π Usage Examples
Check the system status
// Check that SVN is available and the working copy is valid
const healthCheck = await svn_health_check();Get repository information
// General working copy information
const info = await svn_info();
// Information about a specific file
const fileInfo = await svn_info("src/main.js");Show file status
// Status of all files
const status = await svn_status();
// Status including remote information
const fullStatus = await svn_status(null, true);Check out a repository
const checkout = await svn_checkout(
"https://svn.example.com/repo/trunk",
"local-copy",
"HEAD",
"infinity",
false,
false
);Commit changes
// Add files
await svn_add(["src/new-file.js", "docs/readme.md"], { parents: true });
// Commit
await svn_commit(
"Add new feature and documentation",
["src/new-file.js", "docs/readme.md"]
);π§ͺ Testing
# Run tests
npm test
# Tests with coverage
npm run test -- --coverage
# Tests in watch mode
npm run test -- --watchποΈ Development
Available scripts
# Build TypeScript
npm run build
# Development mode
npm run dev
# Watch mode
npm run watch
# MCP Inspector
npm run inspector
# Tests
npm test
# Publish a new version
npm run release:patch
npm run release:minor
npm run release:majorProject structure
svn-mcp/
βββ package.json
βββ tsconfig.json
βββ jest.config.js
βββ index.ts
βββ common/
β βββ types.ts # TypeScript types
β βββ utils.ts # SVN utilities
β βββ version.ts # Package version
βββ tools/
β βββ svn-service.ts # Main SVN service
βββ tests/
β βββ integration.test.ts # Integration tests
βββ README.mdπ Development Status
See the SVN_MCP_IMPLEMENTATION.md file for the full implementation checklist.
Current progress: Stage 1 complete (Basic Operations) β
Next stages:
Branch management (branching)
Advanced operations (merge, switch)
Analysis tools
Batch operations
π Troubleshooting
SVN not found
Error: SVN is not available in the system PATHSolution: Install SVN and make sure it is on the system PATH.
Not a working copy
Error: Failed to get SVN info: svn: warning: W155007: '.' is not a working copySolution: Navigate to a directory that is an SVN working copy or run checkout first.
Authentication issues
Error: svn: E170001: Authentication failedSolution: Set the SVN_USERNAME and SVN_PASSWORD environment variables.
Timeouts on long operations
Error: Command timeout after 30000msSolution: Increase the value of SVN_TIMEOUT.
π License
MIT License - see LICENSE for more details.
π€ Contributing
Fork the project
Create a feature branch (
git checkout -b feature/new-feature)Commit your changes (
git commit -am 'Add new feature')Push to the branch (
git push origin feature/new-feature)Open a Pull Request
π Support
Issues: GitHub Issues
Documentation: Project Wiki
Email: soporte@grec0.dev
Available Tools
14 toolssvn_addC
AΓ±adir archivos al control de versiones
Inputs: paths (required), force, noIgnore, parents, +2 more.
svn_checkoutC
Hacer checkout de un repositorio SVN
Inputs: url (required), path, revision, depth, +2 more.
svn_cleanupC
Limpiar working copy de operaciones interrumpidas
Inputs: path.
svn_clear_credentialsB
Limpiar cache de credenciales SVN para resolver errores de autenticaciΓ³n
Inputs: no named parameters.
svn_commitC
Confirmar cambios al repositorio
Inputs: message (required), paths, file, force, +2 more.
svn_deleteC
Eliminar archivos del control de versiones
Inputs: paths (required), message, force, keepLocal.
svn_diagnoseC
Diagnosticar problemas especΓficos con comandos SVN
Inputs: no named parameters.
svn_diffC
Ver diferencias entre versiones de archivos
Inputs: path, oldRevision, newRevision.
svn_health_checkB
Verificar el estado de salud del sistema SVN y working copy
Inputs: no named parameters.
svn_infoC
Obtener informaciΓ³n detallada del working copy o archivo especΓfico
Inputs: path.
svn_logC
Ver historial de commits del repositorio
Inputs: path, limit, revision.
svn_revertC
Revertir cambios locales en archivos
Inputs: paths (required).
svn_statusC
Ver el estado de archivos en el working copy
Inputs: path, showAll.
svn_updateC
Actualizar working copy desde el repositorio
Inputs: path, revision, force, ignoreExternals, +1 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogβ¦
TDQS
Scored across 14 tools
Every tool has a clearly distinct purpose with no ambiguity. Each targets a specific SVN operation (e.g., checkout, commit, diff, log) with clear boundaries between them. The descriptions reinforce distinct functions, making misselection unlikely.
All tools follow a consistent 'svn_verb' or 'svn_noun_verb' pattern (e.g., svn_checkout, svn_commit, svn_health_check). The naming is uniform throughout, using snake_case and starting with 'svn_' as a prefix, making it predictable and readable.
With 14 tools, the count is well-scoped for an SVN server, covering core operations like version control, file management, diagnostics, and history. Each tool earns its place without feeling excessive or insufficient for the domain.
The tool set provides complete coverage of essential SVN workflows, including CRUD operations (add, delete, commit, revert), repository interactions (checkout, update), diagnostics (health_check, diagnose), and history/logging. No obvious gaps exist for typical agent tasks.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yoβ¦
The Mercado Pago MCP Server implements the Model Context Protocol to provide AI agents and LLMs with access to Mercado Pago's APIs and tools within compatible development environments. It acts as an intermediary that translates Mercado Pago resources into executable functions (tools) that AI applications can invoke to perform actions and automate flows. The server simplifies integration, enables using documentation to implement or improve code, and optimizes operations through natural language interactions without manual implementations.
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
Nifty's MCP server β exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseBqualityBmaintenanceA Model Context Protocol server for Git repository interaction and automation. This server provides tools to read, search, and manipulate Git repositories via Large Language Models.1490,074 PyPI91,952MIT
- AlicenseNot gradedqualityDmaintenanceA comprehensive Model Context Protocol server implementation that enables AI assistants to interact with file systems, databases, GitHub repositories, web resources, and system tools while maintaining security and control.132 npm2MIT

CodeAlive MCPofficial
AlicenseNot gradedqualityCmaintenanceA Model Context Protocol server that enhances AI agents by providing deep semantic understanding of codebases, enabling more intelligent interactions through advanced code search and contextual awareness.90MIT- AlicenseBqualityDmaintenanceA Model Context Protocol server providing AI assistants with comprehensive project, task, and subtask management capabilities with project-specific storage.2924 npm88MIT