Skip to main content
Glama
limars874
by limars874

Coordination MCP

Coordination MCP — это лёгкий сервис общего рабочего состояния для нескольких ИИ-участников. Через MCP он предоставляет персистентные Ticket, неизменяемые Update и текстовые Artifact, позволяя ChatGPT, локальным ИИ и кодинг-агентам в одном Scope обмениваться, инкрементально синхронизировать и восстанавливать рабочий контекст.

Возможности V0.1

  • Ticket: сохраняет текущее состояние работы; можно обновлять title, status, artifact_ids и meta.

  • Update: сохраняет уже произошедшие факты, находки, решения или результаты; в рамках каждого Scope назначается монотонно возрастающий seq.

  • Artifact: хранит неизменяемое общее текстовое содержимое, например Markdown, логи или длинные документы.

  • Все объекты получают глобально уникальный ID, назначаемый сервером.

  • Ссылки на Ticket и Artifact должны принадлежать одному и тому же Scope.

V0.1 не включает аутентификацию, движок рабочих процессов, подтверждение очереди, граф связей, wake-up-уведомления и поддержку бинарных артефактов.

Related MCP server: Shared Memory MCP Server

Рекомендуемые сценарии использования

  • Ticket представляет текущее изменяемое состояние постоянной работы; это не журнал событий.

  • Update представляет неизменяемые события, которые уже произошли в хронологии работы: например, запрос, вывод, решение или результат.

  • Artifact представляет неизменяемое длинное текстовое содержимое; длинные ревью, спецификации или логи кладите в Artifact, а не упаковывайте в Update; связь задаётся через artifact_ids.

  • Поле created_by должно содержать стабильную метку участника, не меняющуюся между запусками и между агентами, например chatgpt или pi-local-agent. Не используйте каждый раз случайные или изменяющиеся имена — так принадлежность записей на таймлайн-панели остаётся понятной. Поле используется для определения provenance, а не для authentication.

Типичный цикл ревью выглядит так: локальный агент через Update запрашивает ревью → ChatGPT сохраняет полный ревью в Artifact и через Update возвращает краткое резюме и artifact_ids → локальный агент исправляет код и добавляет итоговый Update → ChatGPT делает повторное ревью.

Быстрый старт

Требования: Node.js 24+.

cd /path/to/coordination-mcp
npm install
npm run build
node dist/main.js

Сервис по умолчанию слушает:

http://127.0.0.1:3000/mcp

Также можно запустить dev-версию напрямую:

npm run dev

Сервис привязывается только к 127.0.0.1. Если нужен доступ для удалённого ChatGPT, открывайте MCP endpoint через безопасный туннель и не выставляйте Node.js-сервис напрямую в публичный интернет. В V0.1 аутентификации пока нет.

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

Приоритет конфигурации (от низкого к высокому):

代码默认值 < config/default.yml < ~/.coordination-mcp/config.yml < --profile < 环境变量

Пользовательская конфигурация

Создайте пользовательскую конфигурацию:

mkdir -p ~/.coordination-mcp
$EDITOR ~/.coordination-mcp/config.yml

Пример:

port: 43721
allowedHosts:
  - 127.0.0.1
  - localhost
# dataDirectory: /absolute/path/to/coordination-data

~/.coordination-mcp/config.yml необязателен и не создаётся сервисом автоматически. Если dataDirectory не задан, по умолчанию используется:

~/.coordination-mcp/data

Рекомендуется указывать dataDirectory абсолютным путём. Относительный путь будет резолвиться относительно current working directory на момент запуска процесса.

Profile

Путь профиля резолвится относительно current working directory; после указания файл должен существовать:

node dist/main.js --profile config/local.yml
node dist/main.js --profile=/absolute/path/to/local.yml

Профиль перекрывает только те поля, которые в нём объявлены; не объявленные в нём поля продолжают наследоваться из предыдущей конфигурации.

Переменные окружения

PORT=43721 \
COORDINATION_DATA_DIR=/absolute/path/to/data \
COORDINATION_ALLOWED_HOSTS=127.0.0.1,localhost \
node dist/main.js

Поддерживаемые переменные окружения:

Переменная

Описание

PORT

HTTP-порт, диапазон от 0 до 65535

COORDINATION_DATA_DIR

Каталог данных

COORDINATION_ALLOWED_HOSTS

Разрешённые Host, через запятую

Конфигурационный файл считывается только при запуске сервиса; после его изменения нужно перезапустить main.js.

MCP Tools

Сервис предоставляет следующие 8 tools через POST /mcp:

Tool

Назначение

list_tickets

