Виберіть транспорт свідомо
Локальний сервер stdio та віддалений сервіс HTTP мають різні потреби в розгортанні. Використовуйте підтримуваний віддалений транспорт, TLS та автентифікований маршрут. Перевіряйте версії клієнта й сервера, а не припускайте, що кожна реалізація підтримує ті самі можливості.
Ставтеся до кожного інструмента як до API
Перевіряйте аргументи, забезпечуйте авторизацію для конкретного користувача та обмежуйте ресурси. Не надавайте довільне виконання команд оболонки як інструмент зручності. Обмежуйте вихідні цілі, коли інструмент отримує URL, і тримайте секрети поза описами та відповідями.
Збирайте ідентифікаційні дані пропорційно
Хостинг без KYC може мінімізувати дані реєстрації у постачальника, але сервіс MCP все ще може потребувати власних користувачів, безпеки сесій і контролю зловживань. Поясніть, що він журналює, і уникайте збереження вхідних даних інструментів без визначеної мети.
Розгортайте для операційної ясності
Запускайте під окремим користувачем, використовуйте перевірки стану, обмежуйте час запитів і підтримуйте буферизацію та тайм-аути зворотного проксі сумісними з протоколом. Перевірте автентифікацію, відкликання, від'єднання та повторні спроби, перш ніж надавати права на запис.
Узгодьте автентифікацію з підтримуваним протоколом
Для розгортання MCP на основі HTTP перегляньте поточні вимоги протоколу до авторизації та підтримувану версію клієнта. Доступ до ресурсів на основі OAuth передбачає аудиторію токена, виявлення та область дії, а не просто пароль на головній сторінці. Використовуйте HTTPS, перевіряйте токени для призначеного ресурсу та не зберігайте bearer-облікові дані в рядках запиту. Сервер stdio використовує іншу локальну межу облікових даних.
- Перевірте неавтентифікований запит
- Перевірте автентифікований запит поза його областю дії
- Відкличте облікові дані та переконайтеся, що вони перестали працювати
Офіційна документація: Специфікація авторизації MCP
Опублікуйте обмежений початковий набір інструментів
Почніть з інструментів лише для читання, які повертають обмежений обсяг даних. Додавайте запис файлів, операції життєвого циклу сервера або зовнішні повідомлення лише після того, як зрозумієте їхні дозволи та поведінку щодо дублювання. Розглядайте повернені вебсторінки та документи як недовірені дані; вони не повинні непомітно розширювати повноваження сервера інструментів.
Зафіксуйте поведінку протоколу перед написанням правил проксі
Запишіть як випуск сервера SDK, так і редакцію MCP, яку використовуватиме клієнт. У редакції Streamable HTTP 2026-07-28 запити використовують кінцеву точку POST; старіші приклади, що покладаються на сесії протоколу або окремий потік GET, є іншою редакцією. Не видаляйте очевидну вимогу сумісності, доки не дізнаєтеся, який клієнт ви підтримуєте. Зворотний проксі повинен зберігати потрібні заголовки, статус HTTP і поведінку потокового передавання відповіді для цієї версії.
- Почніть з інструмента лише для читання на loopback-прослуховувачі, а потім розмістіть перед ним призначену межу HTTPS/автентифікації.
- Перевірте звичайний результат, потоковий результат, тайм-аут і відключеного клієнта через публічний проксі.
- Перевіряйте дозволені значення Origin відповідно до вимог транспорту; перевірка Origin не замінює автентифікацію виклику.
- Якщо події надходять лише в кінці, перевірте буферизацію проксі та поведінку тайм-аутів, перш ніж змінювати код інструменту.
Офіційна документація: MCP 2026-07-28: Streamable HTTP
Перевіряйте відмови в авторизації так само ретельно, як і успіх
Для доступу до HTTP, захищеного OAuth, сервер MCP є захищеним ресурсом. Перевірте виявлення метаданих, очікуваного емітента та аудиторію токена, а також області доступу, потрібні для конкретної операції. Тримайте токен авторизації поза рядками запиту URL і ніколи не передавайте його без змін до не пов'язаного нижчого сервісу. Помилка автентифікації на боці клієнта повинна зберігати відповідний виклик HTTP, щоб клієнт міг відновитися через підтримуваний потік.
- Немає токена або токен прострочений: захищена кінцева точка відхиляє доступ, а не повертає приватні дані інструменту.
- Дійсний токен із недостатніми дозволами: запитаний ресурс залишається недоступним.
- Токен для іншої аудиторії: відхиліть його, навіть якщо його підпис інакше дійсний.
- Неочікуваний зовнішній URL або шлях до файлу: перевірте відповідно до повноважень інструмента перед отриманням чи записом.
- Журнали та трасування помилок: зберігайте ідентифікатор операції та результат, видаляючи токени й приватні вхідні дані інструментів.
Офіційна документація: MCP 2026-07-28: авторизація HTTP · MCP: найкращі практики безпеки