Files
pi-kit/docs/mcp.md
Aleksey Shakhmatov 2995823a0f feat(mcp): scaffold Jira/Confluence/GitLab MCP bridge (disabled by default)
Pi has no built-in MCP; this adds a bridge extension + declarative registry.
- config/mcp.json: jira/confluence/gitlab servers, all enabled:false; URLs from
  company.json ({config:...}), tokens from env ({env:...}) — nothing hardcoded
- extensions/mcp-bridge.ts: resolves env templates, and for enabled servers
  connects via MCP SDK (dynamic import) and registers their tools; /mcp-status
  command; graceful no-op when disabled or SDK absent
- docs/mcp.md: how to enable, prerequisites (VPN, tokens, uvx/npx, SDK), security
- package.json: @modelcontextprotocol/sdk as optionalDependency; ignore package-lock

Verified offline: extension loads, /mcp-status lists 3 servers (disabled), env
resolver builds gitlab API URL from company.json gitHost + GITLAB_TOKEN. Live
connect needs VPN + a token + authorization to run the server package.
2026-07-16 14:33:21 +03:00

48 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# MCP-интеграции (Jira / Confluence / GitLab)
Pi не имеет встроенного MCP — его добавляет расширение `extensions/mcp-bridge.ts`. Оно читает
`config/mcp.json`, поднимает **включённые** серверы (stdio) и регистрирует их инструменты в pi.
**По умолчанию все серверы выключены.** Статус — команда `/mcp-status`.
## Как устроено
- Серверы объявлены в `config/mcp.json`. URL берутся из `config/company.json` (`{config:trackerUrl}`,
`{config:docsUrl}`, `{config:gitHost}`), токены — из окружения (`{env:JIRA_TOKEN}` и т.д.).
В коде и конфиге нет захардкоженных адресов и секретов.
- Bridge подставляет значения при запуске сервера. Если URL/токен не заданы — сервер помечается
`missing-env` и пропускается.
## Предпосылки (нужны только при включении)
- **VPN** и доступ к `jira.mvideo.ru` / `wiki.mvideo.ru` / `gitlab.tech.mvideo.ru`.
- MCP SDK: `npm i @modelcontextprotocol/sdk` в пакете (в `optionalDependencies`; ставится только
при включении MCP).
- Лаунчеры серверов: `uvx` (для `mcp-atlassian`) и/или `npx` (для `@zereight/mcp-gitlab`).
- Токены в окружении (см. `~/.config/pi-kit/env.sh`).
## Включение
1. В `config/mcp.json` поставь `"enabled": true` нужному серверу.
2. Задай токен в окружении:
- Jira: `JIRA_TOKEN` (PAT Server/DC).
- Confluence: `CONFLUENCE_TOKEN` (PAT Server/DC).
- GitLab: `GITLAB_TOKEN` (scope `api`).
3. Установи SDK (если ещё нет): `npm i @modelcontextprotocol/sdk`.
4. Перезапусти `pi`. Проверь: `/mcp-status``connected` и число tools.
## Серверы
| Сервер | Пакет | URL из | Токен |
|---|---|---|---|
| `jira` | `mcp-atlassian` (uvx) | `trackerUrl` | `JIRA_TOKEN` |
| `confluence` | `mcp-atlassian` (uvx) | `docsUrl` | `CONFLUENCE_TOKEN` |
| `gitlab` | `@zereight/mcp-gitlab` (npx) | `gitHost``/api/v4` | `GITLAB_TOKEN` |
<!-- TODO: сверить с корпоративной политикой — какие MCP-серверы одобрены, разрешён ли uvx/npx
на машинах, или нужен предустановленный/зеркалированный образ. -->
## Безопасность
MCP-серверы — сторонние процессы с полным доступом к твоим токенам. Включай только одобренные
образы. Инструменты MCP проходят через guardrails pi (permission-gate/audit) как обычные вызовы.