Skip to main content
Glama

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 timeout

Warum

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_command lehnt alles außerhalb der Liste kategorisch ab, statt es zur Bestätigung vorzulegen. Ein Missverständnis sollte nie nur ein „Ja" voncel zwischen rm -rf entfernt 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.toml

Bearbeite 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 Desktopclaude_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

list_projects

Jedes Repository oder jeder Ordner unter deinen Roots, zusammen mit der Flag is_git_repo

project_tree

Zweistufige Baum, der Überspringt node_modules, .venv, dist und Ähnliches

read_file

Eine Textdatei, mit Begrenzung der Dateigröße.

search_code

Regex-Suche über ein Projekt, mit Datei- und Zeilennummern.

git_status

Branch, nicht committete Dateien, die letzten fünf Commits.

git_diff

Working-Tree-Diff, abgeschnitten.

daily_brief

Was sich in den letzten N Tagen in jedem Repo bewegt hat.

Schreiben und Ausführen — Bestätigung erforderlich

Tool

Aktion

git_commit

Staged alles und committen Sie einen Commit.

write_file

Erstellt oder überschreibt eine Datei.

run_command

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

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    A 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.
  • A
    license
    Not graded
    quality
    D
    maintenance
    An 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,703
    1
    Apache 2.0
  • F
    license
    Not graded
    quality
    D
    maintenance
    A 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.
  • F
    license
    B
    quality
    B
    maintenance
    A lightweight MCP server that acts as a secure proxy for AI assistants to run local Git operations and GitHub API macros simultaneously.
    1

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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