список Tickets в Scope

get_ticket

чтение одного Ticket

create_ticket

создание Ticket

update_ticket

обновление изменяемых полей Ticket

list_updates

инкрементальное чтение Updates по seq

add_update

добавить неизменяемый Update

create_artifact

создать неизменяемый текстовый Artifact

get_artifact

чтение одного Artifact

Пример инициализации MCP

curl -N \
  -H 'Accept: application/json, text/event-stream' \
  -H 'Content-Type: application/json' \
  -H 'mcp-protocol-version: 2025-03-26' \
  -X POST http://127.0.0.1:3000/mcp \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {
      "protocolVersion": "2025-03-26",
      "capabilities": {},
      "clientInfo": {
        "name": "manual-client",
        "version": "0.1.0"
      }
    }
  }'

Пример создания Ticket

Пример параметров для tools/call:

{
  "name": "create_ticket",
  "arguments": {
    "scope": "coordination-mcp",
    "title": "Review the MCP integration",
    "created_by": "local-ai",
    "status": "open",
    "meta": {
      "priority": "high"
    }
  }
}

Хранение данных

Каталог данных по умолчанию создаётся по требованию; только старт сервиса или выполнение операций чтения каталог данных не создают. При первой записи Ticket, Update или Artifact создаётся структура, похожая на следующую:

~/.coordination-mcp/
├── config.yml                 # 可选用户配置
└── data/
    └── scopes/
        └── <base64url-scope>/
            ├── tickets/
            │   └── T-*.json
            ├── updates.jsonl
            └── artifacts/
                └── A-*.json
  • Для каждого Ticket и Artifact используется отдельный pretty-printed JSON-файл.

  • Updates одного Scope хранятся в файле формата JSONL с append-only записью; при чтении игнорируется последняя повреждённая хвостовая запись без перевода строки, которую невозможно разобрать, но повреждение JSON в записях, корректно завершённых переводом строки, не скрывается.

  • Новые каталоги создаются с правами 0700, новые файлы данных — с правами 0600.

  • V0.1 использует мьютекс на Scope внутри одного процесса; межпроцессные блокировки и распределённое развёртывание не поддерживаются.

Разработка и проверка

npm test
npm run check
npm run build

Документация проекта

Coordination MCP — это лёгкий сервис общего рабочего состояния для нескольких ИИ-участников. Через MCP он предоставляет персистентные Ticket, неизменяемые Update и текстовые Artifact, позволяя ChatGPT, локальным ИИ и кодинг-агентам в одном Scope делиться, инкрементально синхронизировать и восстанавливать рабочий контекст.

Возможности V0.1

  • Ticket: сохраняет текущее состояние работы; можно обновлять title, status, artifact_ids и meta.

  • Update: сохраняет уже произошедшие факты, находки, решения или результаты; в рамках каждого Scope им назначается монотонно возрастающий seq.

  • Artifact: хранит неизменяемое общее текстовое содержимое, например Markdown, логи или длинные документы.

  • Все объекты получают глобально уникальный ID, назначаемый сервером.

  • Ссылки на Ticket и Artifact должны принадлежать одному и тому же Scope.

V0.1 не включает аутентификацию, движок рабочих процессов, подтверждение очереди, граф связей, wake-up-уведомления и поддержку бинарных артефактов.

Рекомендуемые сценарии использования

  • Ticket представляет текущее изменяемое состояние текущей работы; это не журнал событий.

  • Update представляет неизменяемые события, которые уже произошли в хронологии работы: например, request, finding, decision или result.

  • Artifact представляет неизменяемое длинное текстовое содержимое; длинные review, спецификации или логи следует помещать в Artifact, а не втискивать в Update; связь задаётся через artifact_ids.

  • В created_by следует использовать стабильную метку участника, которая не меняется между запусками и между агентами, например chatgpt или pi-local-agent, а не случайные или изменяющиеся имена — это сохраняет ясную принадлежность записей в хронологии. Поле используется для определения provenance, а не для authentication.

Типичный цикл review: локальный ИИ-агент запрашивает review через Update → ChatGPT сохраняет полный review как Artifact и возвращает через Update краткое резюме и artifact_ids → локальный ИИ-агент исправляет код и добавляет итоговый Update → ChatGPT повторно делает review.

Быстрый старт

Требования: Node.js 24+.

cd /path/to/coordination-mcp
npm install
npm run build
node dist/main.js

Сервис по умолчанию слушает:

http://127.0.0.1:3000/mcp

Также можно запустить dev-версию напрямую:

npm run dev

