MCP服务器管理工具

Holster是一个基于Python的工具,用于直接在Claude桌面环境中管理MCP服务器配置,无需手动编辑文本文件。

  • by kimjune01
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 kimjune01/mcp-holster

使用说明

枪套

一个基于Python的工具,用于直接从Claude桌面管理Claude配置文件中的MCP服务器,无需手动修改文本编辑器。

动机

尽管Claude被提示在不必要的时候不要使用工具,但它往往过于渴望调用自己可以使用的工具。但是谁会手动添加和删除MCP服务器呢?

通过文本编辑器管理MCP服务器是一项非常适合LLM的任务,但Claude目前只提供指向配置文件的指针。Holster旨在通过直接在Claude桌面中为服务器管理提供无缝界面来改善这种体验。

特性

  • 🔄 Claude桌面内的无缝服务器管理
  • 📝 JSON配置处理,具有正确的解析和编码
  • 📋 对活动和非活动服务器进行单独跟踪
  • 🛠️ 简单的命令行界面
  • ✅ 全面的测试覆盖率

安装

  1. 克隆存储库:
git clone https://github.com/yourusername/holster.git
cd holster
  1. 创建并激活虚拟环境:
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
  1. 使用安装依赖项 uv:
uv pip install -r requirements.txt

配置

默认配置文件位置为:

~/Library/Application Support/Claude/claude_desktop_config.json

将此添加到您不断增长的MCP服务器列表中:

    "holster": {
        "command": "uv",
        "args": [
            "--directory",
            "<THIS_DIRECTORY>",
            "run",
            "holster.py"
        ]
    }

重新启动Claude以重新加载配置。

用法

了解Holster

首先,您可以全面了解Holster的工作原理:

# Get detailed explanation of Holster's functionality
explanation = await explain_holster()
print(explanation["overview"])
print(explanation["tools"])

创建新服务器

# Create a new server configuration
server_config = await create_server(
    name="my_server",
    command="uv",
    directory="/path/to/server",
    script="server.py"
)

读取服务器状态

# Get lists of active and inactive servers
servers = await list_servers()
print("Active servers:", list(servers["active"].keys()))
print("Inactive servers:", list(servers["inactive"].keys()))

更新服务器状态

# Deactivate servers
result = await update_server_status(
    server_names=["server1", "server2"],
    active=False
)
print(f"Deactivated {len(result['updated'])} servers")

# Activate servers
result = await update_server_status(
    server_names=["server1", "server2"],
    active=True
)
print(f"Activated {len(result['updated'])} servers")

删除服务器

# Delete servers from both active and inactive lists
result = await delete_servers(["server1", "server2"])
print(f"Deleted {len(result['deleted'])} servers")
print(f"Remaining active: {result['remaining_active']}")
print(f"Remaining inactive: {result['remaining_inactive']}")

健康检查

# Check if Holster server is running
response = await ping()
print(response)  # Should print "Pong!"

发展

运行测试

python -m pytest test_holster.py -v

范围

在范围内

  • Claude配置文件中的服务器配置管理
  • 跟踪活动和非活动服务器
  • 服务器配置的基本CRUD操作

超出范围

  • 自动发现和下载服务器
  • 基于Web的服务器搜索
  • 工作空间管理
  • 服务器版本控制

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

作者

June Kim和LLM工具