Build and deploy MCP server configurations from templates
Project description
buildmcp
Complete toolkit for managing MCP (Model Context Protocol) server configurations
Build template-based configs, manage servers interactively, and automate deployments - all from one unified toolset.
๐ Quick Start
# Install from PyPI
uv pip install buildmcp
# Choose your tool:
buildmcp --dry-run # Template builder
metamcp # Interactive TUI
metamcp-cli server:list # Command-line interface
๐ ๏ธ Tool Suite
buildmcp - Configuration Builder
Template-based MCP server configuration builder with environment variable substitution and checksums.
Best for: Building configs from templates, deploying to multiple targets, managing environment-specific configs
# Preview build
uv run buildmcp --dry-run
# Deploy to targets
uv run buildmcp
# Print specific profile config (no write)
uv run buildmcp --profile default
# Force write (skip checksums)
uv run buildmcp --force
Features:
- โ Template composition system
- โ
Environment variable substitution (
${VAR_NAME}) - โ SHA-256 checksum change detection
- โ Lock file tracking
- โ Multiple deployment targets
- โ Profile-based configurations
๐ Full buildmcp Documentation
MetaโMCP TUI - Interactive Terminal Interface
Full-featured terminal UI for browsing and managing MCP servers and namespaces.
Best for: Visual exploration, interactive management, namespace organization, tool status management
# Launch TUI
export METAMCP_SESSION_TOKEN="your-token"
uv run metamcp
Features:
- โ Server browsing and management
- โ Namespace exploration with tools view
- โ Interactive status toggling
- โ Bulk import interface
- โ Real-time updates
- โ Keyboard-driven navigation
Keyboard Shortcuts:
q- Quitr- Refreshc- Created- Deletei- Imports- Toggle server statust- Toggle tool status
metamcp-cli - Command-Line Interface
Scriptable CLI for all MetaMCP operations with full JSON input support.
Best for: Automation, CI/CD pipelines, shell scripts, batch operations
# List servers
metamcp-cli server:list
# Create from JSON (stdin)
echo '{"name": "test", "type": "STDIO", "command": "npx"}' | \
metamcp-cli server:create --stdin
# Bulk import
cat servers.json | metamcp-cli server:bulk-import --stdin
# Update namespace tools
metamcp-cli namespace:update-tool-status \
--namespace-uuid "..." \
--tool-uuid "..." \
--server-uuid "..." \
--status "ACTIVE"
Features:
- โ All server operations (list, create, delete, import)
- โ Namespace management (list, get, tools, status)
- โ JSON input (file, stdin, pipe)
- โ Rich table output
- โ Scriptable and pipeable
- โ Error handling with exit codes
๐ Features Comparison
| Feature | buildmcp | TUI | CLI |
|---|---|---|---|
| Template system | โ | โ | โ |
| Environment substitution | โ | โ | โ |
| Server management | โ | โ | โ |
| Namespace management | โ | โ | โ |
| Tool status control | โ | โ | โ |
| Visual interface | โ | โ | โ |
| JSON input/output | โ | โ | โ |
| Automation friendly | โ | โ | โ |
| Real-time updates | โ | โ | โ |
| Bulk operations | โ | โ | โ |
๐ Documentation
- QUICKSTART.md - Get started in 5 minutes
- USAGE.md - Complete usage guide with workflows
- docs/metamcp.md - MetaโMCP TUI guide
- docs/metamcp-cli.md - CLI reference
- CLAUDE.md - Project context for Claude
- MCP_FORMAT_SPECIFICATION.md - MCP format details
๐๏ธ Installation
Requirements
- Python 3.12+
- uv package manager
Install from PyPI
# Install with pip
pip install buildmcp
# Or with uv (recommended)
uv pip install buildmcp
# Verify installation
buildmcp --help
metamcp --help
metamcp-cli --help
Install from Source
# Clone repository
git clone https://github.com/starbased-co/buildmcp.git
cd buildmcp
# Install dependencies
uv sync
# Verify installation
uv run buildmcp --help
uv run metamcp --help
uv run metamcp-cli --help
Development Install
# Install in editable mode
uv pip install -e .
# Run tests
uv run pytest
# Run with verbose
uv run buildmcp --verbose --dry-run
๐ฏ Common Workflows
Workflow 1: Template-Based Deployment
# 1. Edit templates
vim ~/.config/nix/config/claude/mcp.json
# 2. Preview specific profile
uv run buildmcp --profile default
# 3. Preview all (dry-run)
uv run buildmcp --dry-run
# 4. Deploy
uv run buildmcp
# 5. Verify
cat ~/.claude/mcp.json
Workflow 2: Import to MetaMCP
# Import existing Claude config
cat ~/.claude/mcp.json | \
jq '.mcpServers' | \
metamcp-cli server:bulk-import --stdin
# Browse in TUI
uv run metamcp
Workflow 3: Namespace Management
# List namespaces
metamcp-cli namespace:list
# Get tools
metamcp-cli namespace:tools --uuid "ns-abc123..."
# Toggle tool status in TUI
uv run metamcp
# โ Navigate to namespace โ Tools โ Press 't'
Workflow 4: Automated Provisioning
#!/bin/bash
# Create servers from list
for name in $(cat servers.txt); do
echo "{\"name\": \"$name\", \"type\": \"STDIO\"}" | \
metamcp-cli server:create --stdin
done
๐ง Configuration
buildmcp Config
Location: ~/.config/nix/config/claude/mcp.json (or custom with --mcp-json)
{
"mcpServers": {
"base-server": {
"command": "npx",
"args": ["-y", "@scope/package"]
}
},
"templates": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_TOKEN": "${GITHUB_TOKEN}"
}
}
},
"profiles": {
"default": ["github"],
"minimal": []
},
"targets": {
"default": "~/.claude/mcp.json",
"custom": {
"read": "cat ~/custom-mcp.json",
"write": "cat > ~/custom-mcp.json"
}
}
}
MetaโMCP Authentication
# Set session token (from browser DevTools)
export METAMCP_SESSION_TOKEN="your-session-token"
# Or use cookie file
echo "your-token" > ~/.metamcp
chmod 600 ~/.metamcp
uv run metamcp --cookie-file ~/.metamcp
metamcp-cli --cookie-file ~/.metamcp server:list
๐ CLI Reference
buildmcp
buildmcp [OPTIONS]
Options:
--mcp-json PATH Config file (default: ~/.claude/mcp.json)
--verbose Show detailed output
--dry-run Preview without writing
--profile NAME Print built config for profile to stdout
--force Ignore checksums, redeploy all
--no-check-env Skip env var validation
metamcp (TUI)
metamcp [OPTIONS]
Options:
--base-url URL MetaMCP server URL (default: http://localhost:12008)
--cookie-file PATH Session token file
Keyboard:
q Quit
r Refresh
c Create
d Delete
i Import
s Toggle server status (in namespace view)
t Toggle tool status (in namespace view)
metamcp-cli
metamcp-cli <command-group>:<action> [OPTIONS]
Server Commands:
server:list List all servers
server:create [--name N --type T] Create server
server:delete --uuid UUID Delete server
server:bulk-import [-f FILE] Bulk import
Namespace Commands:
namespace:list List namespaces
namespace:get --uuid UUID Get details
namespace:tools --uuid UUID List tools
namespace:update-tool-status Update tool
namespace:update-server-status Update server
Options:
-f, --file PATH JSON file input
--stdin Read from stdin
๐งช Testing
# Run all tests
uv run pytest
# Run with coverage
uv run pytest --cov=src/buildmcp
# Run specific test
uv run pytest tests/test_builder.py
๐ Integrations
Claude Code
# Deploy to Claude Code
uv run buildmcp
# Restart Claude Code to load config
MCPNest
Deploy to mcpnest.dev using mcpnest-cli:
# Add mcpnest target
{
"targets": {
"mcpnest": {
"read": "mcpnest config read",
"write": "mcpnest config write"
}
},
"profiles": {
"mcpnest": ["linkup", "sequential-thinking"]
}
}
# Deploy
uv run buildmcp
Shell Scripts
# Use in scripts
SERVERS=$(metamcp-cli server:list --format json)
echo "$SERVERS" | jq '.[] | select(.type == "STDIO")'
๐ Troubleshooting
Authentication Issues
# Error: HTTP 401 Unauthorized
# โ Get fresh token from browser DevTools
export METAMCP_SESSION_TOKEN="new-token"
Connection Issues
# Cannot connect to server
# โ Check server is running
curl http://localhost:12008/api/health
# โ Use correct URL
uv run metamcp --base-url http://your-server:12008
Build Issues
# Missing environment variables
# โ Set the variable
export GITHUB_TOKEN="your-token"
# โ Or skip validation
uv run buildmcp --no-check-env
๐ Full Troubleshooting Guide
๐ค Contributing
Contributions welcome! Please:
- Fork the repository
- Create a feature branch
- Add tests for new features
- Ensure tests pass:
uv run pytest - Submit a pull request
๐ License
MIT License - see LICENSE file
๐ Links
- Repository: github.com/starbased-co/buildmcp
- Issues: github.com/starbased-co/buildmcp/issues
- MCPNest: mcpnest.dev
- MCP Protocol: modelcontextprotocol.io
Made with โค๏ธ by starbased
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file buildmcp-0.2.1.tar.gz.
File metadata
- Download URL: buildmcp-0.2.1.tar.gz
- Upload date:
- Size: 69.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
842d27f5fa895d55a7c1d112f04a84972d6c99d357552d4ab3e499680988343a
|
|
| MD5 |
efa8db177fd359b55478bd526b01d0e9
|
|
| BLAKE2b-256 |
72d84489c76f1a4a91f384ac9126c95ba277b457361f38e613bbe32552af549c
|
File details
Details for the file buildmcp-0.2.1-py3-none-any.whl.
File metadata
- Download URL: buildmcp-0.2.1-py3-none-any.whl
- Upload date:
- Size: 12.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8942467bffa2b5cb6061b1588d89e60097d9736ad26f8cdd1849fa2ab0cadef6
|
|
| MD5 |
42700f471204c0de4d6be1947ea9ca8a
|
|
| BLAKE2b-256 |
5ab9852c22d5fbb755b65495f1b1433c49c95f3acea00eb0952fc4ff878241cc
|