使用说明
📝 MCP服务器的创建及其在代理模式下与GitHub Copilot的使用
该存储库包含用于管理粘贴笔记的MCP服务器(Model Context Protocol)的材料、示例和实现,该服务器用于讨论以代理模式将MCP服务器与GitHub Copilot集成。
📢 第一部分:关于谈话
📋 描述
本次为期一小时的演讲面向有兴趣通过定制的MCP服务器扩展GitHub Copilot功能并了解代理工作流的开发人员。您将学习如何使用GitHub Copilot和Claude AI创建和集成MCP服务器。
📚 议程
- MCP及其目的简介
- MCP服务器的体系结构
- 示例:创建基本MCP服务器
- MCP服务器与GitHub Copilot(代理模式)和Claude AI的集成
- 在VS代码中配置MCP扩展
- 服务器运行并连接到copilot
- 使用Copilot与MCP服务器交互的示例
- 使用Claude AI与MCP服务器交互的示例
- 使用案例和最佳做法
- 问题和答案
⚙️ 要求
- python:版本3.10或更高
- Node.js:版本18或更高
- npm 英语字母表的第15个字母 纱线:用于管理JavaScript依赖项
- 紫外线:现代Python环境和依赖关系管理器
- GitHub帐户:可访问copilot(代理模式)
- 编辑:vs建议使用MCP扩展的代码
- 克劳德·艾:(可选)用于与Claude的集成演示
🚀 安装
# Clonar el repositorio
git clone https://github.com/ingfcetina/mcp-servers.git
# Navegar al directorio del proyecto
cd mcp-servers
🔗 额外资源
🤖 第二部分:AI Sticky Notes MCP Server
📋 描述
该存储库的实际部分实现了一个MCP(Model Context Protocol)服务器来管理粘贴说明。允许AI模型创建、读取和汇总存储在文本文件中的注释。
🏗️ 建筑
graph TD
A[Cliente MCP] -->|Solicita acción| B[Servidor FastMCP]
B -->|Herramientas| C[add_note]
B -->|Herramientas| D[read_notes]
B -->|Recursos| E[get_latest_note]
B -->|Prompts| F[note_summary_prompt]
C -->|Escribe en| G[sticky_notes.txt]
D -->|Lee de| G
E -->|Lee de| G
F -->|Lee de| G
🧩 组件
MCP服务器提供三种主要类型的组件:
🛠️ 工具(@mcp.tool())
工具是模型可以调用以执行操作的函数。
classDiagram
class Tool {
+add_note(message: str) str
+read_notes() str
}
- add_note:向文件添加新注释
- read_notes:读取所有存储的笔记
📚 资源(@mcp.resource())
资源提供模型可以查询的数据。
classDiagram
class Resource {
+get_latest_note() str
}
- get_latest_note:仅返回最新注释
💬 提示(@mcp.prompt())
提示为AI模型生成自定义指令。
classDiagram
class Prompt {
+note_summary_prompt() str
}
- note_summary_prompt:创建总结所有笔记的提示
📊 数据流
sequenceDiagram
participant AI as Modelo de IA
participant MCP as Servidor MCP
participant File as sticky_notes.txt
AI->>MCP: Invocar add_note("Nueva nota")
MCP->>File: Escribir "Nueva nota"
MCP->>AI: "Note added: Nueva nota"
AI->>MCP: Invocar read_notes()
MCP->>File: Leer contenido
MCP->>AI: "Nueva nota\nOtra nota anterior"
AI->>MCP: Consultar notes://latest
MCP->>File: Leer última línea
MCP->>AI: "Nueva nota"
AI->>MCP: Usar note_summary_prompt()
MCP->>File: Leer contenido
MCP->>AI: "Summarize the following notes:\nNueva nota\nOtra nota anterior"
🚀 如何使用
环境准备
-
紫外线照射 (包和虚拟环境管理器):
# En Windows PowerShell (ejecutar como administrador) powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" # En Linux/macOS curl -LsSf https://astral.sh/uv/install.sh | sh -
使用Python 3.10或更高版本创建虚拟环境:
# Navega al directorio del proyecto cd C:\mcp-servers # Crea el entorno virtual uv venv --python=3.10 .venv -
主动虚拟环境:
- 在 PowerShell 中:
.venv\Scripts\Activate.ps1 # Si tienes problemas de permisos, ejecuta primero: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser - 在CMD中:
.venv\Scripts\activate.bat - 恩Bash:
source .venv/Scripts\activate
- 在 PowerShell 中:
-
安装MCP和其他所需的依赖项:
# SDK de MCP con CLI incluido uv pip install "mcp[cli]" # Otras dependencias útiles uv pip install pydantic python-dotenv pyyaml
与VS代码的集成
-
确保已安装GitHub Copilot:
- 缩写VS代码
- 转到扩展选项卡(Ctrl+Shift+X)
- 搜索“GitHub Copilot”并安装官方扩展
- 确保您可以在代理模式下访问copilot功能
-
在settings.json中配置MCP服务器:
- 如共享图像所示 VS Code已经有MCP的配置
- 您可以验证或修改settings.json中的设置:
"mcp": { "servers": { "Demo": { "command": "uv", "args": [ "run", "--with", "mcp[cli]", "mcp", "run", "C:\\mcp-servers\\project\\main.py" ] } } } -
通过GitHub Copilot与MCP服务器交互:
- 在代理模式下使用copilot,您可以使用以下命令
add_note,read_notesyget_latest_note直接地
- 在代理模式下使用copilot,您可以使用以下命令
与Claude AI的整合
-
在Claude AI中安装您的MCP服务器:
# Asegúrate de tener el entorno virtual activado .venv\Scripts\Activate.ps1 # Instala tu servidor en Claude AI mcp install C:\mcp-servers\project\main.py -
配置
claude_desktop_config.json:{ "mcpServers": { "Demo": { "command": "uv", "args": [ "run", "--with", "mcp[cli]", "mcp", "run", "C:\\mcp-servers\\project\\main.py" ] } } } -
通过Claude AI与服务器交互:
- 重新启动Claude AI客户端
- 在配置中选择MCP服务器“演示”
- 美国哥伦比亚
add_note,read_notesyget_latest_note在你的谈话中
直接执行促进发展
要直接运行MCP服务器:
# Activa el entorno virtual
.venv\Scripts\Activate.ps1
# Ejecuta el servidor MCP en modo desarrollo
uv run --with mcp mcp dev project/main.py
# Alternativa para ejecución sin inspector
uv run --with mcp mcp run project/main.py
MCP检查员将在您的浏览器中自动打开http://localhost:6277.
🔧 常见问题的解决
-
错误:乌索港(6277)
# Identifica el proceso usando el puerto netstat -ano | findstr :6277 # Termina el proceso (reemplaza <PID> con el número identificado) taskkill /F /PID <PID> -
连接错误:Si ves“连接错误,您的MCP服务器是否正在运行?”:
- 确保服务器正在运行
- 验证没有防火墙阻止连接
- 检查main.py文件的路径是否正确
-
虚拟环境未激活:
- 如果同时使用Conda和UV,请首先禁用Conda:
conda deactivate - 然后激活UV环境
- 如果同时使用Conda和UV,请首先禁用Conda:
📋 用于粘性笔记的MCP服务器组件参考
以下是在这个MCP服务器上实现的组件的完整细节,按其类型和功能组织:
| 类型 | 名称 | 描述 | 参数 | 返回值 |
|---|---|---|---|---|
| 🛠️ 工具 | add_note |
向存储文件添加新的粘合说明 | message (str):要保存的注释文本 |
添加注释文本的确认 |
| 🛠️ 工具 | read_notes |
检索并显示所有存储的笔记 | 无 | 所有现有笔记的完整列表 |
| 📚 资源 | notes://latest |
提供快速访问最新注释 | 无 | 添加的最后一个注释的文本 |
| 💬 提示 | note_summary_prompt |
生成命令,以便模型创建带有当前注释的结构化摘要 | 无 | 提示模板 |
这些组件共同工作,通过模型上下文协议(MCP)提供完整的粘贴说明管理。
📄 许可证
对于该存储库中的代码和示例,GNU通用公共许可证V3.0(GPL-3.0)适用。您可以根据本许可证的条款使用、修改和分发代码。查询文件 LICENSE 更多细节。