alterios-mcp

alterios-mcp

A production-ready MCP server for inventory and interaction with Alterios/LIMS instances, enabling project listing, readonly data queries via REST and script-services, and controlled write operations.

Category
访问服务器

README

alterios-mcp

Готовый к эксплуатации MCP-сервер и набор инструментов инвентаризации для экземпляров Alterios/LIMS.

Репозиторий развивается как полноценный операционный MCP, а не как узкий MVP. Базовый контракт:

  • Один MCP-профиль соответствует одному экземпляру Alterios: base URL, метод авторизации, токен, шаблон endpoint для скриптов и таймауты.
  • Один экземпляр Alterios может содержать много проектов.
  • Инструменты, завязанные на проект, принимают явный project_id. project_id из переменных окружения - только удобное значение по умолчанию, а не идентичность профиля.
  • Инструменты уровня экземпляра, например инвентаризация проектов, не должны требовать project_id.
  • Секреты читаются из переменных окружения или приватного dotenv-файла, не коммитятся в репозиторий и не возвращаются инструментами.

Текущие Инструменты

  • alterios_config - проверка профиля и конфигурации с редактированием секретов и списками недостающих значений.
  • alterios_list_profiles - список настроенных экземпляров Alterios с редактированием секретов, выбранным профилем и missing-check по каждому профилю.
  • alterios_list_projects - инвентаризация проектов на уровне экземпляра.
  • alterios_service_catalog - каталог известных script-service функций с метками чтения/записи, уровнями риска, подсказками по аргументам и примерами.
  • alterios_call_readonly_service - защищенные вызовы известных script-service функций только для чтения, например getTasks, getContents и getViewData, если настроен совместимый внешний сервисный endpoint.
  • alterios_rest_get - безопасные REST-чтения по маршрутам /api/....
  • alterios_list_objects - инвентаризация типовых объектов Alterios через проверенные listandcount маршруты.
  • alterios_view_data_simplified - проверочное чтение /api/views/v2/get-data-simplified.
  • alterios_report_full - чтение полного отчета через кодированный маршрут /api/reports/full/{filter}.
  • alterios_get_view, alterios_view_entities и alterios_view_fields_populated - чтение объекта представления, его join/entity-конфигурации и заполненных метаданных полей.
  • alterios_get_form - чтение полной формы по ID.
  • alterios_list_fields - инвентаризация полей типа контента с опциональными фильтрами content_type_id или field_id.
  • alterios_list_groups - инвентаризация групп проекта через /api/groups.
  • alterios_file_metadata - чтение метаданных файлов через /api/file/list.
  • alterios_list_comments - инвентаризация комментариев через /api/v1/comments.
  • alterios_add_comment - создание комментария через /api/v1/comments с entity=any по умолчанию для совместимости с comments_list, dry-run, write-gate и readback.
  • alterios_view_data - чтение /api/views/v2/get-data с опциональным контекстом content_id, массивом data_id и user_filters.
  • alterios_discover_readonly - живая матрица маршрутов только для чтения.
  • alterios_add_comment, alterios_call_write_service и alterios_rest_write - отключены, пока явно не выставлен ALTERIOS_MCP_ALLOW_WRITE=1; по умолчанию возвращают dry-run audit и не выполняют запись.
  • alterios_execute_manual_script - запуск /api/scripts/execute-manual по UUID скрипта; также по умолчанию работает как dry-run и требует ALTERIOS_MCP_ALLOW_WRITE=1 для выполнения.

Инструменты уровня проекта следует вызывать с project_id, когда целевой проект известен из URL, UI-сессии или контекста задачи. Настроенный ALTERIOS_<PROFILE>_PROJECT_ID - только значение по умолчанию для повторяющейся работы с известным проектом.

Установка

git clone https://github.com/<owner>/alterios-mcp.git
cd alterios-mcp
python -m venv .venv
.\.venv\Scripts\python -m pip install -e ".[dev]"

Настройка Alterios

Используйте локальный приватный .env; не коммитьте его.

Copy-Item .env.example .env

