使用说明
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 管理员,仅一次)
- 在(某平台/系统)注册一个应用程序 Azure 门户
- 添加重定向URI:
http://localhost - 添加以下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"
🎯 如何使用提示
每个提示都会生成一个结构化的搜索查询,并为响应提供格式指导。当你使用提示时:
- 执行提示:
#prompt_name "your specific topic" - 审查生成的查询提示将显示它创建的搜索查询
- 执行搜索使用提供的
#CoPilotRetrieve执行搜索的命令 - 获取格式化结果结果将根据提示的模板进行组织
示例工作流程:
> #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许可证授权——详见 许可证 文件中有详细信息。
🔗 相关资源
📞 支持
如需支持或有疑问:
- 问题: GitHub Issues(GitHub问题)
- 讨论: GitHub 讨论区
- 文档: 维基