Встановлення MCP Bundle

← Встановлення MCP Bundle

Ashterix

docs: rewrite JsonRpcBundle docs, add SDK docs, move them under docs/api

uk/docs/api/mcp-bundle/installation.md новий файл +133 −0

1 + # Встановлення MCP Bundle
2 +
3 + :::info
4 + Вимоги версії 1.x: PHP >= 8.4, Symfony ^7.2 або ^8.0, `ufo-tech/json-rpc-bundle` ^10.4.3, `mcp/sdk` ^0.8.1. Сервер JsonRpcBundle має бути вже [встановлений](/docs/api/json-rpc-bundle/installation).
5 + :::
6 +
7 + ## Крок 1: Встановлення
8 +
9 + ```bash
10 + composer require ufo-tech/mcp-bundle
11 + ```
12 +
13 + ## Крок 2: Реєстрація бандла
14 +
15 + Додайте бандл у `config/bundles.php` поруч із JsonRpcBundle:
16 +
17 + ```php
18 + return [
19 + // ...
20 + Ufo\JsonRpcBundle\UfoJsonRpcBundle::class => ['all' => true],
21 + Ufo\McpBundle\UfoMcpBundle::class => ['all' => true],
22 + ];
23 + ```
24 +
25 + ## Крок 3: Налаштування
26 +
27 + :::warning
28 + Рецепта Symfony Flex для бандла поки немає: файли конфігурації копіюються вручну.
29 + :::
30 +
31 + Скопіюйте `vendor/ufo-tech/mcp-bundle/install/packages/ufo_mcp.yaml` у `config/packages/`. Мінімальна конфігурація:
32 +
33 + ```yaml
34 + # config/packages/ufo_mcp.yaml
35 + ufo_mcp:
36 + enabled: true
37 + mcp_server_info:
38 + name: 'io.github.your-org/your-app'
39 + title: 'Your App MCP Server'
40 + ```
41 +
42 + Без файлу бандл працює на типових значеннях. Усі параметри — на сторінці [Налаштування](/docs/api/mcp-bundle/config).
43 +
44 + ## Крок 4: Реєстрація маршрутів
45 +
46 + Скопіюйте `vendor/ufo-tech/mcp-bundle/install/routes/ufo_mcp.yaml` у `config/routes/`:
47 +
48 + ```yaml
49 + # config/routes/ufo_mcp.yaml
50 + ufo_mcp:
51 + resource: ../../vendor/ufo-tech/mcp-bundle/config/router.yaml
52 + prefix: /mcp
53 + defaults: { api_group: mcp }
54 + ```
55 +
56 + Один імпорт — один MCP-ендпоінт, що обслуговує одну [групу API](/docs/api/json-rpc-bundle/functionality/groups) (`api_group`). Щоб додати ще ендпоінт, імпортуйте той самий `router.yaml` ще раз з іншими `prefix` і `api_group` — див. [Маршрути](/docs/api/mcp-bundle/config).
57 +
58 + ## Крок 5: Методи для MCP
59 +
60 + Додайте RPC-методи в групу ендпоінта атрибутом `#[RPC\APIGroups]`:
61 +
62 + ```php
63 + use Ufo\JsonRpcBundle\ApiMethod\Interfaces\IRpcService;
64 + use Ufo\McpBundle\Attribute\McpTool;
65 + use Ufo\RpcObject\RPC;
66 +
67 + #[RPC\Info('Catalog')]
68 + #[RPC\APIGroups(['mcp'], withDefault: false)] // лише /mcp, не /rpc
69 + final class CatalogProcedure implements IRpcService
70 + {
71 + /** Search products by name. */
72 + #[McpTool(readOnlyHint: true)]
73 + public function search(string $query, int $limit = 10): array
74 + {
75 + // ...
76 + }
77 + }
78 + ```
79 +
80 + `withDefault: false` прибирає методи з типової групи (`/rpc`); без нього методи доступні і в `/rpc`, і в `/mcp`.
81 +
82 + :::info
83 + `#[McpTool]` необов'язковий: він лише додає підказки для агента. Інструментом стає кожен метод групи — див. [Інструменти](/docs/api/mcp-bundle/tools).
84 + :::
85 +
86 + ## Перевірка
87 +
88 + | Запит | Що повертає |
89 + | --- | --- |
90 + | `POST /mcp` | MCP-ендпоінт (Streamable HTTP) |
91 + | `GET /mcp/manifest/claude.json` | Конфігурацію підключення для Claude Code (також `cursor`, `gemini`, `openai`) |
92 + | `GET /mcp/server.json` | Документ для MCP Registry |
93 +
94 + Маніфест для Claude Code:
95 +
96 + ::::columns
97 + :::col
98 + **Request**:
99 + ```bash
100 + curl https://example.com/mcp/manifest/claude.json
101 + ```
102 + :::
103 +
104 + :::col
105 + **Response**:
106 + ```json
107 + {
108 + "mcpServers": {
109 + "mcp": {
110 + "type": "http",
111 + "url": "https://example.com/mcp",
112 + "headers": {"Ufo-RPC-Token": "${UFO_MCP_TOKEN}"}
113 + }
114 + }
115 + }
116 + ```
117 + :::
118 + ::::
119 +
120 + Якщо в JsonRpcBundle увімкнено `protected_doc`, додайте до запиту заголовок з токеном. Збережіть відповідь у `.mcp.json` проєкту і задайте змінну оточення `UFO_MCP_TOKEN` — Claude Code побачить інструменти групи.
121 +
122 + Перелік інструментів без AI-клієнта — через [MCP Inspector](https://github.com/modelcontextprotocol/inspector):
123 +
124 + ```bash
125 + npx -y @modelcontextprotocol/inspector --cli https://example.com/mcp \
126 + --transport http --header "Ufo-RPC-Token: change-me" --method tools/list
127 + ```
128 +
129 + ## Що далі?
130 +
131 + * [Налаштування](/docs/api/mcp-bundle/config) — кілька ендпоінтів, версії, сесії.
132 + * [Інструменти](/docs/api/mcp-bundle/tools) — як будуються схеми, тексти і результати.
133 + * [HTTP і безпека](/docs/api/mcp-bundle/http_security) — токени, CORS, DNS rebinding.