MCP Server, взаимодействующий с Azure AI Foundry (экспериментальный)
Сервер Model Context Protocol (MCP) для Azure AI Foundry, предоставляющий единый набор инструментов для моделей, знаний, оценки и прочего.
Важное уведомление
MCP Server для Azure AI Foundry (экспериментальный) переместился в облако и теперь доступен как Foundry MCP Server (preview). Пожалуйста, ознакомьтесь с официальной публичной документацией по адресу Начало работы с Foundry MCP Server (preview). Этот репозиторий на GitHub содержит устаревшую информацию о предыдущей экспериментальной реализации сервера и больше не будет обновляться. Вместо этого обратитесь к новому Foundry MCP Server, размещённому и управляемому удалённо, который обладает следующими преимуществами:
-
Облачный интерфейс для оркестрации инструментов ИИ: Foundry MCP Server (preview) обеспечивает безопасную, масштабируемую конечную точку для MCP-совместимых клиентов. Развертывать инфраструктуру не требуется, что обеспечивает бесшовную интеграцию и сценарии с несколькими агентами.
-
Идентификация и контроль доступа: сервер обеспечивает аутентификацию и авторизацию через Microsoft Entra ID. Все операции выполняются в рамках разрешений авторизованного пользователя (флоу On-Behalf-Of).
-
Сфокусированные на сценариях, расширяемые инструменты: MCP Server предоставляет растущий набор инструментов для чтения и записи моделей, развертываний, оценок и агентов в Microsoft Foundry. Инструменты расширяемы, что позволяет разработчикам и агентам взаимодействовать с сервисами без знания бэкенд-API или схем данных.
-
Ускорение продуктивности агентов и разработчиков: естественные языковые рабочие процессы (через MCP-клиенты и крупные языковые модели) позволяют быстро находить и вызывать инструменты, упрощая разработку и оркестрацию нескольких агентов.
Оставшаяся часть этого репозитория (включая кодовую базу) объясняет более устаревший MCP Server, который взаимодействовал с Azure AI Foundry (экспериментальный).
Доступные инструменты
Возможности: Модели
| Категория | Инструмент | Описание |
|---|---|---|
| Исследование | list_models_from_model_catalog | Получает список поддерживаемых моделей из каталога Azure AI Foundry. |
| list_azure_ai_foundry_labs_projects | Получает список передовых AI-моделей из Azure AI Foundry Labs, доступных в Microsoft Research. | |
| get_model_details_and_code_samples | Получает детальную информацию о конкретной модели из каталога Azure AI Foundry. | |
| Разработка | get_prototyping_instructions_for_github_and_labs | Предоставляет полные инструкции и руководство по настройке для начала работы с моделями из Azure AI Foundry и Azure AI Foundry Labs. |
| Развертывание | get_model_quotas | Получает квоты модели для конкретного региона Azure. |
| create_azure_ai_services_account | Создаёт учетную запись Azure AI Services. | |
| list_deployments_from_azure_ai_services | Получает список развертываний в Azure AI Services. | |
| deploy_model_on_ai_services | Разворачивает модель на Azure AI Services. | |
| create_foundry_project | Создаёт новый проект Azure AI Foundry. |
Возможности: Знания
| Категория | Инструмент | Описание |
|---|---|---|
| Индекс | list_index_names | Получить все имена индексов в AI Search Service |
| list_index_schemas | Получить все схемы индексов в AI Search Service | |
| retrieve_index_schema | Получить схему для конкретного индекса в AI Search Service | |
| create_index | Создать новый индекс | |
| modify_index | Изменить определение существующего индекса | |
| delete_index | Удалить существующий индекс | |
| Документ | add_document | Добавить документ в индекс |
| delete_document | Удалить документ из индекса | |
| Запрос | query_index | Поиск в конкретном индексе и получение совпадающих документов |
| get_document_count | Вернуть общее количество документов в индексе | |
| Индексатор | list_indexers | Получить все имена индексоров в AI Search Service |
| get_indexer | Получить полное определение конкретного индексера из AI Search Service | |
| создайте_indexer | Создать новый индексатор в Search Service с указанным умением, индексом и источником данных | |
| delete_indexer | Удалить индексатор по имени из AI Search Service | |
| Источник данных | list_data_sources | Получить все имена источников данных в AI Search Service |
| get_data_source | Получить полное определение конкретного источника данных | |
| Набор навыков | list_skill_sets | Получить все имена наборов навыков в AI Search Service |
| get_skill_set | Получить полное определение конкретного набора навыков | |
| Содержимое | fk_fetch_local_file_contents | Получить содержимое локального файла (пример JSON, документ и т.д.) |
| fk_fetch_url_contents | Получить содержимое по URL (пример JSON, документ и т.д.) |
Возможности: Оценка
| Категория | Инструмент | Описание |
|---|---|---|
| Утилиты оценки | list_text_evaluators | Перечень доступных оценителей текста. |
| list_agent_evaluators | Перечень доступных оценителей агентов. | |
| get_text_evaluator_requirements | Показать требования к входным данным для каждого оценителя текста. | |
| get_agent_evaluator_requirements | Показать требования к входным данным для каждого оценителя агента. | |
| Оценка текста | run_text_eval | Запустить один или несколько оценителей текста на файле JSONL или его содержимом. |
| format_evaluation_report | Преобразовать результаты оценки в удобный Markdown-отчет. | |
| Оценка агента | agent_query_and_evaluate | Сформулировать запрос к агенту и оценить его ответ с использованием выбранных оценителей. Полная оценка агента. |
| run_agent_eval | Оценить взаимодействие одного агента с конкретными данными (запрос, ответ, вызовы инструментов, определения). | |
| Сервис агентов | list_agents | Перечень всех агентов Azure AI, доступных в текущем проекте. |
| connect_agent | Отправить запрос указанному агенту. | |
| query_default_agent | Запросить дефолтного агента, заданного в переменных окружения. |
Возможности: Доработка (Fine-tuning)
| Категория | Инструмент | Описание |
|---|---|---|
| Тонкая настройка | fetch_finetuning_status | Получение детального статуса и метаданных по заданию тонкой настройки, включая состояние работы, модель, времена создания и завершения, гиперпараметры и ошибки. |
| list_finetuning_jobs | Список всех заданий тонкой настройки в ресурсе, с идентификаторами задач и их текущими статусами. | |
| get_finetuning_job_events | Хронологический список всех событий по конкретному заданию тонкой настройки, с временными метками и подробными сообщениями для каждого шага обучения, оценки и завершения. | |
| get_finetuning_metrics | Метрики обучения и оценки по конкретному заданию тонкой настройки, включая кривые потерь, точность и другие показатели. | |
| list_finetuning_files | Список всех файлов, доступных для тонкой настройки в Azure OpenAI, включая идентификаторы файлов, имена, назначения и статусы. | |
| execute_dynamic_swagger_action | Выполнение любого инструмента, динамически сгенерированного по спецификации Swagger, для гибких вызовов API в продвинутых сценариях. | |
| list_dynamic_swagger_tools | Перечень динамически зарегистрированных инструментов из Swagger-спецификации, для обнаружения и автоматизации доступных конечных точек API. |
Примеры подсказок
Модели
Исследование моделей
-
Как вы можете помочь мне найти подходящую модель?
-
Какие модели можно использовать из Azure AI Foundry?
-
Какие OpenAI-модели доступны в Azure AI Foundry?
-
Какие модели наиболее популярны в Azure AI Foundry? Выберите 10 моделей.
-
Какие модели подходят для рассуждений? Приведите примеры в двух корзинах: крупные модели и маленькие модели.
-
Можете сравнить Phi-модели и объяснить различия?
-
Покажите карточку модели для Phi-4-reasoning.
-
Можете показать, как тестировать модель?
-
Что означает бесплатная площадка (free playground) в Azure AI Foundry?
-
Можно ли использовать токен GitHub для тестирования моделей?
-
Покажите последние модели, поддерживающие токен GitHub.
-
Кто являются издателями моделей в Azure AI Foundry?
-
Покажите модели от Meta.
-
Покажите модели с лицензией MIT.
Сборка прототипов
-
Можете описать, как вы можете помочь мне построить прототип, используя модель?
-
Опишите, как построить прототип, который использует модель OpenAI с моим токеном GitHub. Не пытайтесь создать его сейчас.
-
Посоветуйте несколько сценариев для прототипов с моделями.
-
Расскажите про Azure AI Foundry Labs.
-
Расскажите подробнее о Magentic One
-
Что такое Omniparser и какие есть потенциальные сценарии использования?
-
Можете помочь построить прототип с Omniparser?
Развёртывание моделей OpenAI
-
Можете помочь развернуть модели OpenAI?
-
Какие шаги нужно предпринять, чтобы развернуть модели OpenAI на Azure AI Foundry?
-
Можете помочь понять, как можно использовать модели OpenAI на Azure AI Foundry с использованием токена GitHub? Можно ли использовать это в продакшене?
-
У меня уже есть ресурс Azure AI Services. Могу ли я развернуть на нём модели OpenAI?
-
Что означает квота на модели OpenAI в Azure AI Foundry?
-
Получите текущую квоту для вашего ресурса AI services.
Быстрый старт с GitHub Copilot
Этот шаблон GitHub имеет минимальную настройку с конфигурацией MCP сервера и всеми необходимыми зависимостями, что облегчает запуск ваших проектов.
Это помогает автоматически настроить MCP сервер в вашем окружении VS Code под настройки пользователя.
Вам понадобится установленный
uvxв вашей среде для запуска сервера.
Ручная настройка
Установите uv, следуя инструкции по Installing uv.
Создайте новое рабочее пространство в VS Code.
(Необязательно) Создайте файл .env в корне вашего рабочего пространства для установки переменных окружения.
Создайте .vscode/mcp.json в корне вашего рабочего пространства.
{
"servers": {
"mcp_foundry_server": {
"type": "stdio",
"command": "uvx",
"args": [
"--prerelease=allow",
"--from",
"git+https://github.com/azure-ai-foundry/mcp-foundry.git",
"run-azure-ai-foundry-mcp",
"--envFile",
"${workspaceFolder}/.env"
]
}
}
}
Нажмите кнопку Start для сервера в файле .vscode/mcp.json.
Откройте GitHub Copilot чат в режиме Agent и начинайте задавать вопросы.
См. Дополнительные примеры для продвинутой настройки для более подробной информации о том, как настроить MCP Server.
Настройка переменных окружения
Чтобы безопасно передавать информацию в MCP Server, например API-ключи, конечные точки и прочие чувствительные данные, можно использовать переменные окружения. Это особенно важно для инструментов, которым нужна аутентификация или доступ к внешним сервисам.
Вы можете задать переменные окружения в файле .env в корне проекта. Вы можете указать путь к файлу .env при настройке MCP Server, и сервер автоматически загрузит эти переменные при запуске.
См. пример файла .env для образца конфигурации.
| Категория | Переменная | Обязательна? | Описание |
|---|---|---|---|
| Модель | GITHUB_TOKEN | Нет | GitHub токен для тестирования моделей бесплатно с ограничениями по скорости. |
| Знания | AZURE_AI_SEARCH_ENDPOINT | Всегда | URL-адрес конечной точки вашего сервиса Azure AI Search. Он должен выглядеть так: https://<имя_поиска>.search.windows.net/. |
| AZURE_AI_SEARCH_API_VERSION | Нет | Версия API, которую следует использовать. По умолчанию 2025-03-01-preview. | |
| SEARCH_AUTHENTICATION_METHOD | Всегда | service-principal или api-search-key. | |
| AZURE_TENANT_ID | Да, если используете service-principal | Идентификатор вашего арендатора Azure Active Directory. | |
| AZURE_CLIENT_ID | Да, если используете service-principal | Идентификатор Service Principal (регистрация приложения). | |
| AZURE_CLIENT_SECRET | Да, если используете service-principal | Секретное значение для Service Principal. | |
| AZURE_AI_SEARCH_API_KEY | Да, если используете api-search-key | API-ключ для вашего Azure AI Search. | |
| Оценка | EVAL_DATA_DIR | Всегда | Путь к набору данных JSONL для оценки. |
| AZURE_OPENAI_ENDPOINT | Оценивание текста | Конечная точка для Azure OpenAI. | |
| AZURE_OPENAI_API_KEY | Оценивание текста | API-ключ для Azure OpenAI. | |
| AZURE_OPENAI_DEPLOYMENT | Оценивание текста | Имя развёртывания (например, gpt-4o). | |
| AZURE_OPENAI_API_VERSION | Оценивание текста | Версия API OpenAI. | |
| AZURE_AI_PROJECT_ENDPOINT | Сервисы агентов | Используется для запросов и оценки агентов Azure AI. |
Примечания
-
Модель
GITHUB_TOKENиспользуется для аутентификации через GitHub API при тестировании моделей. Он не обязателен, если вы исследуете модели из каталога Foundry.
-
Знания
- См. Создание сервиса поиска, чтобы узнать больше о provisioning сервиса поиска.
- Azure AI Search поддерживает несколько методов аутентификации. Можно использовать либо аутентификацию через Microsoft Entra, либо аутентификацию на основе ключа. Выбор зависит от ваших требований к безопасности и вашей Azure-среды.
- См. Аутентификация, чтобы узнать больше о методах аутентификации для сервиса поиска.
-
Оценка
- Если вы используете инструменты агентов или оценочные средства безопасности, убедитесь, что учётные данные проекта Azure действительны.
- Если вы занимаетесь только оценкой качества текста, достаточно конечной точки и ключа OpenAI.
Лицензия
MIT License. См. LICENSE для подробностей.