知识检索服务器

M365 CoPilot MCP Server是一个基于Model Context Protocol的服务器,通过Microsoft Graph和Copilot Retrieval API提供对Microsoft 365知识系统的安全合规访问,支持从Confluence、Jira、Azure DevOps、Salesforce等多个数据源检索信息。

  • by dammejed
  • 本地部署
  • 更新于
在 GitHub 查看 dammejed/M365.CoPilot.MCP

使用说明

M365 CoPilot MCP 服务器

A. 模型上下文协议(MCP)服务器 该服务器通过Microsoft Graph和Copilot检索API,提供安全且合规的访问Microsoft 365知识系统的方式。它使AI助手能够从内部系统(如Confluence、Jira、Azure DevOps、Salesforce以及其他连接的数据源)中检索相关信息。

🚀 特性

  • 安全知识检索通过 Microsoft Graph 访问内部组织知识
  • 多源集成从Confluence、Jira、Azure DevOps、Salesforce等平台检索数据
  • 项目特定检索通过唯一标识符获取特定项目
  • MCP合规性实现了模型上下文协议,以实现人工智能助手的无缝集成
  • Azure AD 身份验证支持交互式浏览器和令牌缓存的可靠身份验证
  • 可配置的结果自定义结果数量并指定特定的数据连接器
  • 跨平台基于.NET 10构建,支持跨平台
  • 预构建的提示10个针对常见组织知识场景的专业提示

📋 先决条件

  • .NET 10 SDK 或之后: 下载 .NET
  • Azure AD 应用程序 具有适当的权限
  • Microsoft 365 Copilot 许可证 (用于检索功能)
  • Windows、macOS 或 Linux 环境

⚙️ 安装与配置

进入应用程序注册(Azure AD 管理员,仅一次)

  1. 在(某平台/系统)注册一个应用程序 Azure 门户
  2. 添加重定向URI: http://localhost
  3. 添加以下API权限:
    • ExternalItem.Read.All (Microsoft Graph) - 应用程序:用于访问连接的数据源
    • Files.Read.All 和 Sites.Read.All (Microsoft Graph) - 应用程序:用于访问 SharePoint 和 OneDrive 数据

GitHub Copilot MCP 配置

要使用此MCP服务器与GitHub Copilot配合,需配置您的MCP设置文件:

正常使用

  • 编辑您的MCP服务器列表。对于vscode,请运行 MCP:打开用户配置 命令用于在您的用户配置文件中打开 mcp.json 文件。如果该文件不存在,VS Code 会为您创建它
{
  "mcpServers": {
    "m365-copilot": {
      "command": "dnx",
      "args": [
         "--yes", "--prerelease", "M365.CoPilot.MCP",
         "--tenant-id", "your-dev-tenant-id",
         "--client-id", "your-dev-client-id",
         "--scopes", "Files.Read.All",
         "--scopes", "Sites.Read.All",
         "--scopes", "ExternalItem.Read.All"
      ]
    }
  }
}

使用本地构建(开发)

这允许您立即测试更改,而无需发布或安装软件包。

{
  "mcpServers": {
    "m365-copilot-dev": {
      "command": "C:\\path\\to\\your\\repo\\M365.CoPilot.MCP\\M365.CoPilot.MCP\\bin\\Debug\\net10.0\\M365.CoPilot.MCP.exe",
      "args": [
         "--tenant-id", "your-dev-tenant-id",
         "--client-id", "your-dev-client-id",
         "--scopes", "Files.Read.All",
         "--scopes", "Sites.Read.All",
         "--scopes", "ExternalItem.Read.All"
      ]
    }
  }
}

命令行

参数 描述 示例
--tenant-id Azure AD 租户 ID 7DCD55F6-A3D3-43B0-BCE9-75BAD16B107B
--client-id Azure AD 应用程序客户端 ID A681D4ED-5970-4999-BE77-B38F49296ED3
--scopes 认证上下文的作用域列表。作用域取决于您在CoPilotRetrieve方法中想要使用的数据源:对于externalItem,使用ExternalItem.Read.All;对于sharePoint和oneDriveBusiness,使用Files.Read.All和Sites.Read.All。 Files.Read.All Sites.Read.All ExternalItem.Read.All

🔍 可用工具

CoPilot检索工具

搜索和检索相关知识信息的主要工具:

名字: CoPilotRetrieve

描述以安全合规的方式从内部系统中检索相关知识信息。

参数:

  • query (必填):用于检索相关文本片段的自然语言查询字符串(最多1,500个字符)。您的查询应为一个完整的句子,并且应避免在富含上下文的关键词中出现拼写错误。
  • dataSources (可选):用于提取数据的数据源数组(sharePoint、oneDriveBusiness、externalItem)。如果未指定,则默认使用所有可用的数据源。
  • connectionIds (可选):要定位的特定连接器ID数组(当数据源为外部项目时使用)
  • maximumNumberOfResults (可选):要返回的结果数量(1-25,默认:25)

示例查询(简单):

{
  "query": "project management best practices for agile development"
}

高级查询示例:

{
  "query": "project management best practices for agile development",
  "dataSources": ["externalItem"],
  "connectionIds": ["confluence-connector"],
  "maximumNumberOfResults": 10
}

CoPilot获取项目工具

