About Holster
Holster is a Python tool for managing MCP server entries in Claude Desktop's configuration, aimed at users who want to manage settings from Claude. It can inspect, create, activate, deactivate, and delete entries while handling JSON configuration.
Key features
- 01Manage MCP servers in Claude's config
- 02Create and delete server entries
- 03View active and inactive servers
- 04Change server activation status
- 05Parse and write JSON configuration
Use cases
- 01Add a server entry from Claude Desktop
- 02Deactivate servers that are not currently needed
- 03Review active and inactive servers
- 04Remove obsolete configuration entries
MCP support
Holster runs as an MCP server and exposes tools to manage MCP server entries in Claude's configuration.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEHolster
A Python-based tool for managing MCP servers in Claude's configuration file directly from Claude desktop, eliminating the need for manual text editor modifications.
Motivation
Although Claude is prompted not to use tools when not necessary, it is often too eager to invoke tools at its disposal. But who's gonna add and remove MCP servers manually?
Managing MCP servers through text editors is a task well-suited for LLMs, but Claude currently only provides a pointer to the config file. Holster aims to improve this experience by providing a seamless interface for server management directly within Claude desktop.
Features
- 🔄 Seamless server management within Claude desktop
- 📝 JSON configuration handling with proper parsing and encoding
- 📋 Separate tracking of active and inactive servers
- 🛠️ Simple command-line interface
- ✅ Comprehensive test coverage
Installation
- Clone the repository:
git clone https://github.com/yourusername/holster.git
cd holster
- Create and activate a virtual environment:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
- Install dependencies using
uv:
uv pip install -r requirements.txt
Configuration
The default configuration file location is:
~/Library/Application Support/Claude/claude_desktop_config.json
Add this to your growing list of MCP servers:
"holster": {
"command": "uv",
"args": [
"--directory",
"<THIS_DIRECTORY>",
"run",
"holster.py"
]
}
Restart Claude to reload the config.
Usage
Understanding Holster
First, you can get a comprehensive explanation of how Holster works:
# Get detailed explanation of Holster's functionality
explanation = await explain_holster()
print(explanation["overview"])
print(explanation["tools"])
Creating a New Server
# Create a new server configuration
server_config = await create_server(
name="my_server",
command="uv",
directory="/path/to/server",
script="server.py"
)
Reading Server Status
# 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()))
Updating Server Status
# 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")
Deleting 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']}")
Health Check
# Check if Holster server is running
response = await ping()
print(response) # Should print "Pong!"
Development
Running Tests
python -m pytest test_holster.py -v
Scope
In Scope
- Server configuration management within Claude's config file
- Tracking of active and inactive servers
- Basic CRUD operations for server configurations
Out of Scope
- Automatic server discovery and downloading
- Web-based server search
- Workspace management
- Server versioning
License
This project is licensed under the MIT License - see the LICENSE file for details.
Author
June Kim & LLM tools
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.