Пример профиля для одного экземпляра Alterios:

ALTERIOS_PROFILE=primary
ALTERIOS_PROFILES=primary,secondary

ALTERIOS_PRIMARY_BASE_URL=https://alterios.example.local
ALTERIOS_PRIMARY_API_TOKEN=put-token-here

# Необязательное значение по умолчанию. Для инструментов уровня проекта лучше передавать project_id явно.
ALTERIOS_PRIMARY_PROJECT_ID=put-optional-default-project-id-here

ALTERIOS_PRIMARY_ENDPOINT_TEMPLATE={base_url}/api/scripts/execute-manual
ALTERIOS_PRIMARY_BODY_STYLE=manual_script
ALTERIOS_PRIMARY_AUTH_HEADER=x-api-key
ALTERIOS_PRIMARY_AUTH_SCHEME=
ALTERIOS_PRIMARY_TIMEOUT_SECONDS=20

Несколько экземпляров Alterios можно держать в одном приватном dotenv-файле. Добавьте второй профиль с собственным префиксом:

ALTERIOS_SECONDARY_BASE_URL=https://alterios-secondary.example.local
ALTERIOS_SECONDARY_API_TOKEN=put-token-here
ALTERIOS_SECONDARY_PROJECT_ID=put-optional-default-project-id-here
ALTERIOS_SECONDARY_ENDPOINT_TEMPLATE={base_url}/api/scripts/execute-manual
ALTERIOS_SECONDARY_BODY_STYLE=manual_script
ALTERIOS_SECONDARY_AUTH_HEADER=Authorization
ALTERIOS_SECONDARY_AUTH_SCHEME=Bearer
ALTERIOS_SECONDARY_TIMEOUT_SECONDS=20

Профили можно перечислить явно через ALTERIOS_PROFILES или оставить автодетект по переменным вида ALTERIOS_<PROFILE>_*. Проверка всех настроенных экземпляров без сетевых вызовов:

python -m alterios_mcp.discovery --profiles --json

Чтобы посмотреть список профилей с другим выбранным экземпляром, не меняя dotenv, передайте профиль явно:

python -m alterios_mcp.discovery --profiles --profile secondary --json

Для конкретного экземпляра используйте --profile в CLI или аргумент profile в MCP tool-е. Для конкретного проекта внутри выбранного экземпляра передавайте project_id явно.

BASE_URL, API_TOKEN и PROJECT_ID намеренно изолированы по профилю. Если выбран профиль, сервер не делает скрытый переход на другой экземпляр или проект. Профильные настройки транспорта (AUTH_HEADER, AUTH_SCHEME, ENDPOINT_TEMPLATE, BODY_STYLE, TIMEOUT_SECONDS) также можно задавать с тем же префиксом ALTERIOS_<PROFILE>_...; при их отсутствии применяются обычные дефолты клиента или явно заданные общие значения.

Чтобы использовать уже существующую приватную конфигурацию и не копировать секреты в этот репозиторий, задайте ALTERIOS_DOTENV_PATH вне репозитория:

$env:ALTERIOS_DOTENV_PATH = "C:\path\to\private\alterios.env"
python -m alterios_mcp.discovery --profile primary --projects --json

В конфиг Codex MCP можно передать тот же путь к приватному dotenv:

[mcp_servers.alterios]
command = "C:\\path\\to\\alterios-mcp\\.venv\\Scripts\\python.exe"
args = ["-m", "alterios_mcp.server"]
startup_timeout_sec = 60
tool_timeout_sec = 120

[mcp_servers.alterios.env]
ALTERIOS_DOTENV_PATH = "C:\\path\\to\\private\\alterios.env"

Инвентаризация

Список проектов выбранного экземпляра Alterios:

python -m alterios_mcp.discovery --profile primary --projects --json

Проверка конкретного проекта с явным project_id:

python -m alterios_mcp.discovery --profile primary `
  --project-id put-target-project-id-here `
  --json

Сохранение воспроизводимого артефакта инвентаризации:

New-Item -ItemType Directory -Force artifacts\alterios-mcp | Out-Null
python -m alterios_mcp.discovery --profile primary `
  --project-id put-target-project-id-here `
  --json > artifacts\alterios-mcp\live-readonly-matrix.json

Сканирование существующего репозитория Alterios-автоматизации на известные API пути и кандидаты в script-service функции:

python -m alterios_mcp.static_scan C:\path\to\alterios-automation `
  --json > artifacts\alterios-mcp\static-calls.json

Статический сканер по умолчанию пропускает сгенерированные и тяжелые рабочие директории: artifacts, data, outputs, site и work. Используйте --include-generated только когда нужно намеренное полное медленное сканирование.

Снятие Browser/UI Вызовов

Для снятия фактических вызовов из веб-интерфейса Alterios используйте анализатор HAR/JSON-событий. Он не выполняет запросы к Alterios сам: только читает сохраненный сетевой дамп, выкидывает не-API шум, редактирует секреты и классифицирует маршруты по риску.

python -m alterios_mcp.ui_flow .\capture.har `
  --profile primary `
  --project-id put-target-project-id-here `
  --scenario content-form-open `
  --json > artifacts\alterios-mcp\ui-flow-content-form-open.json

Команда доступна и как console script:

alterios-ui-flow .\capture.har --scenario content-form-open --json

Неизвестные POST, PUT, PATCH и DELETE маршруты считаются write-like и попадают в write-gate. Известные read-only исключения, например POST /api/views/v2/get-data, описаны явно. Подробный workflow и правила редактирования артефактов описаны в docs/browser-ui-discovery.md.

Запуск MCP-Сервера

python -m alterios_mcp.server

Включайте режим записи только для проверенного безопасного профиля и проекта:

$env:ALTERIOS_MCP_ALLOW_WRITE = "1"

Перед вызовами, которые могут менять состояние, запустите alterios_config, проверьте выбранный профиль и передайте project_id явно. Поэтапный рабочий план описан в docs/roadmap.md, стратегия инвентаризации - в docs/discovery-plan.md.

Политика controlled writes описана в docs/controlled-writes.md. Для реального выполнения write-capable tool-а нужно одновременно:

  • передать явные profile и project_id;
  • включить ALTERIOS_MCP_ALLOW_WRITE=1;
  • передать dry_run=false;
  • для destructive операций дополнительно передать allow_destructive=true.

Управление проектом ведется в docs/project-status.md. Правила мультиагентной работы и контрольные точки PM описаны в docs/project-management.md. Каталог runtime-сервисов скриптов описан в docs/script-runtime-catalog.md. Карта сущностей Alterios, возможных обращений, настроек и порядка write-практики описана в docs/alterios-entity-surface-catalog.md. Количество покрытых методов, route/method patterns и статусы live/cataloged ведутся в docs/alterios-method-coverage.md.

Practice-Сценарии

Для тестового проекта можно держать отдельный воспроизводимый practice chain: создать или проверить sandbox content type, representative fields, table view, add/edit/main forms, menu group и одну sandbox-запись. В публичном README используются только placeholders; конкретный локальный скрипт и проект держите в приватной документации или локальных runbook-файлах. По умолчанию команда должна работать как dry-run:

$env:ALTERIOS_DOTENV_PATH = "C:\path\to\private\alterios.env"
$env:PYTHONPATH = "src"
python scripts\<sandbox-practice-script>.py `
  --profile sandbox `
  --project-id put-sandbox-project-id-here `
  --json

Для выполнения записи нужен явный write-gate:

$env:ALTERIOS_MCP_ALLOW_WRITE = "1"
python scripts\<sandbox-practice-script>.py `
  --profile sandbox `
  --project-id put-sandbox-project-id-here `
  --execute `
  --json

Важно: /api/scripts/execute-manual выполняет сохраненные Alterios-скрипты по UUID. Этот endpoint не вызывает имена runtime-сервисов вроде getTasks. Имена runtime-сервисов остаются в каталоге до тех пор, пока совместимый внешний сервисный endpoint не будет настроен и проверен.

Проверка

python -m pytest

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选