Сервис привязывается только к 127.0.0.1. Если нужен доступ для удалённого ChatGPT, следует открывать MCP endpoint через безопасный туннель и не выставлять Node.js service напрямую в публичную сеть. В V0.1 аутентификация пока не предусмотрена.

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

Приоритет конфигурации (от низкого к высокому):

代码默认值 < config/default.yml < ~/.coordination-mcp/config.yml < --profile < 环境变量

Пользовательская конфигурация

Создайте пользовательскую конфигурацию:

mkdir -p ~/.coordination-mcp
$EDITOR ~/.coordination-mcp/config.yml

Пример:

port: 43721
allowedHosts:
  - 127.0.0.1
  - localhost
# dataDirectory: /absolute/path/to/coordination-data

~/.intro-config.yml является необязательным и не создаётся сервисом автоматически. Если dataDirectory не задан, по умолчанию используется:

~/.coordination-mcp/data

Рекомендуется указывать dataDirectory в виде абсолютного пути. Относительный путь будет разрешаться относительно current working directory на момент запуска процесса.

Profile

Путь к профилю разрешается относительно current working directory; при указании файл должен существовать:

node dist/main.js --profile config/local.yml
node dist/main.js --profile=/absolute/path/to/local.yml

Профиль переопределяет только те поля, которые в нём объявлены; не объявленные поля продолжают наследовать из предыдущей конфигурации.

Переменные окружения

PORT=43721 \
COORDINATION_DATA_DIR=/absolute/path/to/data \
COORDINATION_ALLOWED_HOSTS=127.0.0.1,localhost \
node dist/main.js

Поддерживаемые переменные окружения:

Переменная

Описание

PORT

HTTP-порт, диапазон от 0 до 65535

COORDINATION_DATA_DIR

Каталог данных

COORDINATION_ALLOWED_HOSTS

Разрешённые Host, через запятую

Конфигурационный файл считывается только при запуске сервиса; после изменения его нужно перезапускать main.js.

MCP Tools

Сервис предоставляет следующие 8 tools через POST /mcp:

Tool

Назначение

list_tickets

список Tickets в указанном Scope

get_ticket

чтение одного Ticket

create_ticket

создание Ticket

update_ticket

обновление изменяемых полей Ticket

list_updates

инкрементальное чтение Updates по seq

add_update

добавление неизменяемого Update

create_artifact

создание неизменяемого текстового Artifact

get_artifact

чтение одного Artifact

Пример инициализации MCP

curl -N \
  -H 'Accept: application/json, text/event-stream' \
  -H 'Content-Type: application/json' \
  -H 'mcp-protocol-version: 2025-03-26' \
  -X POST http://127.0.0.1:3000/mcp \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {
      "protocolVersion": "2025-03-26",
      "capabilities": {},
      "clientInfo": {
        "name": "manual-client",
        "version": "0.1.0"
      }
    }
  }'

Пример создания Ticket

Пример параметров для tools/call:

{
  "name": "create_ticket",
  "arguments": {
    "scope": "coordination-mcp",
    "title": "Review the MCP integration",
    "created_by": "local-ai",
    "status": "open",
    "meta": {
      "priority": "high"
    }
  }
}

Хранение данных

Каталог данных по умолчанию создаётся по требованию; только запуск сервиса или выполнение операций чтения не создают каталог данных. При первой записи Ticket, Update или Artifact создаётся структура, подобная следующему формату:

~/.coordination-mcp/
├── config.yml                 # 可选用户配置
└── data/
    └── scopes/
        └── <base64url-scope>/
            ├── tickets/
            │   └── T-*.json
            ├── updates.jsonl
            └── artifacts/
                └── A-*.json
  • Ticket и Artifact хранятся в отдельных pretty-printed JSON-файлах.

  • Updates одного Scope хранятся в append-only JSONL-файле; при чтении игнорируется последняя повреждённая запись без перевода строки, которую невозможно разобрать, но повреждение JSON в записях, завершённых полным переводом строки, не скрывается.

  • Новые каталоги создаются с правами 0700, новые файлы данных — с правами 0600.

  • V0.1 использует мьютекс на Scope в рамках одного процесса; не поддерживаются межпроцессные блокировки или распределённое развёртывание.

Разработка и проверка

npm test
npm run check
npm run build

Документация проекта

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

Maintenance

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

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Durable agent-to-agent handoffs and shared scratchpad for multi-agent workflows.

  • Cross-agent artifact workspace with provenance across Claude Code, Codex, Cursor, LangGraph.

  • Persistent docs and memory for AI agents — read, write, organize & search a shared workspace.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/limars874/coordination-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server