Token导航 LogoToken导航TokenDH.com
Test Dh MCP logo
运维云端stdio官方级别未说明来源级核验

Test Dh MCP

MCP Server

一个基于FastMCP实现的多通道协议服务器,支持工具注册、服务器/客户端使用以及与Claude Desktop和MCP Inspector的集成。

工具数

6

提示词数

0

GitHub Stars

0

资源数

0
服务器开发PythonClaude工具集成Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

chipkent

提供方

chipkent

最后核验

2026/5/17 20:19

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run src/mcp_server.py

详细介绍

测试dh mcp

本项目演示了如何使用FastMCP实现定义和运行MCP(多通道协议)服务器。它包括工具注册、服务器/客户端使用以及与Claude Desktop和MCP Inspector集成的示例。

项目结构

  • src/mcp_server.py --运行MCP服务器的主要入口点(可配置为SSE或stdio传输)。
  • src/dhmcp/__init__.py --所有工具都使用此处注册 @mcp_server.tool() 装饰师。
  • src/mcp_client.py --测试工具的异步客户端示例。
  • requirements.txt --Python依赖项(包括 mcp[cli]autogen-ext).

使用 uv 用于依赖性管理

uv 是一个现代的、超快速的Python包管理器和运行器。它可以作为pip和venv的直接替代品,提供更快的安装和改进的依赖关系管理。

关键概念

  • pyproject.toml:指定项目依赖关系和元数据的现代推荐方法。uv将此作为真理的来源。
  • requirements.txt:支持与传统Python工具和工作流的兼容性。如果使用,则可选 pyproject.toml.
  • uv.lock:用于可复制安装的锁定文件(由uv自动管理)。

现代工作流(推荐)

  1. 将依赖项直接添加到项目中:
   uv pip install 

   # Example:
   uv pip install autogen-ext mcp[cli]

此更新 pyproject.tomluv.lock.

  1. 同步环境:
   uv pip install  # Installs all dependencies from pyproject.toml
  1. 运行脚本:
   uv run src/mcp_server.py
   uv run src/mcp_client.py
  1. 升级依赖关系:
   uv sync --upgrade

兼容性工作流程(requirements.txt)

  • 如果你有一个现有的 requirements.txt,您可以使用:
  uv pip install -r requirements.txt
  # or
  uv add --requirements requirements.txt
  • 这将同步依赖关系并更新您的锁文件。您可以保持两个文件同步,以实现最大兼容性。

备注

  • requirements.txt可选的 紫外线。对于新项目,您可以完全依赖 pyproject.tomluv.lock.
  • 对于遗留项目或与pip用户共享,请保留 requirements.txt 最新。
  • uv 在有或没有虚拟环境的情况下工作。使用 uv venv .venv 如果需要,可以创建一个。
  • 如果您有多个环境,请使用 --active 以当前激活的为目标。

快速入门:服务器

1.安装依赖项

建议使用虚拟环境:

  • 使用 venv:
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
  • 使用 uv:
uv pip install -r requirements.txt

2.运行MCP服务器

从项目根目录运行(选择适合您用例的传输):

  • SSE传输(默认,适用于浏览器/web客户端):
  python src/mcp_server.py
  # or, explicitly:
  python src/mcp_server.py --transport sse
  # or, using uv:
  uv run src/mcp_server.py

服务器将监听http://localhost:8000/sse

  • 标准传输(建议用于克劳德桌面/检查器):
  python src/mcp_server.py --transport stdio
  # or, using uv:
  uv run src/mcp_server.py --transport stdio

服务器将通过stdio进行通信(不需要HTTP端口)。

您应该看到日志输出,指示服务器正在使用所选传输运行。

快速入门:客户端

注: Python客户端(mcp_client.py)要求MCP服务器在中运行 SSE模式 (默认设置)。如果服务器在stdio模式下运行,它将无法工作。

1.安装依赖项

建议使用虚拟环境:

  • 使用 venv:
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
  • 使用 uv:
uv pip install -r requirements.txt

2.运行MCP客户端

从项目根目录运行:

  • 使用 venv:
cd src
python -m mcp_client
  • 使用 uv:
cd src
uv run mcp_client.py

您应该看到日志输出,指示客户端正在运行并列出可用工具。

克劳德桌面

您可以将Claude Desktop连接到本地stdio MCP服务器以使用自定义工具。

  1. 编辑 ~/Library/Application\ Support/Claude/claude_desktop_config.json 添加您的MCP服务器。Deephaven worker配置现在完全通过JSON配置文件处理,并且必须使用所需的指定路径 DH_MCP_CONFIG_FILE 环境变量。没有默认路径——必须始终设置此环境变量。

克劳德桌面配置示例(使用venv):

   {
     "mcpServers": {
       "test-dh-mcp": {
         "command": "/Users/chip/dev/test-dh-mcp/.venv/bin/python3",
         "args": ["/Users/chip/dev/test-dh-mcp/src/mcp_server.py", "--transport", "stdio"],
         "env": {
           "DH_MCP_CONFIG_FILE": "/Users/chip/dev/test-dh-mcp/deephaven_workers.json"
         }
       }
     }
   }

或与 uv:

   {
     "mcpServers": {
       "test-dh-mcp": {
         "command": "uv",
         "args": [
           "--directory",
           "/Users/chip/dev/test-dh-mcp/src",
           "run",
           "mcp_server.py",
           "--transport",
           "stdio"
         ],
         "env": {
           "DH_MCP_CONFIG_FILE": "/Users/chip/dev/test-dh-mcp/deephaven_workers.json"
         }
       }
     }
   }

