检索API服务

Microsoft CoPilot Retrieval API MCP Server 提供语义搜索功能,自动处理OneDrive和SharePoint文档的分块、嵌入和存储向量表示,使工程师无需自行管理嵌入模型、向量数据库和插入流程。

  • by lowcodelegend
  • C#
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 lowcodelegend/copilot-retrieval-api-mcp-server

使用说明

Microsoft CoPilot检索API MCP服务器

描述

自2025年年中以来,微软为Copilot提供了检索API。

API利用语义搜索,自动处理OneDrive和SharePoint文档的分块、嵌入和存储这些文档的矢量表示。这使工程师无需携带自己的嵌入模型、矢量数据库、分块器和追加流。

它允许中央数据存储保持为M365。而不是将数据复制到其他地方。

有关API的信息,请参阅: 检索API文档

MCP服务器提供以下接口: 输入是自然语言查询。 响应是OneDrive/SharePoint文档中相关文本的块(文档片段)列表。

入门指南

  1. 在Entra ID(AAD)中进行应用程序注册。
  2. 设置所需的环境变量(docker-compose.yaml,如果在本地构建,则设置.env)
  3. 使用Docker compose在Docker上运行-只复制Docker-compose.yaml并运行:
docker compose up -d

或者,克隆整个仓库以进行开发/测试工作。

  1. 访问/login端点进行设置,以通过Graph API进行身份验证。
  2. 将服务器添加到您的mcp.json或其他mcp客户端:
{
  "mcpServers": {
    "copilotRetrieval": {
      "url": "http://localhost:5192/mcp"
    }
  }
}

环境变量

您需要在Entra ID(AAD)中注册应用程序。根据您的托管方式,更新.env文件或docker-compose.yaml中的值。

暴露的默认Docker端口为: HTTP:5192 HTTPS:7198

尚未添加任何规定来管理SSL证书。TODO。 通常,该服务应在SSL卸载反向代理后运行。

ASPNETCORE_URLS=http://0.0.0.0:5192                             # generally you won't want to change this - change the public base url and redirect uri
GRAPH_TENANT_ID=REPLACEME                                       # from Entra ID App Registration
GRAPH_CLIENT_ID=REPLACEME                                       #
GRAPH_CLIENT_SECRET=REPLACEME                                   #
GRAPH_LOGIN_HINT=me@myO365Tenant.com                            # user login hint - suggest the user logs in as
GRAPH_ALLOWED_UPN=copilotServiceAccountUser@myO365Tenant.com    # *ensure* the user logs in as this user only
GRAPH_REDIRECT_URI=http://localhost:5192/auth/callback          # e.g. https://myMcpServerUrl/auth/callback, make sure it's registered in App Registration in Entra ID
MOCK_COPILOT_RETRIEVAL=0                                        # for offline hacking, mock response from graph and bypass auth
PUBLIC_BASE_URL=https://myMcpServerUrl                          # if using a reverse proxy you can set this

身份验证注意事项

Copilot检索API仅支持需要用户上下文的Auth-Code令牌。无AppOnly/ClientCredentials

  • 当您进行身份验证时,您将提供一个静态用户:user@myTenant.com
  • 用户必须拥有完整的Copilot许可证,而不仅仅是Copilot Chat许可证,而且只有一个用户需要它。
  • 默认情况下,刷新令牌具有90天的不活动窗口Entra ID(AAD)设置。
  • 如果没有人在该非活动窗口中使用服务器,则需要重新进行身份验证。
  • 重新身份验证是由持有副驾驶执照的用户在MCP服务器上进行的。您可以在代理中捕获auth_required错误并发出通知等。
  • 请注意,MCP服务器的所有用户都可以访问用户可以访问的任何内容。

利率限额说明

由于存在单用户环境,应注意了解MS的速率限制。

许可和版权

麻省理工学院 阿什利·埃文斯2025