docs: refresh translations for recent English changes (#3379)

This commit is contained in:
Max 2026-08-24 19:29:54 +01:00 • committed by GitHub
commit c5d7d0b6d0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 3149 additions and 1047 deletions

View file

@ -1,6 +1,6 @@
---
translation:
sections: [3c4f2f06b4e978b6, 22520eecae3d1961, f4e1709db18d635a, 2eb57992049671d9, 1ba83e9af37cc1b4, 4822586344b08d9e, 1c93afef72478992, b6b448f9eddd51dc, fe55370fd931815b]
sections: [3c4f2f06b4e978b6, 51ea5fbcb0e93563, 32d8808606ffdae0, 2eb57992049671d9, 1ba83e9af37cc1b4, 4822586344b08d9e, 1c93afef72478992, b6b448f9eddd51dc, fe55370fd931815b]
tool: 1
---
# Подключение к настоящему хосту {#connect-to-a-real-host}
@ -11,13 +11,13 @@ translation:
## Один сервер, любой хост {#one-server-every-host}
```python title="server.py" hl_lines="3 33-34"
```python title="server.py" hl_lines="4 34-35"
--8<-- "docs_src/real_host/tutorial001.py"
```
Два инструмента и ресурс, один файл. Три вещи в этом файле важны для каждого хоста ниже:
* `mcp.run()` без аргументов запускает **stdio**-сервер: он блокируется, читает сообщения протокола из stdin и пишет их в stdout. Это тот транспорт, на котором говорят все хосты на этой странице. Хост запускает ваш файл как дочерний процесс и владеет обоими каналами, поэтому подключение всегда сводится к «вот команда». Порт выбирать не нужно, и ничто на нём не слушает.
* `mcp.run()` без аргументов запускает **stdio**-сервер: он блокирует выполнение, читает сообщения протокола из stdin и пишет их в stdout. Это тот транспорт, на котором говорят все хосты на этой странице. Хост запускает ваш файл как дочерний процесс и владеет обоими каналами, поэтому подключение всегда сводится к «вот команда». Порт выбирать не нужно, и ничто на нём не слушает.
* `run()` стоит под `if __name__ == "__main__":`. Всё, что ниже, **импортирует** этот файл, а не выполняет его, так что незащищённый `run()` запускал бы сервер в тот момент, когда что-нибудь загружает модуль.
* Объект сервера — глобальная переменная уровня модуля с именем `mcp`. Это имя ищет `mcp run` (`server` и `app` тоже подходят). Назовёте иначе — придётся указать имя явно: `mcp run server.py:bookshop`.
@ -51,7 +51,7 @@ uv run --with "mcp[cli]" mcp run /absolute/path/to/server.py
А хост — это всего лишь приложение с MCP-клиентом внутри, так что роль хоста может
сыграть ваш собственный код на Python: **[Клиентские транспорты](../client/transports.md)**
запускают этот же файл как подпроцесс через `stdio_client(...)`, а
запускают этот же файл как подпроцесс через `Client(StdioServerParameters(...))`, а
**[Тестирование](testing.md)** подключается к нему в памяти вообще без процесса.
## Claude Desktop {#claude-desktop}

View file

@ -1,6 +1,6 @@
---
translation:
sections: ['4926721070127497', c52a1de2b6b32f40, 2e410b412c25f314, 627195f7159e24ef]
sections: ['4926721070127497', c52a1de2b6b32f40, 8e792bf8c7489ec6, 627195f7159e24ef]
tool: 1
---
# Тестирование {#testing}
@ -84,9 +84,10 @@ async def test_call_add_tool(client: Client):
Пойти не так могут две разные вещи, и этот флаг касается только одной из них.
Исключение внутри одного из **ваших инструментов** — не сбой протокола. Оно превращается в
обычный результат с `is_error=True`, и модель читает сообщение. `raise_exceptions` этого не
меняет: с ним или без него `call_tool` возвращает один и тот же результат с `is_error=True`.
Этому посвящена целая страница: **[Обработка ошибок](../servers/handling-errors.md)**.
обычный результат с `is_error=True` (а если это был `ToolError`, модель читает ваше сообщение).
`raise_exceptions` этого не меняет: с ним или без него `call_tool` возвращает один и тот же
результат с `is_error=True`. Этому посвящена целая страница:
**[Обработка ошибок](../servers/handling-errors.md)**.
Сбой **вне** тела инструмента — другое дело. На подключении, которое даёт `Client(mcp)`, сервер
очищает его до обобщённого `"Internal server error"`, прежде чем оно дойдёт до клиента. Детали