项目简介

这是EAGE 2025年度黑客马拉松的指导仓库,其中包含一个基于Multi-Context Protocol (MCP) 的服务器实现示例。该服务器旨在展示如何为大型语言模型(LLM)构建可调用的工具后端,帮助地质科学家解决日常工作中的问题。

主要功能点

  • 实现一个简单的MCP服务器,通过'fastmcp'库暴露工具。
  • 提供一个基础的问候工具('hello_world')。
  • 提供展示本地图片(如蒙娜丽莎)的工具('show_mona_lisa')。
  • 提供处理地震勘探数据(SEG-Y格式)并生成图像(地震剖面)的工具('fetch_F3')。
  • 支持通过命令行(uv)、Docker或部署到Modal云平台运行。
  • 可通过Github Copilot等兼容MCP的客户端进行交互。

安装步骤

  1. 安装 'uv' 命令行工具(用于依赖管理和本地运行):
    • Windows: 在PowerShell中运行 'powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"'
    • Linux/WSL/MacOS: 在终端中运行 'curl -LsSf https://astral.sh/uv/install.sh | sh'
  2. 克隆本项目仓库。
  3. 进入仓库目录。
  4. 创建并激活Python虚拟环境(推荐使用uv):
    • 'uv venv .venv'
    • 激活环境:Linux/MacOS使用 'source .venv/bin/activate',Windows使用 '.venv\Scripts\activate'
  5. 安装项目依赖: 'uv sync'
  6. (可选,如需开发)安装开发依赖: 'uv sync --group dev'

服务器配置

MCP客户端(如VS Code的Copilot插件)需要配置服务器的启动方式。以下是根据仓库信息生成的配置示例,您需要将这些配置信息添加到您的MCP客户端设置中(通常是一个'.vscode/mcp.json'文件或其他类似位置)。

// 这是一个MCP服务器的配置示例,应在MCP客户端中配置
[
  {
    // 服务器的唯一名称,用于在客户端中标识
    "name": "HelloWorldMCP",
    // 启动服务器的命令,这里使用uv运行Python脚本
    "command": "uv",
    // 传递给命令的参数
    "args": [
      "run",
      "hello_world_mcp/server.py"
    ],
    // 描述服务器提供的功能,用于LLM理解
    "instructions": "This server provides basic functionalities to demonstrate MCP!"
    // 其他可能的配置项,如工作目录("cwd")、环境变量("env")等,取决于客户端实现。
    // 例如,如果不在仓库根目录运行uv命令,可能需要指定cwd。
    // "cwd": "/path/to/your/cloned/repository",
    // "env": {}
  }
  // 可以添加其他MCP服务器的配置
]

注意: 上述JSON是用于说明MCP客户端所需配置的格式和内容,您不应直接将其作为代码运行。您需要将这些信息手动输入或导入到您使用的MCP客户端的设置界面中。确保 'command' 和 'args' 能够正确找到并运行您本地克隆的仓库中的 'hello_world_mcp/server.py' 文件。

基本使用方法

  1. 确保MCP服务器已按照上述配置启动并运行(例如,通过在终端中进入仓库目录后运行 'uv run hello_world_mcp/server.py')。
  2. 打开兼容MCP的LLM客户端(如Github Copilot、Cursor IDE等)。
  3. 在客户端的MCP配置中,确认已添加并启动了名为 'HelloWorldMCP' 的服务器连接。
  4. 在与LLM交互时,您可以尝试调用服务器暴露的工具。例如,尝试使用提示词让LLM执行以下操作:
    • 请求问候工具:如 "Ask HelloWorldMCP to say hello to Alice"
    • 请求图片工具:如 "Show me the Mona Lisa using HelloWorldMCP" 或 "Fetch the first inline of the F3 seismic data using HelloWorldMCP"
    • LLM将会通过MCP协议调用服务器上的工具,并将结果(如文本或图片)返回给您。
  5. 请参考仓库中的 'README.md' 文件获取更多关于与特定客户端(如Github Copilot, Cursor IDE)交互的详细步骤。

信息

分类

AI与计算