项目简介
这个MCP服务器示例展示了如何使用Model Context Protocol框架构建一个后端服务。它当前实现了一个简单的笔记管理系统,允许大型语言模型(LLM)客户端通过标准化的MCP协议来列出、读取笔记资源,请求笔记总结的提示,以及通过工具添加新的笔记。该服务是'awesome-development-cooperation-data'仓库中IATI相关数据上下文服务的一个组成部分或基础示例。
主要功能点
- 资源管理: 托管和管理用户创建的文本笔记,每条笔记都可以作为资源被LLM客户端访问。
- 工具调用: 提供一个名为 'add-note' 的工具,允许LLM客户端创建新的笔记条目,从而更新服务器状态。
- 提示模板: 提供一个名为 'summarize-notes' 的提示模板,可根据需要(例如,选择 'brief' 或 'detailed' 样式)生成当前所有笔记的总结内容,供LLM客户端使用。
- 协议通信: 通过JSON-RPC协议与LLM客户端进行通信,支持标准输入/输出流传输。
安装步骤
- 克隆仓库: 首先,你需要克隆整个'awesome-development-cooperation-data' GitHub仓库到本地:
git clone https://github.com/datenlabor-bmz/awesome-development-cooperation-data.git cd awesome-development-cooperation-data - 安装依赖: 进入MCP服务器的根目录(即包含 'mcp_server_iati' 文件夹的目录),并安装其Python依赖:
cd interfaces/iati pip install "mcp-server[stdio]" pydantic- 'mcp-server[stdio]':安装MCP服务器框架及其标准输入/输出传输协议支持。
- 'pydantic':这是一个Python数据验证和设置管理库,用于处理MCP协议中的数据模型,如 'AnyUrl'。
- 运行服务器: 在 'interfaces/iati' 目录下,你可以直接以模块方式运行服务器:
服务器将通过标准输入/输出流等待MCP客户端连接和通信。python -m mcp_server_iati.server
服务器配置(供MCP客户端使用)
MCP客户端需要以下配置信息来连接并使用此MCP服务器。这些信息通常以JSON格式提供给MCP客户端:
{ "server_name": "mcp-server-iati", "command": "python", "args": [ "-m", "mcp_server_iati.server" ], "description": "一个简单的MCP笔记服务器,用于管理和交互文本笔记。", "root_path": "interfaces/iati" }
- 'server_name': 服务器的唯一标识符,本例中为 'mcp-server-iati'。
- 'command': 启动服务器所需的命令,本例中为 'python'。
- 'args': 传递给命令的参数列表,指定以模块方式运行 'mcp_server_iati.server'。
- 'description': 对服务器功能的简要描述。
- 'root_path': (可选)如果MCP客户端需要在特定目录下启动服务器,可以指定服务器代码的根路径。
基本使用方法
一旦MCP客户端连接到这个服务器,LLM就可以执行以下操作:
- 添加笔记: LLM可以调用名为 'add-note' 的工具,提供 'name'(笔记名称)和 'content'(笔记内容)作为参数来创建新笔记。
- 示例请求: LLM可能会发送一个请求,调用 'add-note' 工具,参数为 '{"name": "Meeting Summary", "content": "Discussed project roadmap and next steps."}'。
- 列出笔记: LLM可以请求服务器列出所有可用的笔记资源。
- 读取笔记: LLM可以通过 'note://internal/笔记名称' 格式的URI来读取特定笔记的内容。
- 示例请求: LLM可以请求读取资源 'note://internal/Meeting Summary'。
- 总结笔记: LLM可以请求 'summarize-notes' 提示,并可选地提供 'style' 参数('brief' 或 'detailed')来获取所有当前笔记的总结。
- 示例请求: LLM可以请求 'summarize-notes' 提示,参数为 '{"style": "detailed"}'。
信息
分类
生产力应用