Copilot代理连接服务

一个实现MCP协议的服务器,用于连接Microsoft Copilot Studio代理,支持与任何MCP兼容客户端无缝集成。

  • by CrewAakash
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 crewaakash/mcp-server-for-copilot

使用说明

🤖 用于Copilot Studio代理的MCP服务器

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

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

✨ 特性

  • 🔌 通过以下方式连接到Copilot Studio代理 DirectLine API
  • 🧠 跨多个查询维护对话上下文
  • 🔄 与任何兼容MCP的客户端轻松集成
  • 💬 带有对话ID和水印跟踪的有状态对话
  • ⚙️ 可配置的代理定义

🛠️ 工具

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

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

🔧 配置

先决条件

  • 🔐 确保您已设置并配置了Copilot Studio代理 直接线路信道安全.
  • 📝 更新 agent_definitions 在 src/main.py 文件中包含您的代理人的详细信息。
  • 这 agent_definitions 应包括以下字段:
    • 📛 name:代理人的姓名
    • 📄 description:MCP客户代理的简要说明,以确定代理的责任。

环境变量

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

  • 🔗 DIRECTLINE_ENDPOINT:Copilot Studio代理的DirectLine API终结点
  • 🔑 COPILOT_AGENT_SECRET:用于通过DirectLine API与Copilot Studio代理进行身份验证的Bot密钥

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

📦 安装

先决条件

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

Python设置

# Setup environment with uv
uv venv
.venv\Scripts\activate  # On Windows
source .venv/bin/activate  # On macOS/Linux

# Install dependencies
uv sync

如果你更喜欢使用pip:

# Create a virtual environment
python -m venv .venv
.venv\Scripts\activate  # On Windows
source .venv/bin/activate  # On macOS/Linux

# Install dependencies
pip install -e .

MCP检验员测试

激活环境后,您可以使用以下命令在本地运行MCP服务器 MCP Inspector.

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

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

  3. 引导到 Tools 然后单击 List Tools 查看MCP服务器中的所有可用工具。

  4. 选择 query_agent 该工具用于向您的Copilot Studio代理发送查询。

使用Claude Desktop

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

  1. 下载 克劳德桌面 如果你还没有安装,请安装它。
  2. 引导到 File > Settings > Developer > Edit Config.
  3. 打开 claude_desktop_config.json 文件并将以下配置添加到 mcpServers 部分。您可以使用 uv, python,或 docker 运行服务器。
  4. 保存配置文件并重新启动Claude Desktop。
  5. 将MCP服务器添加到Claude Desktop后,您可以在工具部分查看它。

Claude Desktop的MCP服务器配置

运行通过 uv

{
  "mcpServers": {
    "agent-name": {
      "command": "uv", // you might need to use the full path to uv if it's not in your PATH. use `which uv` to find the path.
      "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服务器的具体说明,请参阅客户的文档。

👩‍💻 发展

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

# Install development dependencies
uv sync -e dev

该项目使用Ruff进行植绒:

# Run linter
ruff check .