otama
otama
Un servidor MCP que da a los asistentes de IA — Cursor, Claude Desktop o tu propio agente de voz — acceso a tus repositorios git locales.
Las operaciones de lectura se ejecutan libremente. Cualquier operación de escritura devuelve antes un token de confirmación y un resumen en lenguaje claro, y solo actúa cuando se llama una segunda vez con ese token. El asistente pregunta antes de hacer commit.
You: commit my changes in api-service with message "fix auth timeout"
LLM: Commit 3 changed files in api-service with message 'fix auth timeout'. Confirm?
You: yes
LLM: Committed — a4f21c9 fix auth timeoutPor qué
La mayoría de los servidores MCP de sistema de archivos dan al modelo acceso de lectura y escritura sin restricciones a un árbol de directorios. Eso está bien cuando vigilas cada llamada a herramienta. No está bien cuando el modelo está guiando a un asistente de voz, trabajando sin supervisión o acaba de oírte mal.
otama asume que el modelo se equivocará de vez en cuando y hace que las consecuencias sean pequeñas:
Un sandbox de rutas. Cada ruta se resuelve antes de comprobarse contra tus raíces configuradas.
.., los enlaces simbólicos y las rutas absolutas no pueden escapar.Confirmación en dos fases. Las herramientas de escritura y ejecución llamadas sin un token no hacen nada más que describir lo que harían. Los tokens son de un solo uso, caducan a los dos minutos y están vinculados a la herramienta que los emitió.
Una lista de comandos permitidos.
run_commandrechaza por completo cualquier cosa fuera de la lista en lugar de ofrecerla para confirmación. Un malentendido nunca debe estar a un «sí» derm -rf.
Related MCP server: Git MCP Server
Instalación
Requiere Python 3.11+ y git en PATH.
git clone https://github.com/Ronith2906/otama.git
cd otama
python -m venv .venv
.venv/bin/pip install -r requirements.txt # Windows: .venv\Scripts\pip.exe
cp otama.example.toml otama.tomlEdita otama.toml y define project_roots con la carpeta o carpetas que contienen tus repositorios. Usa barras normales en Windows.
[projects]
project_roots = ["C:/Users/you/code"]Verifica:
.venv/bin/python -c "import asyncio; from projects_server import otama; print([t.name for t in asyncio.run(otama.list_tools())])"Diez nombres de herramienta significa que está en ejecución.
Conectarlo
Cursor — ~/.cursor/mcp.json. Claude Desktop — claude_desktop_config.json (Ajustes → Desarrollador → Configurar la configuración). El mismo formato en ambos casos:
{
"mcpServers": {
"otama-projects": {
"command": "/absolute/path/to/otama/.venv/bin/python",
"args": ["/absolute/path/to/otama/projects_server.py"]
}
}
}En Windows usa \\ en la primera línea JSON — C:\\Users\\you\\otama\\.venv\\Scripts\\python.exe.
Reinicia la aplicación por completo. Una recarga no basta; los servidores MCP se cargan al arrancar.
Herramientas
Lectura — se ejecutan en el momento
Tool | Devuelve |
| Todo repositorio o carpeta bajo tus raíces, con un flag |
| Árbol de dos niveles, omitiendo |
| Un archivo de texto, con límite de tamaño |
| Regex en todo un proyecto, con nombres de archivo y números de línea |
| Rama, archivos sin commitear, últimos cinco commits |
| Diff del árbol de trabajo, truncado |
| Lo que cambió en cada repositorio en los últimos N días |
Escritura y ejecución — requieren confirmación
Herramienta | Hace |
| Hacer stage de todo y crear un commit |
| Crear o sobrescribir un archivo |
| Ejecutar un comando de desarrollo permitido |
Configuración
[projects]
project_roots = ["C:/Users/you/code"]
max_file_bytes = 200000 # refuse to read anything larger
command_timeout_seconds = 120
confirmation_ttl_seconds = 120 # how long a token stays valid
# run_command refuses anything not on this list. This is not something a
# confirmation can override — add what you actually use.
allowed_commands = ["git","npm","npx","pnpm","yarn","node",
"python","py","pip","pytest","ruff","uv",
"dotnet","cargo","go"]Notas para colaboradores
El patrón de dos fases se encuentra en stage(), redeem() y _expire(). Si añades una herramienta con efectos secundarios, espera con ella.
Una sutileza llamada a tener en cuenta: redeem() no consume el token cuando el tipo de herramienta no coincide. Un modelo que llama por error a la herramienta equivocada no debe quemar la aprobación del usuario ni obligarle a confirmar todo de nuevo. Este fue un bug real, detectado en las pruebas.
Los nuevos servidores de capacidades deberían seguir la misma forma — un archivo, un dominio, herramientas de lectura gratuitas, herramientas de escritura restringidas, rechazar en lugar de confirmar cuando la acción esté fuera del entorno permitido.
Estado
En sus primeras etapas. El servidor de proyectos está probado y en uso diario; el plan incluye más servidores de capacidades (media, correo, navegador) como parte de un proyecto mayor de asistente de voz. Se aceptan issues y pull requests.
Licencia
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceA lightweight MCP server that enables AI assistants to manage local Git repositories by executing commands like status, add, and commit. It streamlines development workflows by providing repository context and diffs directly to the assistant.
- AlicenseNot gradedqualityDmaintenanceAn MCP server that provides tools for interacting with Git repositories, enabling AI assistants to manage repositories, branches, commits, and files through a standardized interface.3,7031Apache 2.0
- FlicenseNot gradedqualityDmaintenanceA local MCP server that turns AI clients into power users of local git repositories, enabling clone, browse, search, and inspect code without burning API tokens.
- FlicenseBqualityBmaintenanceA lightweight MCP server that acts as a secure proxy for AI assistants to run local Git operations and GitHub API macros simultaneously.1
Related MCP Connectors
An MCP server that gives your AI access to the source code and docs of all public github repos
A MCP server built for developers enabling Git based project management with project and personal…
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Ronith2906/Otama'
If you have feedback or need assistance with the MCP directory API, please join our Discord server