使用说明
研讨会-通过模型上下文协议(MCP)向LLM公开现有API
此存储库是一个车间支持,用于学习 设置MCP服务器 并展示一个的能力 API HTTP存在 在现实的开发环境中担任人工智能助理。
🎯 目标
在本研讨会结束时,您将能够设置一个功能性MCP服务器(Python或Java):
- 声明和展示 工具MCP (LLM可调用的操作)
- 声明和展示 资源MCP (LLM提供的数据)
- 使用客户端(GitHub副驾驶)测试和验证MCP服务器
- 提高LLM对MCP能力的理解和使用
- 了解安全风险并优化MCP服务器的性能
✅ 先决条件
- 发展环境 Python或Java
- 知道如何使用终端(启动服务器、读取日志)
- 基础知识:JSON、HTTP调用、函数/方法
- GitHub副驾驶在VS代码中启用
📖 上下文-DataHub
您是开发人员 数据中心,一个维护集中内部服务的团队 文件编制技术,des 互联网指南 et des 有用的片段 对于开发团队。
DataHub公开 API HTTP存在,用于:
- 后端开发人员
- 支持团队
- 数据团队
API可以工作,但不是为LLM设计的:
- 太多的路线需要知道
- 不明确的参数
- 没有可自动使用的描述
因此,团队决定添加 本地MCP服务器独立于API,仅向AI代理(GitHub副驾驶)公开有用的功能。
建筑风格:
sequenceDiagram
participant Dev as User (Dev)
participant Copilot as MCP Client<br/>GitHub Copilot (local)
participant MCP as MCP Server<br/>DataHubMCP Server
participant API as DataHub API
Dev->>Copilot: Question / action (ex: Résume les connaissances de datahub sur kubernetes)
Copilot->>MCP: MCP request (ex: search-document kubernetes)
MCP->>API: API call (ex: GET /documents?query=kubernetes)
API-->>MCP: Documents as structured response (application/json)
MCP-->>Copilot: MCP response (Natural language - Human/LLM friendly response)
Copilot-->>Dev: Réponse contextualisée / action assistée
🔌 API 端点 - DataHub
GET /health-检查API是否正常工作GET /documents-Lister les文件互联网(过滤器:标签、所有者、updated_after)GET /documents/{doc_id}-恢复完整文档GET /search-内容中的文本搜索(参数:q、范围、限制)GET /snippets-列出可用片段(过滤器:类型、服务)GET /snippets/{snippet_id}-获取精确的片段GET /tags-列出所有使用的标签GET /owners-列出拥有文档的团队
📁 项目结构:
mcp-workshop/
├── README.md # Ce fichier
├── US 1 à US 6.md # User Stories (exercices pratiques du workshop)
└── python/ # Version Python du serveur MCP
└── java/ # Version Java du serveur MCP
├── datahub_api/ # API DataHub (backend pré-existant)
🚀 快速启动
过程:
- 仔细阅读每个用户故事(US X-…MD文件)
- 遵循指导副驾驶模式使用的说明
- 在继续下一步之前,满足所有验收标准是有效的
- 实验:不要犹豫尝试不同的提词公式,直到获得第一次有效的提词
