otama
otama
Ein MCP-Server, der KI-Assistenten — Cursor, Claude Desktop oder deinen eigenen Sprachassistenten — Zugriff auf deine lokalen Git-Repositories gewährt.
Lesezugriffe laufen frei. Alles, was schreibt, liefert zuerst einen Bestätigungstoken und eine Zusammenfassung in einfachem Englisch und wird erst dann tät, wenn es ein zweites Mal mit diesem Token aufgerufen wird. Der Assistent fragt, bevor er committet.
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 timeoutWarum
Die meisten Dateisystem-MCP-Server geben einem Modell uneingeschränkten Lese- und Schreibzugriff auf einen Verzeichnisbaum. Das ist in Ordnung, wenn du jeden Tool-Aufruf beobachtest. Das ist nicht in Ordnung, wenn das Modell einen Sprachassistenten steuert, unbeaufsichtigt läuft oder dich gerade falsch verstanden hat.
otama geht davon aus, dass das Modell gelegentlich falsch geraten kann, und hält die Folgen klein:
Eine Pfad-Sandbox. Jeder Pfad wird vor seiner Prüfung gegen deine konfigurierten Roots aufgelöst.
.., Symlinks und absolute Pfade können nicht entkommen.Zweiphasige Bestätigung. Schreib- und Ausführungstools, die ohne Token aufgerufen werden, tun nichts anderes, als zu beschreiben, was sie tun würden. Tokens gelten nur einmal, verfallen nach zwei Minuten und sind an das Tool gebunden, das sie ausgestellt hat.
Eine Befehls-Allowlist.
run_commandlehnt alles außerhalb der Liste kategorisch ab, statt es zur Bestätigung vorzulegen. Ein Missverständnis sollte nie nur ein „Ja" voncel zwischenrm -rfentfernt sein.
Related MCP server: Git MCP Server
Installieren
Benötigt Python 3.11+ und git im 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.tomlBearbeite otama.toml und setze project_roots auf den oder die Ordner, die deine
Repositories enthalten. Verwende unter Windows Vorwärtsschrägstriche.
[projects]
project_roots = ["C:/Users/you/code"]Prüfen:
.venv/bin/python -c "import asyncio; from projects_server import otama; print([t.name for t in asyncio.run(otama.list_tools())])"Zehn Toolnamen bedeuten, dass der Server läuft.
Verbinden
Cursor — ~/.cursor/mcp.json. Claude Desktop — claude_desktop_config.json
(Einstellungen → Entwickler → Konfiguration bearbeiten). Diesel falls die Struktur gleich:
{
"mcpServers": {
"otama-projects": {
"command": "/absolute/path/to/otama/.venv/bin/python",
"args": ["/absolute/path/to/otama/projects_server.py"]
}
}
}Verwende unter Windows \\ in JSON-Pfaden — C:\\Users\\you\\otama\\.venv\\Scripts\\python.exe.
Starte die App vollständig neu. Einzelne neu zu verkraften reicht nicht; MCP-Server werden beim Start geladen.
Tools
Lesen — wird sofort ausgeführt
Tool | Rückgabe |
| Jedes Repository oder jeder Ordner unter deinen Roots, zusammen mit der Flag |
| Zweistufige Baum, der Überspringt |
| Eine Textdatei, mit Begrenzung der Dateigröße. |
| Regex-Suche über ein Projekt, mit Datei- und Zeilennummern. |
| Branch, nicht committete Dateien, die letzten fünf Commits. |
| Working-Tree-Diff, abgeschnitten. |
| Was sich in den letzten N Tagen in jedem Repo bewegt hat. |
Schreiben und Ausführen — Bestätigung erforderlich
Tool | Aktion |
| Staged alles und committen Sie einen Commit. |
| Erstellt oder überschreibt eine Datei. |
| Führt einen erlaubten Entwicklungsbefehl aus. |
Konfiguration
[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"]Hinweise für Mitwirkende
Das Zwei-Phasen-Muster liegt in stage(), redeem() und _expire(). Wenn du ein Tool mit
Nebeneffekten hinzufügst, verwende es.
Eine Besonderheit, die es zu bewahren gilt: redeem() konsumiert den Confirm auf jeden
anderen nicht, wenn die Tool-Art nicht nicht übereinstimmen. Aber der Fall: Ein Modell,
das versehentlich das falsche Tool aufruft, darf die Freigabe des Nutzers nicht verbrauchen,
also soll der Nutzer nicht gezwungen werden, alles noch einmal zu bestätigen. Das war ein
echter Bug, entdeckt beim Testen.
Neue Clone-Server sollten derselben Struktur folgen — eine Datei, eine Domäne, Lesetools
gnadenlos bei Tools ohne Einschränkung (read), Schreibetools mit Gating, und wenn eine
Aktion außerhalb dieses Rahmens liegt: verweigern statt bestätigen.
Status
Frühphase. Die projects Server ist getestet und wird täglich verwendet; weitere
Capability-Server (Medien, Mail, Browser) sind im Rahmen eines größeren
Sprachassistenten-Projekts geplant. Issues und Pull Requests sind willkommen.
Lizenz
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