简单MCP 服务器示例
使用说明(Markdown格式)
-
项目简介
- 这是一个最小且可运行的MCP服务器示例,展示如何实现处理MCP格式请求与响应的核心逻辑,包括注册工具、执行工具、以及提供对外的简易资源/模板能力。服务器通过stdio传输与客户端通信,适合本地测试与教育演练。
-
主要功能点
- 列出服务器可用工具(list_tools)
- 调用工具执行(call_tool),返回文本内容
- 提供示例工具:获取当前时间、数字运算、随机笑话、字符串反转等
- 采用标准的MCP服务器结构,支持会话初始化、工具管理和简单的JSON-RPC风格交互
- 作为教学模板,便于后续扩展到更完整的资源、工具、Prompts等 MCP 功能
-
安装步骤
- 克隆代码并进入项目目录
- 确保 Python 3.10+ 环境
- 直接运行示例脚本(如下使用方式所示)
-
服务器配置(MCP客户端使用的启动配置.json,包含 server name、command、args 等信息) { "server_name": "simple-demo-server", "command": ["python3", "mcp_examples/your_first_mcp_server/simple_mcp_server.py"], "args": [] } 说明:
- server_name:服务器对外唯一标识名称,与代码中的服务器实例名称一致
- command/args:用于MCP客户端启动服务器所需的执行命令及参数;本示例采用本仓库中的脚本路径
- MCP客户端本身不需要在此处写代码,仅需要按上述配置启动服务端进程并通过标准输入输出与之通信
-
基本使用方法
- 使用前请确保当前工作目录在仓库根
- 直接在终端执行:python3 mcp_examples/your_first_mcp_server/simple_mcp_server.py
- 客户端可以通过标准输入输出(stdio)将JSON-RPC请求发给服务器,示例工具会返回JSON-RPC响应
- 服务器提供的工具列表包括:
- get_current_time:返回当前时间
- add_numbers:输入 a, b,返回 a+b
- random_joke:返回一个随机笑话
- reverse_string:输入 text,返回该文本反向结果
- 通过工具调用接口,可以实现从LLM或其他客户端发起的功能调用
-
运行与测试
- 本地直接运行 simple_mcp_server.py 即可启动示例服务器
- 可结合同仓库中的简单测试脚本(如 simple_mcp_test.py)对 server 的 list_tools、call_tool 进行基本测试
-
额外信息
- 本示例适合作为教育演示与入门模板,后续可扩展到完整的资源、模板渲染和更完整的JSON-RPC协议实现