这是一个用于Azure AI Foundry的模型上下文协议服务器,提供了一整套针对模型、知识、评估等工具。
Azure AI Foundry(实验版)的MCP服务器已迁移到云端,现称为Foundry MCP服务器(预览版)。请参阅官方公开文档开始使用Foundry MCP服务器(预览版)。此GitHub仓库包含过时的旧实验服务器实现信息,将不再更新。相反,请参考新的远程托管和管理的Foundry MCP服务器,它具有以下优势:
本仓库的其余部分(包括代码库)解释了现在已弃用的与Azure AI Foundry(实验版)交互的MCP服务器。
| 类别 | 工具 | 描述 |
|---|---|---|
| 探索 | list_models_from_model_catalog | 从Azure AI Foundry目录检索支持的模型列表。 |
list_azure_ai_foundry_labs_projects | 从Microsoft Research检索Azure AI Foundry Labs中的最新AI模型列表。 | |
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搜索服务中的所有索引名称。 |
list_index_schemas | 检索AI搜索服务中的所有索引模式。 | |
retrieve_index_schema | 检索AI搜索服务中特定索引的模式。 | |
create_index | 创建新的索引。 | |
modify_index | 修改现有索引的定义。 | |
delete_index | 删除现有的索引。 | |
| 文档 | add_document | 将文档添加到索引中。 |
delete_document | 从索引中删除文档。 | |
| 查询 | query_index | 搜索特定索引以检索匹配的文档。 |
get_document_count | 返回索引中的文档总数。 | |
| 索引器 | list_indexers | 检索AI搜索服务中的所有索引器名称。 |
get_indexer | 检索AI搜索服务中特定索引器的完整定义。 | |
create_indexer | 在搜索服务中创建新的索引器,带有技能、索引和数据源。 | |
delete_indexer | 根据名称从AI搜索服务中删除索引器。 | |
| 数据源 | list_data_sources | 检索AI搜索服务中的所有数据源名称。 |
get_data_source | 检索特定数据源的完整定义。 | |
| 技能集 | list_skill_sets | 检索AI搜索服务中的所有技能集名称。 |
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 | 查询环境变量中定义的默认代理。 |
| 类别 | 工具 | 描述 |
|---|---|---|
| 微调 | fetch_finetuning_status | 检索特定微调作业的详细状态和元数据,包括作业状态、模型、创建和完成时间、超参数以及任何错误。 |
list_finetuning_jobs | 列出资源中的所有微调作业,返回作业ID及其当前状态,便于跟踪和管理。 | |
get_finetuning_job_events | 检索特定微调作业的时间顺序事件列表,包括每个训练步骤、评估和完成的详细消息和时间戳。 | |
get_finetuning_metrics | 检索特定微调作业的训练和评估指标,包括损失曲线、准确率和其他相关性能指标,用于监控和分析。 | |
list_finetuning_files | 列出Azure OpenAI中可用于微调的所有文件,包括文件ID、名称、用途和状态。 | |
execute_dynamic_swagger_action | 执行从Swagger规范动态生成的任何工具,允许灵活的API调用以应对高级场景。 | |
list_dynamic_swagger_tools | 列出从Swagger规范动态注册的所有工具,使可用API端点的发现和自动化成为可能。 |
此GitHub模板具有最小的设置,包括MCP服务器配置和所有必需的依赖项,使其易于开始自己的项目。
这有助于你在VS Code环境中自动设置MCP服务器,位于用户设置下。 你需要在你的环境中安装
uvx来运行服务器。
按照安装uv的说明安装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"
]
}
}
}
点击.vscode/mcp.json文件中的“启动”按钮。
打开GitHub Copilot聊天框,并以代理模式开始提问。
有关更详细的设置,请参阅更多高级设置示例。
为了安全地将信息传递给MCP服务器,如API密钥、端点和其他敏感数据,你可以使用环境变量。这在需要身份验证或访问外部服务的工具中尤为重要。
你可以在项目的根目录中的.env文件中设置这些环境变量。在设置MCP服务器时,你可以传递.env文件的位置,服务器启动时会自动加载这些变量。
查看示例.env文件以获取样本配置。
| 类别 | 变量 | 是否必须 | 描述 |
|---|---|---|---|
| 模型 | GITHUB_TOKEN | 否 | 用于免费测试模型的GitHub令牌,有速率限制。 |
| 知识 | AZURE_AI_SEARCH_ENDPOINT | 总是 | 你的Azure AI搜索服务的端点URL。应如下所示:https://<your-search-service-name>.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租户ID。 | |
AZURE_CLIENT_ID | 使用service-principal时是必须的 | 你的服务主体(应用程序注册)的ID。 | |
AZURE_CLIENT_SECRET | 使用service-principal时是必须的 | 服务主体的秘密凭证。 | |
AZURE_AI_SEARCH_API_KEY | 使用api-search-key时是必须的 | 你的Azure AI搜索服务的API密钥。 | |
| 评估 | EVAL_DATA_DIR | 总是 | JSONL评估数据集的路径 |
AZURE_OPENAI_ENDPOINT | 文本质量评估器 | Azure OpenAI的端点 | |
AZURE_OPENAI_API_KEY | 文本质量评估器 | Azure OpenAI的API密钥 | |
AZURE_OPENAI_DEPLOYMENT | 文本质量评估器 | 部署名称(例如,gpt-4o) | |
AZURE_OPENAI_API_VERSION | 文本质量评估器 | OpenAI API的版本 | |
AZURE_AI_PROJECT_ENDPOINT | 代理服务 | 用于Azure AI代理查询和评估 |
[!NOTE] 模型
GITHUB_TOKEN用于与GitHub API进行身份验证以测试模型。如果你只是探索Foundry目录中的模型,则不需要。知识
- 请参阅创建搜索服务以了解有关配置搜索服务的更多信息。
- Azure AI搜索支持多种身份验证方法。你可以使用Microsoft Entra身份验证或基于密钥的身份验证来认证你的请求。选择的身份验证方法取决于你的安全需求和你正在工作的Azure环境。
- 请参阅身份验证以了解有关搜索服务身份验证方法的更多信息。
评估
- 如果你使用的是代理工具或安全性评估器,请确保Azure项目凭据有效。
- 如果你仅进行文本质量评估,则只需OpenAI端点和密钥即可。
MIT许可证。详情见LICENSE。