项目简介

这是一个包含多种MCP服务器实现示例的仓库,旨在帮助开发者理解和构建自己的MCP应用后端。示例涵盖了不同的编程语言和功能,例如基于TypeScript的浏览器自动化服务器、基于Python的天气查询工具和图片爬取工具。

主要功能点

  • 浏览器自动化: 通过工具实现网页导航、元素点击、输入填充、截图等操作。
  • 信息查询: 提供根据城市编码查询天气信息的工具。
  • 图片获取: 提供根据关键词从Bing搜索并获取图片的工具。
  • 资源托管: 示例服务器能托管浏览器控制台日志、截图等资源,供客户端读取。
  • Prompt 定义: 包含简单的Prompt模板定义示例。
  • 多种语言实现: 提供Python和TypeScript的实现示例。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/LSTM-Kirigaya/openmcp-tutorial.git
    cd openmcp-tutorial
  2. Python 示例 (simple-mcp, bing-images):
    • 安装 uv 或 pip。uv 推荐用于更快的依赖管理。
    • 安装项目依赖:
      # 使用 uv
      cd simple-mcp # 或 bing-images
      uv sync
      # 或使用 pip
      # pip install -r requirements.txt
      注意:'fastmcp' 依赖需要通过 'mcp[cli]' 安装,通常在项目目录下运行 'uv add mcp "mcp[cli]"' 或 'pip install "mcp[cli]" requests pydantic beautifulsoup4'。请参考具体示例目录下的依赖文件或 README。
  3. 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"

客户端需要根据其自身配置方式,将这些信息(服务器名称、启动命令、参数列表、传输协议)填入对应的配置项中。

基本使用方法

  1. 启动服务器: 根据您选择的示例,在对应的项目目录下通过命令行启动服务器。例如:
    • Python: 'python simple-mcp/main.py' 或 'python bing-images/main.py'
    • TypeScript: 'cd my-browser && node dist/index.js' 服务器启动后通常会监听Stdio传输。
  2. 连接客户端: 启动您的MCP客户端,并使用上面提供的配置信息连接到运行中的服务器。
  3. 交互: 通过MCP客户端与服务器交互:
    • 列出可用的工具(如 'k_navigate', 'get weather by city code', 'image_crawler')。
    • 调用工具执行特定任务(如导航到URL,查询天气,搜索图片)。
    • 列出可用的资源(如 'console://logs', 'screenshot://...', 'greeting://...')。
    • 读取资源内容(如获取浏览器控制台输出、查看截图)。
    • 获取 Prompt 模板定义(如 'translate')。

信息

分类

AI与计算