ArchRepoMCP
Provides management of architectural Git repositories, including local Git operations (status, diff, history, commit, branches, remotes) and explicit remote synchronization (clone, fetch, fast-forward pull, publish).
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., "@ArchRepoMCPInitialize the government repository and list all entity types."
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.
ArchRepoMCP
MCP-сервер для локального управления архитектурными Git-репозиториями. Структура сущностей задаётся декларацией DSL, а удалённые Git-сервисы рассматриваются только как явный контур синхронизации.
Текущий MVP позволяет AI-агенту сначала получить из government repository полную модель сущностей и шаблоны, затем явно выбрать рабочий repository и локально управлять его содержимым. Доступ к remote выполняется только через отдельные явные операции; остальные возможности полностью работают offline.
Реализовано
строгий parser и validator DSL
architecture_repository/v2;обязательное семантическое
descriptionдля каждого entity type;закрытая грамматика, проверка presets, relations, regex и duplicate YAML keys;
обнаружение корня локального Git repository без сетевых операций;
repository confinement и запрет symbolic-link обходов;
проверка templates, конфликтов file matching и форматов файлов;
безопасное создание repository из декларации и её template bundle;
автоматически создаваемый government repository со встроенным нормативным preset;
описание AI-facing модели через
repository_describeи явный выбор черезrepository_list;единый локальный workspace, настраиваемый через stdio, environment или
.env;Entity Service:
list,read,search,create,update,delete;rollback entity mutations, не прошедших полную repository validation;
Local Git Service:
status,diff,history,commit, branches и remotes;Remote Sync Service: явные
clone,fetch, безопасный fast-forwardpullиpublish;MCP server на официальном Python SDK v2 со stdio transport;
нормализованная модель ошибок;
автоматические DSL, repository, entity, local Git, remote sync и MCP contract tests.
Related MCP server: scryer-mcp
Архитектура текущего среза
MCP tools
│
├── Government Model ───── initialize / describe / list repositories
├── Repository Service ─── create / open / validate
├── Entity Service ────── list / read / search / create / update / delete
├── Local Git Service ─── status / diff / history / commit / branches / remotes
└── Remote Sync Service ── clone / fetch / pull / publish
│ │
├── DSL v2 Engine └── explicit Git transport
│
▼
Local Git RepositoryНормативные документы расположены в specs/, реализация — в src/, а проверки
соответствия — в tests/.
Требования
Python 3.11 или новее;
Git, доступный через
PATH;Windows, Linux или macOS.
Установка для разработки
PowerShell:
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -e ".[dev]"Linux/macOS:
python -m venv .venv
source .venv/bin/activate
python -m pip install -e '.[dev]'Запуск MCP
После установки пакет предоставляет stdio-команду:
arch-repo-mcpЭквивалентный запуск через Python:
python -m arch_repo_mcp.serverДля MCP host команда настраивается как stdio server. Рекомендуемый пример конфигурации:
{
"mcpServers": {
"arch-repo": {
"command": "arch-repo-mcp",
"env": {
"ARCH_REPO_MCP_WORKSPACE": "D:\\ArchitectureRepositories",
"ARCH_REPO_MCP_GOVERNMENT_REPOSITORY": "government"
}
}
}
}Конкретный формат файла конфигурации зависит от MCP host. Команда должна запускаться в
окружении, где установлен пакет arch-repo-mcp.
Workspace и .env
ARCH_REPO_MCP_WORKSPACE задаёт локальную директорию, внутри которой находятся government
и все рабочие repositories. ARCH_REPO_MCP_GOVERNMENT_REPOSITORY задаёт абсолютный путь
внутри workspace либо относительный путь; значение по умолчанию — government.
Те же значения можно сохранить в .env текущей директории процесса:
ARCH_REPO_MCP_WORKSPACE=D:/ArchitectureRepositories
ARCH_REPO_MCP_GOVERNMENT_REPOSITORY=governmentДругой env-файл выбирается через ARCH_REPO_MCP_ENV_FILE. Для
government_repository_initialize, repository_describe и repository_list значения
можно передать непосредственно по stdio в аргументах workspace_path,
government_repository_path и env_file. Приоритет: stdio-аргумент, process environment,
.env, затем документированное имя government repository по умолчанию.
Если workspace настроен, относительные repository_path и target_path разрешаются внутри
него, а выход за его границы отклоняется. Entity tools дополнительно запрещают использовать
government repository как рабочий.
Запуск в Goose на macOS
Goose подключает локальные MCP-серверы как STDIO extensions. Сначала установите нужный клиент Goose через Homebrew (CLI, Desktop или оба):
brew install block-goose-cli
brew install --cask block-gooseНастройте LLM provider при первом запуске Goose или позднее через goose configure в CLI либо
Settings → Models в Desktop. Затем подготовьте ArchRepoMCP и локальный workspace. Во всех
следующих примерах замените /Users/you/... своими абсолютными путями:
cd /Users/you/src/ArchRepoMCP
python3 -m venv .venv
./.venv/bin/python -m pip install -e .
mkdir -p /Users/you/ArchitectureRepositoriesИспользуйте абсолютный путь к .venv/bin/arch-repo-mcp: Goose Desktop может не наследовать
PATH интерактивной shell. Переменные окружения также лучше передать в настройках extension,
поскольку рабочая директория процесса Goose не обязана совпадать с каталогом проекта.
Goose CLI
Для постоянного подключения выполните:
goose configureВ интерактивном меню выберите Add Extension → Command-Line Extension и укажите:
name:
ArchRepoMCP;command:
/Users/you/src/ArchRepoMCP/.venv/bin/arch-repo-mcp;timeout:
300;environment variable
ARCH_REPO_MCP_WORKSPACE:/Users/you/ArchitectureRepositories;environment variable
ARCH_REPO_MCP_GOVERNMENT_REPOSITORY:government.
После добавления запустите обычную сессию:
goose sessionДля одноразовой сессии без сохранения extension в конфигурации Goose используйте:
goose session --with-extension \
"ARCH_REPO_MCP_WORKSPACE=/Users/you/ArchitectureRepositories ARCH_REPO_MCP_GOVERNMENT_REPOSITORY=government /Users/you/src/ArchRepoMCP/.venv/bin/arch-repo-mcp"Goose Desktop (GUI)
Откройте боковую панель Goose Desktop и перейдите в
Extensions.Нажмите
Add custom extension.Выберите type
Standard IO, задайте IDarch-repo-mcp, nameArchRepoMCPи command/Users/you/src/ArchRepoMCP/.venv/bin/arch-repo-mcp.Добавьте через отдельную кнопку
Addобе переменные окружения из CLI-инструкции выше и установите timeout300.Нажмите
Add, убедитесь, что extension включён, и начните новую сессию.
Для проверки подключения попросите Goose: Вызови repository_describe, затем repository_list.
Первый вызов автоматически создаст government repository со встроенными DSL-декларацией и
шаблонами, если его ещё нет. Конфигурация CLI и Desktop общая и хранится Goose в
~/.config/goose/config.yaml.
Актуальные названия пунктов интерфейса и варианты установки приведены в официальной инструкции по установке Goose и документации по extensions.
MCP tools
Tool | Назначение |
| Открыть или создать government repository из встроенного DSL preset |
| Получить entity semantics, relations, file rules и полное содержимое templates |
| Получить рабочие repositories для явного выбора |
| Создать локальный Git repository из DSL declaration bundle |
| Открыть и полностью проверить локальный architecture repository |
| Получить детальный validation report без изменения repository |
| Получить структурированный локальный Git status |
| Получить working-tree, staged или revision diff |
| Получить ограниченную локальную commit history |
| Валидировать и закоммитить только DSL-controlled paths |
| Получить список локальных веток |
| Создать локальную ветку без автоматического switch |
| Переключиться на валидную локальную ветку из clean state |
| Получить remotes с очищенными URL |
| Добавить или явно заменить remote без сетевого запроса |
| Явно клонировать remote и создать target только после validation |
| Явно получить refs без изменения index и working tree |
| Выполнить только валидированный fast-forward из clean state |
| Валидировать и явно отправить текущий |
| Создать entity из объявленного template |
| Получить список экземпляров указанного DSL entity |
| Прочитать один экземпляр по repository-relative path |
| Прочитать связанные файлы по DSL и front matter исходной entity |
| Найти текст во всех или в указанном типе entity |
| Локально заменить entity с validation и rollback |
| Локально удалить entity с validation и rollback |
Все операции над существующим repository принимают repository_path; repository_create
и repository_clone вместо него принимают новый target_path. Repository и Entity tools,
которым требуется декларация, также принимают необязательный declaration_path с явно
документированным значением по умолчанию architecture.yaml. Git inspection отделён от
DSL validation и остаётся доступен для диагностики невалидного working tree. Ответ имеет
единый envelope:
{
"ok": true,
"result": {}
}или:
{
"ok": false,
"error": {
"code": "INVALID_REPOSITORY",
"message": "Architecture repository validation failed",
"details": {}
}
}Сценарий AI-агента
Вызвать
repository_describe; отсутствующий government repository будет создан из встроенныхarchitecture.yamlи templates без commit или remote.Использовать возвращённые
description,relations,path_rule,filename_rule,formatиtemplate_contentкак источник правил классификации исходного текста.Вызвать
repository_list, выбрать только валидный repository сmodel_matches_government=trueи явно передавать егоrepository_pathво все entity tools.Для каждого результата классификации вызвать
entity_create, затемentity_updateс полным UTF-8 содержимым по шаблону.Отдельно проверить изменения и при необходимости явно выполнить commit/publish.
Создание repository
repository_create принимает отсутствующий target_path и путь к исходной DSL-декларации
declaration_source. Все указанные декларацией templates должны находиться рядом с ней по
repository-relative путям. Сначала bundle полностью проверяется, затем во временном
staging-каталоге выполняется git init, и только валидный результат переносится в target.
Начальная ветка задаётся параметром initial_branch с документированным значением по
умолчанию main. Операция не создаёт commit и не настраивает remote.
Изменение entities
entity_create всегда использует объявленный DSL template как стартовое содержимое.
entity_update принимает полное новое UTF-8 содержимое. Все три mutation tools оставляют
изменения только в working tree, выполняют полную validation и восстанавливают исходное
состояние при ошибке. Commit или push автоматически не выполняются.
DSL relations содержит только имена допустимых связанных entity types. Ссылки на экземпляры
хранятся исключительно во front matter конкретного файла:
relations:
- entity: category
files:
- C-0001.mdentity_read_related проверяет направление связи по DSL и filename по правилу целевой
entity. Найденный файл возвращается вместе с содержимым. Для корректной ссылки на
отсутствующий файл возвращаются relation_valid=true, found=false, status=missing и,
когда path selector точный, ожидаемый expected_path. Отсутствие target не делает repository
невалидным. При нескольких подходящих файлах возвращается status=ambiguous и
candidate_paths; неявный выбор не выполняется.
Local Git operations
repository_commit сначала выполняет полную repository validation, затем включает в
commit только изменённые declaration, templates и файлы, однозначно принадлежащие DSL
entities. Посторонние staged-файлы не попадают в commit и остаются в index. Push не
выполняется.
branch_switch разрешён только при полностью чистых index и working tree. Remote branch
guessing, stash, reset и автоматическое разрешение конфликтов не используются. Если target
branch не проходит validation, MCP возвращается на исходную ветку и сообщает ошибку.
remote_configure изменяет только локальный .git/config. Замена существующего remote
требует явного replace=true. HTTP(S) URL со встроенными credentials, query или fragment
отклоняются; repository_remotes удаляет credential-bearing части из возвращаемых URL.
Remote synchronization
Remote-операции никогда не запускаются другими tools неявно и не запрашивают credentials
интерактивно. repository_clone клонирует во временный каталог рядом с target_path,
отключает рекурсивное получение submodules, выполняет полную DSL/repository validation и
только после успеха перемещает результат в target. Невалидный clone не оставляет частично
созданный repository по целевому пути.
repository_fetch требует явное имя настроенного remote и только обновляет remote-tracking
refs. Операция не выполняет merge, rebase, switch, stash или reset и не меняет index и
working tree. Получение tags и prune отключены по умолчанию и включаются отдельными
параметрами.
repository_publish требует clean index и working tree, повторно валидирует repository и
публикует текущий HEAD в явно указанные remote и branch. Операция не настраивает upstream,
не отправляет tags, не использует force push и сообщает о non-fast-forward как об ошибке.
HTTP(S) URL со встроенными credentials, query или fragment запрещены также для clone;
секреты следует передавать средствами окружения и Git credential helper вне MCP-ответов.
repository_pull доступен только для clean working tree и fast-forward history. Fetched tree
валидируется до изменения текущей ветки; divergence, invalid tree и конфликты отклоняются без
implicit stash, reset, rebase или автоматического разрешения конфликтов.
Минимальная DSL-декларация
declaration:
kind: architecture_repository
version: v2
entities:
- name: fact
files:
path:
match: exact
value: facts
filename:
match: regex
value: '^F-[0-9]{4}\.md$'
format: markdown_front_matter
template: templates/fact.mdДля каждого entity один matched-файл считается одним экземпляром. path сопоставляется
с repository-relative parent path, filename — только с basename. Regex применяется как
full match. Один файл не может одновременно принадлежать нескольким entities.
Поддерживаемые форматы: yaml, json, markdown, markdown_front_matter, text.
Полный нормативный контракт находится в specs/dsl/DSL_V2_TABLES.md, валидные примеры —
в specs/examples/declarations/.
Проверки
python -m pytest
python -m ruff check .Тесты создают временные локальные Git repositories. Remote sync проверяется через локальные
bare repositories и file:// transport, поэтому Forgejo и доступ к сети не требуются.
Forgejo и credentials
Интеграция с Forgejo ещё не включена в runtime. Для будущих integration tests параметры
берутся только из локального .forgejo.env или переменных окружения:
FORGEJO_URL
FORGEJO_API_URL
FORGEJO_TOKEN
FORGEJO_USERNAME
FORGEJO_ORGANIZATION
FORGEJO_DEFAULT_BRANCH
FORGEJO_DEFAULT_PRIVATE
FORGEJO_TLS_VERIFYЛокальные файлы .forgejo.env, forgejo.env и forgego.env исключены из Git. Tokens и
другие credentials нельзя помещать в DSL, source code, test data, logs или исключения.
Основные принципы
local repository first;
contract-driven API;
DSL-driven file model без hardcoded
facts/requirements/categories;никаких implicit commit, push, pull, merge, rebase, stash или reset;
публикация только после validation и только явной командой;
provider independence и полноценная offline-работа локальных функций.
Проект распространяется по лицензии MIT.
Available Tools
26 toolsbranch_createA
Create a local branch without switching the repository to it.
| Name | Required | Description | Default |
|---|---|---|---|
| branch_name | Yes | ||
| start_point | No | HEAD | |
| repository_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It usefully reveals that the operation is local and does not perform a checkout/switch. However, it omits other important behaviors such as what happens if the branch already exists, how start_point is used, or any side effects on the working directory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that states the core action and its most important qualification. Every word earns its place, and the critical 'without switching' detail is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with an output schema and only three parameters, the description plus schema is nearly sufficient for basic invocation. However, it lacks guidance on edge cases like existing branches, invalid start points, or repository state, and the 0% parameter coverage leaves some room for misinterpretation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description should compensate by explaining roles, but it does not mention repository_path, branch_name, or start_point. The parameter names are fairly self-explanatory, and the schema provides defaults/required flags, but the description adds no parameter-level meaning beyond the tool name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('Create a local branch') and explicitly states the key distinguishing behavior ('without switching the repository to it'). This clearly differentiates it from the sibling tool branch_switch and makes the tool's purpose immediately obvious.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'without switching the repository to it' provides clear contextual guidance: use this when you want a new branch but do not want to leave the current branch. It does not explicitly name alternatives or state when not to use the tool, but the contrast with switching is a strong implicit usage signal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
branch_switchA
Switch to a valid local branch only when the worktree and index are clean.
| Name | Required | Description | Default |
|---|---|---|---|
| branch_name | Yes | ||
| repository_path | Yes | ||
| declaration_path | No | architecture.yaml |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It discloses an important guard: switching is permitted only on a clean worktree/index, implying refusal or failure on dirty state. However, it does not say what happens on violation or describe other side effects, permissions, or output behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. The key action is stated first, followed by a concise condition that earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple switch operation, the core guard and required parameters are clear, and the presence of an output schema reduces the need to describe return values. Still, the meaning and necessity of declaration_path are omitted, and there is no mention of what to do when the worktree is dirty.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description needed to explain parameters. It adds some meaning to branch_name by requiring it to be a valid local branch, but says nothing about repository_path or declaration_path. The optional declaration_path parameter is especially unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise verb and resource: switch to a valid local branch. The added condition 'only when the worktree and index are clean' clarifies scope and differentiates it from siblings like branch_create or repository_branches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear precondition for use—only when the worktree and index are clean—which tells an agent the state a repository must be in before invoking this tool. It does not explicitly name alternatives or exclusions, but the context is sufficiently clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
entity_createA
Create a local entity from its DSL template without commit or publication.
| Name | Required | Description | Default |
|---|---|---|---|
| entity_name | Yes | ||
| entity_path | Yes | ||
| repository_path | Yes | ||
| declaration_path | No | architecture.yaml |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose the key side-effect boundary: creation is local and does not commit or publish. It does not mention overwrite behavior, idempotency, required repository state, or failure responses.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. It names the action, the resource, and the key scope limitation efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating tool with no annotations and 0% parameter coverage, this description is too sparse. An agent cannot tell what state the repository must be in, whether an existing entity is overwritten, or which parameter points to the template versus the output location. The output schema exists but does not compensate for these gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the four parameters or their relationships. 'DSL template' vaguely hints at declaration_path, but it never clarifies the distinction between entity_path, declaration_path, and repository_path.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('create'), a specific resource ('entity'), and the source ('DSL template'), while also bounding the scope with 'local' and 'without commit or publication'. This clearly distinguishes it from siblings like entity_update or repository_publish.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'without commit or publication' gives useful context that this is a local-only draft operation. However, it does not explicitly say when to prefer this tool over alternatives, or when the user would need to follow up with repository_commit or repository_publish.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
entity_deleteC
Delete one local entity without commit or publication.
| Name | Required | Description | Default |
|---|---|---|---|
| entity_name | Yes | ||
| entity_path | Yes | ||
| repository_path | Yes | ||
| declaration_path | No | architecture.yaml |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the behavioral burden. It does disclose a key side-effect: no commit or publication happens. However, it does not mention that deletion is likely irreversible, whether related entities are affected, or whether the working tree is modified beyond removing the entity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single tight sentence with every word contributing to the core meaning, and the primary action is front-loaded. It is not padded, though the highly condensed form leaves little room for needed operational context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with four parameters, no annotations, and no parameter descriptions, this one-sentence description is incomplete. It tells the agent what the tool does but not enough about prerequisites, path semantics, or side effects to invoke it safely and correctly. The output schema covers return values but not invocation semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the four parameters. The agent cannot determine the relationship between repository_path, entity_path, entity_name, and declaration_path from the description, so parameter meaning is left entirely to inference from names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (delete), the target (one local entity), and the scope (without commit or publication). This distinguishes it from entity_update/entity_create and signals it is not a repository commit/publish operation, though it does not explicitly name sibling alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'without commit or publication' gives useful context about when this tool is appropriate, but it does not explicitly say when not to use it or which sibling tools should be used instead. Usage guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
entity_listB
List instances of a DSL-declared entity type from the local repository.
| Name | Required | Description | Default |
|---|---|---|---|
| entity_name | Yes | ||
| repository_path | Yes | ||
| declaration_path | No | architecture.yaml |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the burden. 'List' clearly signals a read-only, non-mutating operation, and 'local repository' scopes it. However, it does not disclose what happens with an invalid repository_path, whether declaration_path must exist, or whether the scan is limited to architecture.yaml or the whole repo.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single focused sentence with no filler. It front-loads the action and key scoping qualifiers ('DSL-declared', 'local repository') while staying compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter tool with a bare schema and no annotations, this description is too thin. It lacks parameter semantics, usage context, and differentiation from sibling entity/repository tools. The output schema covers return shape, but that does not compensate for missing guidance on how the parameters interact.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description adds little parameter-level meaning. 'Entity type' loosely maps to entity_name and 'local repository' to repository_path, but declaration_path is ignored, no formats or value expectations are given, and required vs optional status is not clarified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and a clear resource ('instances of a DSL-declared entity type from the local repository'). It differentiates from siblings like entity_read (singular) and entity_search by focusing on listing all instances from the local repo.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance is provided. The description gives no hint about when to prefer entity_list over entity_search or entity_read, and does not mention preconditions such as a valid repository path or initialized repository.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
entity_readC
Read one local entity selected by type and repository-relative path.
| Name | Required | Description | Default |
|---|---|---|---|
| entity_name | Yes | ||
| entity_path | Yes | ||
| repository_path | Yes | ||
| declaration_path | No | architecture.yaml |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It states 'read' which implies non-mutating, but does not explicitly confirm read-only semantics, error behavior, or permissions. There is no mention of what happens if the entity does not exist or if the path is invalid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, which is structurally simple and front-loaded with the action. However, it is too terse to convey necessary nuance, leaving critical details unstated. It is not verbose, but brevity here sacrifices usefulness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters, no schema descriptions, and no annotations, the description is far from complete. It does not explain how entity_name and entity_path relate, nor the role of declaration_path or repository_path. While an output schema exists (not shown), the description still lacks the context needed to correctly construct a valid invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameter meaning. It mentions 'type' and 'repository-relative path' but does not map these to entity_name, entity_path, repository_path, or declaration_path. The description adds no clarification on what each parameter represents or how they interrelate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (read) and the resource (one local entity), and specifies selection by type and repository-relative path. It implies a singular read operation, distinguishing it from list or search tools, though it does not explicitly name siblings. The term 'type' is ambiguous but contextually maps to entity_name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like entity_list, entity_search, or entity_read_related. No exclusions, prerequisites, or context are provided. An agent cannot infer which tool to pick from the description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
entity_searchB
Search text in all or one type of local DSL-resolved entity.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| entity_name | No | ||
| case_sensitive | No | ||
| repository_path | Yes | ||
| declaration_path | No | architecture.yaml |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It says 'search' but does not state that the operation is read-only, how matching works, what the result set contains, or how repository_path and declaration_path scope the search. This is minimal behavioral context beyond the core action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler, and the core operation is front-loaded. Every word contributes to the intended meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter tool with no annotations and 0% schema coverage, this description is too sparse. It does not explain what 'DSL-resolved entity' means, how the query is matched, what entity_name values are valid, or how the path parameters affect the search. The output schema helps with return values, but input semantics remain incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It hints at query ('search text') and entity_name ('all or one type'), but repository_path, declaration_path, and case_sensitive are effectively undocumented in both the schema and the description. The description provides only partial compensation for the missing parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search') and identifies the resource ('text in local DSL-resolved entity'), and 'all or one type' captures the main variation in scope. It does not explicitly name a sibling, but the action is clearly distinct from listing, reading, or creating entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is the tool to use when an agent needs to find entities by text rather than enumerate them with entity_list or read one with entity_read. However, there is no explicit when-to-use guidance, prerequisite context, or statement about when this tool should be avoided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
entity_updateB
Replace a local entity and roll back when validation fails.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | ||
| entity_name | Yes | ||
| entity_path | Yes | ||
| repository_path | Yes | ||
| declaration_path | No | architecture.yaml |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It does disclose a meaningful non-obvious trait: validation failure triggers a rollback, implying atomicity. However, it does not explain what is destroyed or overwritten, whether permissions are required, or what happens on successful validation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one tight sentence with no filler; the main action is front-loaded and the rollback condition is integrated compactly. It is under-specified overall, but that is a completeness issue rather than a structure or conciseness problem.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even though an output schema exists, this is a mutating tool with no annotations, five parameters at 0% schema description coverage, and no usage context. The 13-word description is not enough for an agent to call the tool correctly without guessing at path semantics, validation behavior, or the role of the optional declaration_path.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description mentions none of the five parameters (content, entity_name, entity_path, repository_path, declaration_path). Since the schema provides only names and types, and the description adds no semantic meaning, an agent cannot infer how to correctly fill these parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Replace'), a resource ('local entity'), and a distinctive behavioral condition ('roll back when validation fails'). This clearly differentiates entity_update from siblings like entity_create, entity_delete, and entity_read without needing to open the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as entity_create or entity_delete, nor any exclusions or prerequisites. The context of updating an existing entity is only implied by the name and 'replace' wording.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
government_repository_initializeC
Open or create the government repository from the built-in DSL and templates.
| Name | Required | Description | Default |
|---|---|---|---|
| env_file | No | ||
| initial_branch | No | main | |
| workspace_path | No | ||
| government_repository_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It signals that the tool may create or open a repository, but it does not explain side effects, idempotency, prerequisites, or what initialization actually changes in the workspace.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler, and the core operation is front-loaded. It is concise, though the brevity contributes to some ambiguity around 'government repository.'
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, four optional parameters, and a specialized initialization purpose, this description is too thin. The agent is left without enough context about what a government repository is, how the parameters influence behavior, or how this differs from the generic repository tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description mentions none of the four parameters. Since env_file, initial_branch, workspace_path, and government_repository_path are all undocumented in both schema and description, the agent cannot infer their meaning or relationships.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Open or create') and resource ('the government repository'), and adds the source ('built-in DSL and templates'), which gives the tool a distinguishable identity. However, it does not explicitly differentiate it from sibling tools like repository_create or repository_open, so it stops short of full clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus the many repository_create, repository_open, or repository_validate siblings. The phrase 'from the built-in DSL and templates' hints at a niche, but no condition, alternative, or exclusion is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remote_configureB
Add or explicitly replace local remote configuration without network access.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| name | Yes | ||
| replace | No | ||
| repository_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must fully disclose behavioral traits. It states the mutation action ('Add or explicitly replace') and the offline nature, but does not cover side effects like overwriting existing remotes without the 'replace' flag, permission requirements, or error behavior. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word contributes to the core action and context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with four parameters, no annotations, and no output schema coverage, the description is too sparse. It lacks parameter explanations, usage distinctions, and side-effect disclosure, making it insufficient for an agent to invoke correctly without additional inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate by explaining the meaning of the parameters. It does not mention repository_path, name, url, or replace beyond the generic action, leaving the agent to rely solely on parameter names, which are only partially self-explanatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb pair ('Add or explicitly replace') and names the resource ('local remote configuration'), plus a key qualifier ('without network access') that separates it from network-bound siblings like repository_clone/fetch/pull. It clearly distinguishes this tool from repository_remotes, which presumably lists remotes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (offline modification of local remotes) but does not explicitly state when not to use it or name alternative tools. An agent could infer that repository_remotes is for listing, but no explicit guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
repository_branchesA
List local branches without contacting a remote.
| Name | Required | Description | Default |
|---|---|---|---|
| repository_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses a key behavioral trait: the tool does not contact a remote, which is valuable. However, it does not explicitly state that it is a read-only operation, nor does it describe any error conditions, permissions, or side effects. This is a minimal disclosure that leaves room for ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero redundancy. The key action and scope are front-loaded, making it easy to scan and understand immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one required parameter and no annotation coverage, the description is too sparse. It omits any explanation of the parameter, which is essential for correct invocation. Although an output schema exists, the description does not even hint at what the tool returns. The description is not complete enough for an agent to call this tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it does not mention the sole parameter repository_path at all. The agent receives no guidance on what this path refers to or how to format it, leaving the parameter semantically unexplained. This is a critical gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'local branches', and explicitly notes 'without contacting a remote', which differentiates it from remote-related siblings like repository_remotes and repository_fetch. It precisely identifies what the tool does and its scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'without contacting a remote' implies when to use this tool (for local-only branch listing) and implicitly suggests alternatives for remote operations, but it does not explicitly name any sibling tools or conditions for when not to use it. This is clear enough for an agent to infer appropriate usage, though explicit alternatives would improve it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
repository_cloneC
Explicitly clone and validate a remote Git architecture repository.
| Name | Required | Description | Default |
|---|---|---|---|
| branch | No | ||
| remote_url | Yes | ||
| target_path | Yes | ||
| include_tags | No | ||
| declaration_path | No | architecture.yaml |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the full burden. It reveals only the basic action (clone and validate) but fails to disclose side effects like directory creation, authentication needs, branch checkout specifics, or what validation entails. This is insufficient for an agent to anticipate consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise in length but under-specified in content. It lacks any structured breakdown or front-loaded critical details, making it more a placeholder than an informative definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with five parameters, no annotations, and zero parameter descriptions, the description is grossly incomplete. It does not explain validation behavior, parameter semantics, or expected outcomes, making it inadequate for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention any of the five parameters (remote_url, target_path, branch, include_tags, declaration_path). The agent receives no additional meaning beyond the schema's titles and types, which is a major gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb 'clone' and a clear resource 'remote Git architecture repository', and adds 'validate' which distinguishes its behavior. It is unambiguous about the core action, though it does not explicitly contrast with siblings like repository_fetch or repository_pull, which is why it does not reach 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to use this tool versus alternatives such as repository_fetch or repository_pull. No prerequisites, conditions, or exclusions are mentioned, leaving the agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
repository_commitA
Validate and commit only changed DSL-controlled paths without push.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | ||
| repository_path | Yes | ||
| declaration_path | No | architecture.yaml |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses key non-obvious behaviors: it validates first, commits only changed DSL-controlled paths, and does not push. This goes beyond what the schema could convey. It does not mention permissions or rollback, but the core mutation traits are transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single tightly packed sentence that front-loads the verb and key constraints. Every word earns its place; there is no filler or restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a moderately complex mutation with 3 parameters and no annotations. The description conveys the core operation and its scoping, and an output schema exists to define return values. However, it leaves out when to use this step relative to repository_diff/status/validate, and does not clarify the role of declaration_path or any repository initialization prerequisite.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate by explaining parameters. It does not mention repository_path, message, or declaration_path at all; the only hint is 'DSL-controlled paths' which vaguely relates to declaration_path. An agent gets no added meaning beyond parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('commit') on a specific resource (DSL-controlled paths in a repository) with clear scope qualifiers ('only changed', 'without push'). This distinguishes it from siblings like repository_validate (validation only) and repository_publish (which likely pushes).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'without push' implies when not to use this tool (when push is desired), and 'Validate and commit' suggests it is for a local commit workflow. However, it does not explicitly name alternatives like repository_publish or say 'use repository_validate if you only want validation', so usage context is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
repository_createC
Create a validated local Git repository without creating a commit.
| Name | Required | Description | Default |
|---|---|---|---|
| target_path | Yes | ||
| initial_branch | No | main | |
| declaration_path | No | architecture.yaml | |
| declaration_source | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits itself. It does add two useful facts: the repository is 'validated' and no commit is created. However, it does not explain what validation does, whether the operation is destructive to an existing path, what side effects occur, or what happens on failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler and front-loads the core action. The qualifiers 'validated' and 'without creating a commit' earn their place, though the extreme brevity leaves key context absent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters, 2 required, no annotations, and zero schema description coverage, this description is far from complete. An agent cannot determine what declaration_source should contain, what validation is performed, how target_path is handled, or how this differs from repository_initialize.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description provides no parameter-level meaning. target_path, declaration_source, initial_branch, and declaration_path are left entirely to the schema, which only gives titles and defaults. The description does not compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Create'), a resource ('local Git repository'), and decisive qualifiers ('validated', 'without creating a commit'). This clearly separates it from repository_commit and repository_clone in general intent, though it does not explicitly name any sibling tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used to initialize a fresh repository and deliberately avoids committing, but gives no explicit guidance on when to choose it over siblings like government_repository_initialize, repository_initialize, or repository_clone. There are no when-to-use or when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
repository_describeC
Return the authoritative DSL model, templates, and entity-management workflow.
| Name | Required | Description | Default |
|---|---|---|---|
| env_file | No | ||
| workspace_path | No | ||
| government_repository_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits itself. 'Return' suggests a read-only operation, but the description does not mention side effects, file-system or network access, failure modes, or preconditions, leaving the agent without enough behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused sentence with the main verb front-loaded and no filler. It is appropriately concise, though the brevity comes at the expense of missing operational details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The presence of an output schema covers return-value shape, but the description still lacks usage routing and parameter semantics. Since there are no annotations and zero required parameters, the tool is easy to invoke empty, but an agent cannot make informed choices about the optional path parameters or when this tool is the right pick.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention env_file, workspace_path, or government_repository_path or how they affect the returned model. The parameter titles provide some hint, but an agent cannot determine which path parameter to supply or how they relate to the DSL model, templates, and workflow.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Return') and names the resource ('authoritative DSL model, templates, and entity-management workflow'), which distinguishes it from siblings like repository_list or entity_list. However, terms like 'DSL model' and 'entity-management workflow' are not defined further, leaving some ambiguity about the exact returned content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus siblings like repository_validate, repository_status, entity_list, or repository_commit. The word 'authoritative' hints at canonical reference usage, but no explicit condition, alternative, or exclusion is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
repository_diffA
Return working-tree, staged, or revision-to-revision local Git diff.
| Name | Required | Description | Default |
|---|---|---|---|
| staged | No | ||
| base_revision | No | ||
| repository_path | Yes | ||
| target_revision | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the text carries the disclosure burden. 'Return ... diff' communicates a read-only operation and names the input modes, but it does not clarify behavior such as whether untracked files are included, which combination of revisions is required, or what happens with null revisions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with no filler; the verb, resource, and mode options are front-loaded and compact. Every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite an output schema, the tool has no annotations and zero schema description coverage for its four parameters. The one-line description leaves key combinations (staged with revisions, null vs explicit revisions) ambiguous, so it is not complete enough for reliable calling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description only partially compensates: it links 'staged' and 'revision-to-revision' to the corresponding parameters but never explains repository_path, the exact meaning of base_revision vs target_revision, or how staged interacts with the revision parameters. An agent is left to infer parameter semantics from parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Return'), a resource ('local Git diff'), and a clear scope with three modes: working-tree, staged, or revision-to-revision. This distinguishes it from sibling repository tools such as repository_status or repository_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: whenever a Git diff in one of the three states is needed. However, it gives no explicit guidance about when not to use it and does not name any sibling alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
repository_fetchA
Explicitly fetch a configured remote without changing the working tree.
| Name | Required | Description | Default |
|---|---|---|---|
| prune | No | ||
| remote | Yes | ||
| include_tags | No | ||
| repository_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It transparently states that the fetch is explicit and that the working tree will not be changed, a crucial safety-relevant trait. It does not cover authorization, network failure, or which local refs are updated, but it reveals the essential non-destructive-to-worktree behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that states the operation, scope, and behavioral guarantee with no filler. It is as concise as possible while conveying the main distinction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a fetch operation with an output schema and standard Git parameters, the core usage is clear, but the lack of parameter explanations and explicit sibling routing leaves tangible gaps. It is adequate for a simple tool but not fully self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has four parameters at 0% description coverage, and the tool description names none of them. Terms like prune and include_tags are left entirely to the agent to infer, so the description does not compensate for the missing schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'fetch' with the resource 'configured remote' and adds the key scoping constraint 'without changing the working tree.' This clearly distinguishes it from repository_pull and repository_clone. It is not a tautology and names a concrete operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It communicates the primary use case—retrieving remote updates without touching the working tree—which implies it should be preferred over repository_pull when no merge or local file update is desired. However, it does not explicitly name sibling alternatives or state when not to use it, so some inference remains.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
repository_historyA
Return bounded local commit history without contacting a remote.
| Name | Required | Description | Default |
|---|---|---|---|
| revision | No | HEAD | |
| max_count | No | ||
| repository_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It discloses that the operation is local, bounded, and will not contact a remote — meaningful non-obvious traits. It does not explicitly declare read-only/no side effects or error behavior, but 'Return ... history' strongly implies a non-mutating query.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no wasted words. Every phrase — bounded, local, without contacting a remote — adds decision-relevant information for the agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only history tool with an output schema and sensible defaults (revision=HEAD, max_count=20), the description plus schema gives an agent enough to invoke it correctly. Minor gaps like revision format or behavior on an invalid path are not critical for this operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description adds contextual meaning: 'bounded' maps to max_count and 'local' clarifies repository_path refers to a local checkout. It does not explain revision beyond the default HEAD or define exactly what max_count limits, leaving parameter guidance adequate but not thorough.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb 'Return' and a concrete resource 'bounded local commit history', while also stating the key scope constraint: no remote contact. This cleanly distinguishes it from sibling tools like repository_fetch, repository_pull, repository_status, and repository_diff.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states the critical environment constraint — local operation with no remote contact — which tells an agent when to use this tool (local history analysis) and when not to (when fresh remote data is needed). It does not name sibling alternatives explicitly, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
repository_listA
List working repositories so an agent can explicitly select a repository_path.
| Name | Required | Description | Default |
|---|---|---|---|
| env_file | No | ||
| workspace_path | No | ||
| government_repository_path | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'List working repositories' and gives no detail on what qualifies as 'working', whether the call is read-only, how the optional parameters affect the result, or what kind of output to expect. This is a notable transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundant wording. It states the action and the purpose in minimal space, earning every word.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has three optional parameters and no annotations, and the description does not explain their roles, scope, or filtering behavior. While an output schema exists, the definition is still incomplete for an agent deciding how to invoke the tool or interpret 'working repositories'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the three parameters (env_file, workspace_path, government_repository_path). The parameter names give some hint, but the description fails to compensate for the lack of schema-level documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List') and the resource ('working repositories'), and adds the specific purpose of enabling an agent to explicitly select a repository_path. This distinguishes it from siblings like repository_commit or repository_describe, which operate on an already-selected repository.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a clear usage context: call this tool before selecting a repository_path. It does not explicitly mention alternatives or when not to use it, but the stated purpose provides enough guidance for a straightforward list operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
repository_openB
Open and fully validate a local architecture Git repository without network access.
| Name | Required | Description | Default |
|---|---|---|---|
| repository_path | Yes | ||
| declaration_path | No | architecture.yaml |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'fully validate' and 'without network access', which implies a read-only, offline validation, but it does not state whether the operation is safe (non-destructive), what happens on invalid repositories, or whether it modifies anything. The lack of explicit behavioral details is a significant gap for an open/validate operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that states the core action and a critical constraint (no network access). It is concise, front-loaded, and free of fluff. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema (not shown), which may explain return values. For a tool that opens and validates a repository, the description lacks details on failure behavior, required permissions, or the scope of validation (e.g., does it check commit history, file integrity?). With no annotations, this leaves some gaps for an agent to use it correctly, but the core purpose is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the parameter meaning. It does not explicitly describe the purpose of repository_path or declaration_path, but the context 'local architecture Git repository' implies that repository_path is the path to the repository, and 'architecture.yaml' as a default suggests declaration_path is the architecture file to validate. However, this is inferred, not stated, so the description adds some value but could be more explicit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool opens and fully validates a local architecture Git repository without network access. It specifies the resource (local architecture Git repository) and the action (open and validate), but does not explicitly distinguish it from sibling tools like repository_validate, which may cause some ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for local repositories without network access, but it does not explicitly state when to use this tool versus siblings like repository_validate, repository_clone, or repository_fetch. There is no guidance on when this tool should be preferred or avoided, and no mention of alternative tools for different scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
repository_publishA
Validate and explicitly push current HEAD without force or implicit upstream.
| Name | Required | Description | Default |
|---|---|---|---|
| remote | Yes | ||
| remote_branch | Yes | ||
| repository_path | Yes | ||
| declaration_path | No | architecture.yaml |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses that the tool validates before pushing, pushes explicitly, and avoids force and implicit upstream. However, it does not disclose what happens on validation failure, whether the push is a fast-forward-only push, or what the output schema contains. The description adds some behavioral context but not full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the action ('Validate and explicitly push') and immediately states the key constraints ('without force or implicit upstream'). Every word earns its place; there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 4 parameters, no parameter descriptions, no annotations, and an output schema. The description explains the core behavior but leaves gaps: what does declaration_path do, what does validation check, what is the output shape, and what happens if the remote branch is behind? For a push-like mutation tool, more context would be needed for fully confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does not explain any parameter semantics beyond the tool's general behavior. The parameter names (repository_path, remote, remote_branch, declaration_path) are fairly self-explanatory, but the description adds no detail about what declaration_path is used for or how remote_branch is interpreted. Baseline 3 is appropriate because the schema provides names and types but no descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Validate and explicitly push'), a resource ('current HEAD'), and two explicit exclusions ('without force or implicit upstream'). This clearly distinguishes it from sibling tools like repository_commit, repository_pull, and repository_fetch. An agent can tell what this tool does and what it deliberately avoids.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for publishing the current branch to a named remote branch, and the exclusions ('without force or implicit upstream') signal when not to use it. It does not explicitly name alternatives like repository_pull or repository_commit, but the context is clear enough for an agent to select it for a push-like operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
repository_pullA
Fetch and integrate only a validated fast-forward into a clean local branch.
| Name | Required | Description | Default |
|---|---|---|---|
| remote | Yes | ||
| remote_branch | Yes | ||
| repository_path | Yes | ||
| declaration_path | No | architecture.yaml |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclose key behavioral guardrails: integration only happens for a validated fast-forward and requires a clean branch. However, it does not state side effects, how validation is performed, or what happens when preconditions fail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with no filler, and the most important scoping condition is front-loaded. Every part contributes to understanding the operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The core semantics are clear, but this is a 4-parameter Git operation with no annotation support, zero parameter descriptions, and a subtle declaration_path default that is never explained. The description is too terse for an agent to know what 'validated' means or how to supply parameters correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not name or explain any of the four parameters (repository_path, remote, remote_branch, declaration_path). 'Fetch and integrate' weakly implies the role of remote and remote_branch, but the important declaration_path default is left undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Uses a specific verb+resource: 'Fetch and integrate ... into a clean local branch' and adds a hard scope condition 'only a validated fast-forward' that clearly separates it from siblings like repository_fetch (fetch-only) and repository_commit. The purpose is unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'only a validated fast-forward into a clean local branch' gives clear context for when this tool is appropriate and implies non-fast-forward or dirty-branch cases are out of scope. It does not explicitly name alternative tools, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
repository_remotesA
List local Git remotes while redacting credential-bearing URL components.
| Name | Required | Description | Default |
|---|---|---|---|
| repository_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explicitly discloses the redaction behavior, which is a meaningful safety-relevant trait beyond a simple 'list' operation. It does not mention error behavior for invalid paths or whether the command requires network access, but the redaction disclosure is a strong positive signal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the primary action and resource, then adds the critical redaction qualifier. Every word earns its place; there is no filler or repetition of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only listing tool with one parameter and an output schema present, the description is nearly complete. The redaction behavior is disclosed, and the output schema presumably documents the return shape. The only minor gap is the lack of explicit guidance on what happens when repository_path is invalid or not a Git repository, but this is not critical for a listing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the single parameter. The description names the resource ('local Git remotes') but does not explicitly explain that repository_path is the path to the local repository whose remotes should be listed. However, with only one parameter and a clear tool name, the meaning is reasonably inferable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('local Git remotes') and adds a distinctive behavioral qualifier ('redacting credential-bearing URL components'). This clearly distinguishes it from sibling tools like remote_configure, repository_clone, and repository_fetch, which involve different operations on remotes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a read-only inspection use case for local remotes, which is clear enough to differentiate from configuration or network operations. However, it does not explicitly state when to prefer this over alternatives like remote_configure or repository_status, nor does it mention any prerequisites (e.g., must be inside a valid repository).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
repository_statusA
Return local Git status without fetch, pull, or other network operations.
| Name | Required | Description | Default |
|---|---|---|---|
| repository_path | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and discloses the key behavioral trait: no network operations are performed. This signals a read-only, local operation, though it does not mention error behavior for non-repository paths or any implicit side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the action and resource, then adds the crucial network-avoidance constraint. Every word earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter local inspection tool with an output schema, the description is largely complete: it states the operation and the important safety boundary. Minor ambiguity about path parameter expectations is acceptable given the descriptive property name.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no parameter-level meaning beyond the property name 'repository_path'. The name implies a local path, but the description does not clarify path format, absolute vs relative, or repository constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Return local Git status'. The qualifier 'local' and the explicit exclusion of 'fetch, pull, or other network operations' clearly differentiate it from siblings like repository_fetch, repository_pull, and repository_clone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly communicates that this tool is for local-only status inspection and should not be relied on for network operations. It does not explicitly name an alternative for when remote synchronization is needed, so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
repository_validateC
Validate the DSL, templates, paths, matching rules, and local entity files.
| Name | Required | Description | Default |
|---|---|---|---|
| repository_path | Yes | ||
| declaration_path | No | architecture.yaml |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, but it only lists validation targets. It does not disclose whether validation modifies files, requires credentials or a working tree, or merely reports diagnostics, and it never states that the operation is non-mutating.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler. Every word contributes to the scope of the operation, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and the target list is explicit, so an agent knows what the tool acts on. However, with no annotations and no usage context or side-effect disclosure, the description is only minimally viable rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not map its listed artifacts to repository_path or declaration_path. declaration_path defaults to architecture.yaml but its meaning is left unexplained, so the agent gets little help beyond the raw parameter names and default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Validate' and names a clear resource scope: DSL, templates, paths, matching rules, and local entity files. This distinguishes it from sibling tools like repository_commit or repository_describe by the action itself, though it does not explicitly call out any sibling it is not.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to run validation (e.g., before repository_commit) or when not to use it. There are no exclusions or comparisons to alternatives, so an agent must infer use from the tool name and single verb.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
26 tool updates
v0.1.0- First observed
branch_create - First observed
branch_switch - First observed
entity_create - First observed
entity_delete - First observed
entity_list - First observed
entity_read - First observed
entity_read_related - First observed
entity_search - First observed
entity_update - First observed
government_repository_initialize - First observed
remote_configure - First observed
repository_branches - First observed
repository_clone - First observed
repository_commit - First observed
repository_create - First observed
repository_describe - First observed
repository_diff - First observed
repository_fetch - First observed
repository_history - First observed
repository_list - First observed
repository_open - First observed
repository_publish - First observed
repository_pull - First observed
repository_remotes - First observed
repository_status - First observed
repository_validate
TDQS
Scored across 26 tools
Most tools target clearly distinct resources and actions, and entity CRUD is well separated from Git repository operations. However, repository_create, repository_open, repository_validate, and government_repository_initialize have overlapping lifecycle responsibilities that could cause an agent to mis-select.
Tool names are uniformly snake_case and mostly follow a <domain>_<operation> pattern, but operations are inconsistently verbs or nouns (repository_branches vs branch_create), and branch/remote tools break the repository_ prefix. The style is readable but not a single predictable convention.
With 26 tools, the surface is above the clearly heavy threshold and includes several closely related lifecycle operations that could be consolidated, such as validate/open, commit/publish, and status/list. The broad Git-plus-entity scope explains some size, but the count still feels excessive for an MCP server.
The tool set covers repository creation/open/validation, local Git workflows, remotes, and full entity CRUD plus search, so core workflows have no obvious dead ends. Missing branch deletion/merge, remote removal, and tag operations are minor gaps agents can generally work around.
Maintenance
Related MCP Connectors
Git-backed platform for skills, tools, and context for AI agents
AI-native git hosting — repos, PRs, issues, CI gates, and AI code review over MCP (60 tools).
Git-native policy layer for AI agents: check_action verdicts against rules approved via PR.
Local-first, governed memory and session continuity for AI coding agents. No cloud, no telemetry.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to read and write a local-first knowledge base of plain markdown files in git, with governance gates for safe, hash-anchored edits.1Apache 2.0
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to read, modify, and build from architecture models, keeping the model as the source of truth for intent and synchronized with code.25 npm115BSD 3-Clause
- FlicenseBqualityBmaintenanceBridges local development environments with the Engineering Intelligence Platform (EIP), enabling AI coding agents to manage SSOT, generate implementation/test/security plans, and synchronize architectural knowledge.5-
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to work with administrator-approved Git repositories on a self-hosted VPS, supporting cloning, file edits, and full Git operations within persistent workspaces.European Union Public 1.2