> 注意:始终设置 DH_MCP_CONFIG_FILEenv 如果您的配置未命名,请参阅部分 deephaven_workers.json 在项目根目录中,或者如果你想明确配置位置。

      "args": [
        "--directory",
        "/Users/chip/dev/test-dh-mcp/src",
        "run", 
        "mcp_server.py", 
        "--transport", 
        "stdio"
      ],
      "env": {
        "DH_MCP_SERVER_NAME": "test-dh-mcp",
        "DH_MCP_HOST": "localhost",
        "DH_MCP_PORT": "10000",
        "DH_MCP_AUTH_TYPE": "Anonymous"
      }
    }

} }

注: 全部 DH_MCP_* Deephaven会话配置部分中列出的环境变量可以在此处设置。这些控制着每次工具调用的Deephaven会话。
  1. 重新启动克劳德桌面。
  2. 调试日志可以在中找到 ~/Library/Logs/Claude/

Deephaven Worker配置

所有Deephaven worker配置现在都通过JSON文件处理。必须使用指定此文件的路径 DH_MCP_CONFIG_FILE 环境变量。没有默认路径,此变量是必需的。

配置文件应该如下所示:

{
  "workers": {
    "worker1": {
      "host": "localhost",
      "port": 10000,
      "auth_type": "Anonymous",
      "auth_token": "",
      "never_timeout": true
    },
    "worker2": {
      "host": "otherhost",
      "port": 10001,
      "auth_type": "Bearer",
      "auth_token": "YOUR_TOKEN"
    }
  },
  "default_worker": "worker1"
}
  • workers 对象将工作者名称映射到他们的连接设置。
  • default_worker 是可选的,如果在工具调用中未指定worker名称,则使用它。如果设置,它必须与 workers 字典。
重要提示:DH_MCP_CONFIG_FILE 环境变量必须始终设置为worker配置文件的路径。没有默认配置路径。

每个工人支持的字段:

字段类型描述
hoststrDeephaven服务器主机名或IP(可选)
portintDeephaven服务器端口(可选)
auth_typestr认证类型(例如。, Anonymous, Bearer)(可选)
auth_tokenstr身份验证令牌(可选)
never_timeoutbool会话是否永远不会超时(可选,默认值:True)
session_typestr会话类型。, python (可选,默认:“python”)
use_tlsbool是否使用TLS/SSL(可选,默认值:False)
tls_root_certsstrnullTLS根证书的路径(可选)
client_cert_chainstrnull客户端证书链的路径(可选)
client_private_keystrnull客户端私钥路径(可选)
注意:根据您的用例和身份验证方法,您可以仅使用这些字段的一个子集来定义worker。没有严格要求的字段;将尽可能使用默认值。

工具使用

  • echo_tool(message: str) -> str:回显输入消息,前缀为“回显:”。
  • gnome_count_colorado() -> int:返回科罗拉多州当前的侏儒数量(演示工具)。
  • deephaven_worker_names() -> list[str]:从配置文件中返回所有已配置的Deephaven worker名称。
  • deephaven_default_worker() -> str:返回配置中设置的默认worker的名称(如果未设置,则返回None)。
  • deephaven_list_tables(worker_name: str = None) -> list:列出指定worker的表名。如果 worker_name 未提供,使用config中的default_worker。
  • deephaven_table_schemas(worker_name: str = None) -> list:返回指定worker中所有表的架构。如果 worker_name 未提供,使用config中的default_worker。

有关如何设置多个worker,请参阅上面的示例配置文件。

注册工具

在中定义新工具 dhmcp/__init__.py 使用 @mcp_server.tool() 装饰师。例子:

@mcp_server.tool()
def echo_tool(message: str) -> str:
    """
    Echo tool that returns the input message prefixed with 'Echo:'.
    """
    return f"Echo: {message}"

故障排除

  • 确保从正确的目录运行命令(src 用于直接脚本执行)。
  • 如果更改工具定义,请重新启动服务器。
  • 对于连接问题,请检查服务器是否正在预期的地址/端口上运行和侦听(对于SSE),或者是否通过stdio正确连接(对于Claude/Inspector)。

服务器正在运行吗?

  • SSE模式:
  curl http://localhost:8000/sse
  • 标准模式:

- 检查您的Claude/Inspector日志,查看是否成功连接和工具列表。

MCP检查员

MCP检查器是一个允许您检查MCP服务器状态的工具。

  1. 安装MCP检查器:
   npm install -g @modelcontextprotocol/inspector@latest
  1. 运行MCP检查器:
⚠️ 警告: 使用MCP检查器时,所有字符串值都必须用引号输入(例如“worker1”)。 如果您不使用引号,检查员可以发送 null 或向服务器发送无效值。 点击以下按钮可以验证该值 Format JSON 按钮。
- ** SSE mode: **

    - Using `venv`:

cd /Users/chip/dev/test-dh-mcp/src npx @modelcontextprotocol/inspector@latest \ /Users/chip/dev/test-dh-mcp/venv/bin/python3 mcp_server.py --transport sse


    - Using `uv`:

cd /Users/chip/dev/test-dh-mcp/src npx @modelcontextprotocol/inspector@latest \ uv run mcp_server.py --transport sse


- ** Stdio mode: **

    - Using `venv`:

cd /Users/chip/dev/test-dh-mcp/src npx @modelcontextprotocol/inspector@latest \ /Users/chip/dev/test-dh-mcp/venv/bin/python3 mcp_server.py --transport stdio


    - Using `uv`:

cd /Users/chip/dev/test-dh-mcp/src npx @modelcontextprotocol/inspector@latest \ uv run mcp_server.py --transport stdio

目录标签

目录标签

服务器开发PythonClaude工具集成多通道协议本地部署Python工具

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

6

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP