Skip to main content
Glama

otama

Сервер MCP, который даёт ИИ-ассистентам — Cursor, Claude Desktop или вашему собственному голосовому агенту — доступ к локальным git-репозиториям.

Операции чтения работают свободно. Всё, что пишет, сначала возвращает токен подтверждения и краткое описание простым языком, а действует только при повторном вызове с этим токеном. Ассистент спрашивает, прежде чем что-либо закоммитить.

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

Почему

Большинство файловых MCP-серверов дают модели неограниченный доступ на чтение и запись к дереву каталогов. Это нормально, когда вы следите за каждым вызовом инструмента. Но не нормально, когда модель управляет голосовым ассистентом, работает без присмотра или просто неправильно вас расслышала.

otama исходит из того, что модель иногда ошибается, и сводит последствия к минимуму:

  • Песочница для путей. Каждый путь преобразуется до того, как он проверяется по настроенным корням. .., симлинки и абсолютные пути не могут выбраться наружу.

  • Двухфазное подтверждение. Инструменты записи и выполнения, вызванные без токена, ничего не делают, а лишь описывают, что они сделали бы. Токены одноразовые, истекают через две минуты и привязаны к инструменту, который их выдал.

  • Список разрешённых команд. run_command категорически отвергает всё, что вне списка, а не предлагает подтверждение. Одна ошибка слуха не должна быть на расстоянии одного «да» от rm -rf.

Related MCP server: Git MCP Server

Установка

Требуется Python 3.11+ и git в 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

Отредактируйте otama.toml и задайте project_roots — папки, где лежат репозитории. В Windows используйте прямой слэш.

[projects]
project_roots = ["C:/Users/you/code"]

Проверьте:

.venv/bin/python -c "import asyncio; from projects_server import otama; print([t.name for t in asyncio.run(otama.list_tools())])"

Десять инструментов в списке — значит, вы работаете.

Подключение

Cursor~/.cursor/mcp.json
Claude Desktopclaude_desktop_config.json (Settings → Developer → Edit Config). Формат в обоих случаях один:

{
  "mcpServers": {
    "otama-projects": {
      "command": "/absolute/path/to/otama/.venv/bin/python",
      "args": ["/absolute/path/to/otama/projects_server.py"]
    }
  }
}

В Windows в JSON-путях используйте \\C:\\Users\\you\\otama\\.venv\\Scripts\\python.exe.

Полностью перезапустший приложение. Перезагрузки недостаточно: MCP-серверы загружаются при старте.

Инструменты

Чтение — выполняется сразу

Инструмент

Возвращает

list_projects

Список всех репозиториев и папок в корнях, с маской is_git_repo

project_tree

Двухуровневое дерево, пропуская node_modules, .venv, dist и им подобные

read_file

Один текстовый файл, с ограничением по размеру

search_code

Regex по проекту, с именами файлов и номерами строк

git_status

Текущая ветка, незакоммиченные файлы, места пяти коммитов

git_diff

Диф рабочего дерева, усечённый

daily_brief

Что изменилось в каждом репозитории за последние N обнов

Запись и выполнение — требуется подтверждение

git_commit

Индексирует все изменения и создаёт коммит

write_file

Создаёт или перезаписывает файл

run_command

Выполняет команду из списка разрешённых

Конфигурация

[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"]

Заметка для контрибьюторов

Двухфазный паттерн живёт в stage(), redeem() и _expire(). Если добавляете инструментам с побочными эффектами, используйте его.

Одна тонкость имеет значение: redeem() не расходует токен, когда тип инструмента не совпал. Модель, случайно позвонившая не того инструмента, не должна ждать одобрения пользователя и принуждать повторно подтверждать всё сначала. Это был настоящий баг, пойманный в тестах.

Новые серверы возможностей должны быть такой же формы — один файл, один домен, чтение равнопаправное, запись gated, отказ при выходе за рамки, а не подтверждение.

Статус

На раннем этапе. Сервер projects протестирован и используется ежедневно; планируются другие серверы возможностей (media, mail, browser) в рамках более крупного voice-assistant. Issues и PRWelcome.

Лицензия

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