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.
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
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。