通过唯一标识符检索特定项:

名字: CoPilotGetItem

描述以安全合规的方式,从内部系统(如Confluence、Jira、Azure DevOps、Salesforce等)中通过唯一标识符检索特定项目。

参数:

  • id (必需):要检索的项目的唯一标识符。这通常是源系统中项目的“id”或“uniqueId”属性。
  • dataSources (可选):用于检索项目的数据源数组(SharePoint、OneDrive 商业版、外部项目)。如果未指定,则默认为所有可用来源。
  • connectionIds (可选):目标特定连接器ID的数组(当dataSource为externalItem时使用)

示例查询(简单):

{
  "id": "confluence-page-12345"
}

示例查询(针对特定数据源):

{
  "id": "jira-issue-ABC-123",
  "dataSources": ["externalItem"],
  "connectionIds": ["jira-connector"]
}

📋 预构建的提示

MCP服务器包含10个专为常见组织知识场景设计的专用提示。这些提示提供了结构化的搜索查询和响应格式,帮助您快速找到相关信息。

🔬 研究与开发

project_research

在贵组织的知识库中,研究项目文档、最佳实践以及技术资源一应俱全。

  • 用于开发标准、架构决策、项目相关文档
  • 示例: #project_research "mobile app development"

code_standards

访问您组织的编码标准、架构指南和技术最佳实践。

  • 用于开发规范、架构决策、风格指南
  • 示例: #code_standards "React development"

integration_patterns

查找技术资源中的集成模式、API文档和系统集成指南。

  • 用于系统连接、数据流、API实现
  • 示例: #integration_patterns "payment system integration"

🔧 运维与DevOps

troubleshooting_guide

查找故障排除指南、错误解决方案和技术文档,以解决常见问题。

  • 用于调试程序、错误排查、解决问题的步骤
  • 示例: #troubleshooting_guide "authentication errors"

devops_procedures

访问DevOps流程、部署指南和基础设施文档。

  • 用于持续集成/持续交付(CI/CD)流水线、部署策略、操作流程
  • 示例: #devops_procedures "container deployment"

🏢 商业与合规

business_process

从贵组织中检索业务流程文档、工作流程以及操作规程。

  • 用于公司流程、合规要求、工作流程文档
  • 示例: #business_process "customer onboarding"

compliance_documentation

从您的组织中查找合规程序、审计文件和监管指南。

  • 用于安全要求、隐私政策、法规遵从性
  • 示例: #compliance_documentation "GDPR compliance"

📊 智能与分析

competitive_intelligence

从内部报告中研究市场分析、竞争对手信息以及商业情报。

  • 用于市场洞察、竞争定位、商业策略
  • 示例: #competitive_intelligence "mobile payment market"

customer_insights

从你的知识库中研究客户反馈、调查结果和用户研究发现。

  • 用于客户满意度、用户体验、产品反馈分析
  • 示例: #customer_insights "user experience feedback"

📚 学习与发展

training_resources

访问您组织提供的培训材料、入职指南和学习资源。

  • 用于教育内容、技能发展、认证课程
  • 示例: #training_resources "cloud platform training"

🎯 如何使用提示

每个提示都会生成一个结构化的搜索查询,并为响应提供格式指导。当你使用提示时:

  1. 执行提示: #prompt_name "your specific topic"
  2. 审查生成的查询提示将显示它创建的搜索查询
  3. 执行搜索使用提供的 #CoPilotRetrieve 执行搜索的命令
  4. 获取格式化结果结果将根据提示的模板进行组织

示例工作流程:

> #project_research "API design patterns"
📋 Search Query: `project documentation best practices guidelines standards for API design patterns`

To execute this search, use:
#CoPilotRetrieve "project documentation best practices guidelines standards for API design patterns"

🏗️ 建筑学

┌─────────────────┐    ┌──────────────────┐    ┌─────────────────────┐
│   AI Assistant  │ ─> │   MCP Server     │ ─> │  Microsoft Graph    │
│                 │    │  (This Project)  │    │  Copilot Retrieval  │
└─────────────────┘    └──────────────────┘    └─────────────────────┘
                                │                          │
                                v                          v
                       ┌─────────────────┐    ┌─────────────────────┐
                       │ Token Caching   │    │  Data Connectors    │
                       │ & Auth Flow     │    │  • Confluence       │
                       └─────────────────┘    │  • Jira             │
                                              │  • Azure DevOps     │
                                              │  • Salesforce       │
                                              │  • ...              │
                                              └─────────────────────┘

🔒 安全与认证

  • 交互式浏览器认证使用Azure AD实现安全的OAuth 2.0流程
  • 令牌缓存持久化令牌存储以提升用户体验
  • Windows 身份验证代理Windows平台上的增强安全性
  • 基于范围的访问仅请求必要的权限(ExternalItem.Read.All)

🛠️ 开发

关键依赖项

  • 模型上下文协议MCP服务器框架
  • Azure.IdentityAzure 身份验证
  • System.CommandLineCLI 参数解析
  • **Microsoft.Extensions.Hosting(微软扩展托管服务)**应用程序托管框架

📄 许可证

这个项目遵循MIT许可证授权——详见 许可证 文件中有详细信息。

🔗 相关资源

📞 支持

如需支持或有疑问: