返回市场
MCP协同服务器

MCP协同服务器

作者:CrewAakash2 星标更新:2025-05-06

项目介绍

🤖 MCP Server for Copilot Studio Agents

这是一个MCP(模型上下文协议)服务器实现,它连接到Microsoft Copilot Studio代理,允许Copilot Studio代理与任何兼容MCP的客户端无缝集成。

https://github.com/user-attachments/assets/19fdd17b-2837-4797-8653-fe9439de355f

✨ 特性

  • 🔌 通过DirectLine API连接到Copilot Studio代理
  • 🧠 维护多查询之间的对话上下文
  • 🔄 易于与任何兼容MCP的客户端集成
  • 💬 使用对话ID和水印跟踪的状态对话
  • ⚙️ 可配置的代理定义

🛠️ 工具

此MCP服务器公开了以下工具:

  • 📮 query_agent:向Copilot Studio代理发送查询并接收响应
    • 🔄 使用对话ID和水印维护多查询之间的对话上下文
    • 📊 返回带有成功/错误状态的结构化响应

🔧 配置

前提条件

  • 🔐 确保已设置Copilot Studio代理,并配置direct line通道安全
  • 📝 更新src/main.py文件中的agent_definitions以包含您的代理详细信息。
  • agent_definitions应包括以下字段:
    • 📛 name:代理名称
    • 📄 description:代理的简要描述,供MCP客户端识别代理的责任。

环境变量

服务器需要以下环境变量:

  • 🔗 DIRECTLINE_ENDPOINT:您的Copilot Studio代理的DirectLine API端点
  • 🔑 COPILOT_AGENT_SECRET:用于通过DirectLine API与Copilot Studio代理进行身份验证的机器人密钥

您可以在项目根目录中的.env文件中设置这些变量,或通过系统环境变量进行配置。

📦 安装

前提条件

  • 🐍 Python 3.12或更高版本
  • 🚀 uv包管理器(推荐)或pip

Python安装

# 使用uv设置环境
uv venv
.venv\Scripts\activate  # 在Windows上
source .venv/bin/activate  # 在macOS/Linux上

# 安装依赖项
uv sync

如果您更喜欢使用pip:

# 创建虚拟环境
python -m venv .venv
.venv\Scripts\activate  # 在Windows上
source .venv/bin/activate  # 在macOS/Linux上

# 安装依赖项
pip install -e .

使用MCP Inspector测试

激活环境后,您可以使用MCP Inspector本地运行MCP服务器。

  1. 使用以下命令运行MCP服务器:
mcp dev src/main.py
  1. 您将被提示安装@modelcontextprotocol/inspector包。选择y进行安装。
    安装MCP Inspector

  2. 启动MCP Inspector并连接到MCP服务器。

  3. 导航到Tools并点击List Tools查看MCP服务器中的所有可用工具。

  4. 选择query_agent工具向您的Copilot Studio代理发送查询。
    MCP Inspector 结果

与Claude Desktop一起使用

要与Claude Desktop一起使用,请在配置文件中添加以下内容:

  1. 如果尚未下载和安装Claude Desktop,请执行此操作。
  2. 导航到File > Settings > Developer > Edit Config
  3. 打开claude_desktop_config.json文件,并在mcpServers部分添加以下配置。您可以使用uvpythondocker来运行服务器。
    Claude Desktop配置
  4. 保存配置文件并重新启动Claude Desktop。
  5. 将MCP服务器添加到Claude Desktop后,您可以在工具部分查看它。 Claude Desktop工具

适用于Claude Desktop的MCP服务器配置

通过uv运行

{
  "mcpServers": {
    "agent-name": {
      "command": "uv", // 如果uv不在您的PATH中,您可能需要使用完整的路径。使用`which uv`找到路径。
      "args": [
        "--directory",
        "<PATH_TO_THE_PARENT_FOLDER>",
        "run",
        "mcp",
        "run",
        "<PATH_TO_THE_PARENT_FOLDER>/src/main.py"
      ],
      "env": {
        "DIRECTLINE_ENDPOINT": "endpoint-url",
        "COPILOT_AGENT_SECRET": "secret-key"
      }
    }
  }
}

通过python运行

在设置虚拟环境并安装必要的包之后,您可以使用以下命令运行服务器:

{
  "mcpServers": {
    "agent-name": {
      "command": "<PATH_TO_VENV>/bin/python",
      "args": [
        "<PATH_TO_THE_PARENT_FOLDER>/src/main.py"
      ],
      "env": {
        "DIRECTLINE_ENDPOINT": "endpoint-url",
        "COPILOT_AGENT_SECRET": "secret-key"
      }
    }
  }
}

或者,您可以通过运行以下命令(在虚拟环境中)将服务器安装到Claude Desktop:

mcp install src/main.py -f .env

通过docker运行

您可以使用Docker作为容器运行MCP服务器。确保您的机器上已安装并运行Docker。

构建Docker镜像:

docker build -t mcp-server-copilot-agent .

在您的Claude Desktop配置文件中添加以下内容:

{
  "mcpServers": {
    "agent-name": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-p", "8000:8000",
        "--env-file", "<PATH_TO_THE_PARENT_FOLDER>/.env",
        "mcp-server-copilot-agent"
      ]
    }
  }
}

一旦您将Claude Desktop配置为

🌐 其他MCP客户端的使用

此服务器遵循MCP协议规范,可以与任何兼容MCP的客户端一起使用。请参阅您的客户端文档,了解如何连接到外部MCP服务器的具体说明。

👩‍💻 开发

要为此项目做出贡献,请设置一个开发环境:

# 安装开发依赖项
uv sync -e dev

该项目使用Ruff进行代码检查:

# 运行代码检查器
ruff check .