项目简介
这是一个包含多种MCP服务器实现示例的仓库,旨在帮助开发者理解和构建自己的MCP应用后端。示例涵盖了不同的编程语言和功能,例如基于TypeScript的浏览器自动化服务器、基于Python的天气查询工具和图片爬取工具。
主要功能点
- 浏览器自动化: 通过工具实现网页导航、元素点击、输入填充、截图等操作。
- 信息查询: 提供根据城市编码查询天气信息的工具。
- 图片获取: 提供根据关键词从Bing搜索并获取图片的工具。
- 资源托管: 示例服务器能托管浏览器控制台日志、截图等资源,供客户端读取。
- Prompt 定义: 包含简单的Prompt模板定义示例。
- 多种语言实现: 提供Python和TypeScript的实现示例。
安装步骤
- 克隆仓库:
git clone https://github.com/LSTM-Kirigaya/openmcp-tutorial.git cd openmcp-tutorial - Python 示例 (simple-mcp, bing-images):
- 安装 uv 或 pip。uv 推荐用于更快的依赖管理。
- 安装项目依赖:
注意:'fastmcp' 依赖需要通过 'mcp[cli]' 安装,通常在项目目录下运行 'uv add mcp "mcp[cli]"' 或 'pip install "mcp[cli]" requests pydantic beautifulsoup4'。请参考具体示例目录下的依赖文件或 README。# 使用 uv cd simple-mcp # 或 bing-images uv sync # 或使用 pip # pip install -r requirements.txt
- TypeScript 示例 (my-browser):
- 安装 Node.js 和 npm 或 yarn。
- 安装项目依赖并构建:
cd my-browser npm install # 或 yarn install npm run build # 或 yarn build
服务器配置 (供MCP客户端使用)
MCP客户端连接服务器时需要配置服务器的启动命令和参数。以下是示例服务器对应的典型配置信息格式(JSON对象):
-
my-browser (TypeScript):
- 'name': "my-browser"
- 'command': "node"
- 'args': ["my-browser/dist/index.js"]
- 'transport': "stdio"
-
simple-mcp (Python):
- 'name': "锦恢的 MCP Server"
- 'command': "python"
- 'args': ["simple-mcp/main.py"]
- 'transport': "stdio"
-
bing-images (Python):
- 'name': "image_crawler"
- 'command': "python"
- 'args': ["bing-images/main.py"]
- 'transport': "stdio"
客户端需要根据其自身配置方式,将这些信息(服务器名称、启动命令、参数列表、传输协议)填入对应的配置项中。
基本使用方法
- 启动服务器: 根据您选择的示例,在对应的项目目录下通过命令行启动服务器。例如:
- Python: 'python simple-mcp/main.py' 或 'python bing-images/main.py'
- TypeScript: 'cd my-browser && node dist/index.js' 服务器启动后通常会监听Stdio传输。
- 连接客户端: 启动您的MCP客户端,并使用上面提供的配置信息连接到运行中的服务器。
- 交互: 通过MCP客户端与服务器交互:
- 列出可用的工具(如 'k_navigate', 'get weather by city code', 'image_crawler')。
- 调用工具执行特定任务(如导航到URL,查询天气,搜索图片)。
- 列出可用的资源(如 'console://logs', 'screenshot://...', 'greeting://...')。
- 读取资源内容(如获取浏览器控制台输出、查看截图)。
- 获取 Prompt 模板定义(如 'translate')。
信息
分类
AI与计算