Skip to content

Commit 7942e7c

Browse files
committed
rename to mcp
1 parent f2c0f1f commit 7942e7c

30 files changed

+369
-220
lines changed

README.md

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
# MCPM - Model Context Protocol Package Manager
1+
# MCP - Model Context Protocol Package Manager
22

3-
MCPM is a Homebrew-like service and command-line interface for managing Model Context Protocol (MCP) servers across various MCP clients.
3+
MCP is a Homebrew-like service and command-line interface for managing Model Context Protocol (MCP) servers across various MCP clients.
44

55
## Overview
66

7-
MCPM aims to simplify the installation, configuration, and management of Model Context Protocol servers with a focus on:
7+
MCP aims to simplify the installation, configuration, and management of Model Context Protocol servers with a focus on:
88

99
- Easy installation of MCP servers via a simple CLI
1010
- Centralized management of server configurations across multiple clients
@@ -13,7 +13,7 @@ MCPM aims to simplify the installation, configuration, and management of Model C
1313

1414
## Supported MCP Clients
1515

16-
MCPM will support managing MCP servers for the following clients:
16+
MCP will support managing MCP servers for the following clients:
1717

1818
- Claude Desktop (Anthropic)
1919
- Cursor
@@ -22,63 +22,63 @@ MCPM will support managing MCP servers for the following clients:
2222

2323
## Command Line Interface (CLI)
2424

25-
MCPM provides a comprehensive CLI built with Python's Click framework. Below are the available commands:
25+
MCP provides a comprehensive CLI built with Python's Click framework. Below are the available commands:
2626

2727
### Basic Commands
2828

2929
```
30-
mcpm --help # Display help information and available commands
31-
mcpm --version # Display the current version of MCPM
30+
mcp --help # Display help information and available commands
31+
mcp --version # Display the current version of MCP
3232
```
3333

3434
### Search Commands
3535

3636
```
37-
mcpm search [QUERY] # Search available MCP servers
38-
mcpm search --tags=TAG # Search servers by tag
37+
mcp search [QUERY] # Search available MCP servers
38+
mcp search --tags=TAG # Search servers by tag
3939
```
4040

4141
### Installation Commands
4242

4343
```
44-
mcpm install SERVER_NAME # Install an MCP server
45-
mcpm install SERVER_NAME --version=VERSION # Install specific version
46-
mcpm remove SERVER_NAME # Remove an installed MCP server
47-
mcpm update [SERVER_NAME] # Update installed servers (or specific server)
44+
mcp install SERVER_NAME # Install an MCP server
45+
mcp install SERVER_NAME --version=VERSION # Install specific version
46+
mcp remove SERVER_NAME # Remove an installed MCP server
47+
mcp update [SERVER_NAME] # Update installed servers (or specific server)
4848
```
4949

5050
### List Commands
5151

5252
```
53-
mcpm list # List all installed MCP servers
54-
mcpm list --available # List all available MCP servers
55-
mcpm list --outdated # List installed servers with updates available
53+
mcp list # List all installed MCP servers
54+
mcp list --available # List all available MCP servers
55+
mcp list --outdated # List installed servers with updates available
5656
```
5757

5858
### Configuration Commands
5959

6060
```
61-
mcpm config SERVER_NAME # Configure an installed MCP server
62-
mcpm config --edit SERVER_NAME # Open server config in default editor
63-
mcpm config --reset SERVER_NAME # Reset server config to defaults
61+
mcp config SERVER_NAME # Configure an installed MCP server
62+
mcp config --edit SERVER_NAME # Open server config in default editor
63+
mcp config --reset SERVER_NAME # Reset server config to defaults
6464
```
6565

6666
### Status Commands
6767

6868
```
69-
mcpm status [SERVER_NAME] # Show status of all or specific MCP servers
70-
mcpm status --client=CLIENT_NAME # Show status of MCP servers for a specific client
71-
mcpm enable SERVER_NAME --client=CLIENT_NAME # Enable an MCP server for a specific client
72-
mcpm disable SERVER_NAME --client=CLIENT_NAME # Disable an MCP server for a specific client
69+
mcp status [SERVER_NAME] # Show status of all or specific MCP servers
70+
mcp status --client=CLIENT_NAME # Show status of MCP servers for a specific client
71+
mcp enable SERVER_NAME --client=CLIENT_NAME # Enable an MCP server for a specific client
72+
mcp disable SERVER_NAME --client=CLIENT_NAME # Disable an MCP server for a specific client
7373
```
7474

7575
### Server Management
7676

7777
```
78-
mcpm server start SERVER_NAME # Start an MCP server
79-
mcpm server stop SERVER_NAME # Stop an MCP server
80-
mcpm server restart SERVER_NAME # Restart an MCP server
81-
mcpm server log SERVER_NAME # View server logs
78+
mcp server start SERVER_NAME # Start an MCP server
79+
mcp server stop SERVER_NAME # Stop an MCP server
80+
mcp server restart SERVER_NAME # Restart an MCP server
81+
mcp server log SERVER_NAME # View server logs
8282
```
8383

8484
## Roadmap
@@ -92,7 +92,7 @@ mcpm server log SERVER_NAME # View server logs
9292

9393
## Development
9494

95-
This repository contains the CLI and service components for MCPM, built with Python and Click following modern package development practices.
95+
This repository contains the CLI and service components for MCP, built with Python and Click following modern package development practices.
9696

9797
### Development Requirements
9898

@@ -107,9 +107,9 @@ This repository contains the CLI and service components for MCPM, built with Pyt
107107
The project follows the modern src-based layout:
108108

109109
```
110-
mcpm.sh/
110+
getmcp.sh/
111111
├── src/ # Source package directory
112-
│ └── mcpm/ # Main package code
112+
│ └── mcp/ # Main package code
113113
├── tests/ # Test directory
114114
├── test_cli.py # Development CLI runner
115115
├── pyproject.toml # Project configuration
@@ -120,8 +120,8 @@ mcpm.sh/
120120

121121
1. Clone the repository
122122
```
123-
git clone https://github.com/pathintegral-xyz/mcpm.sh.git
124-
cd mcpm.sh
123+
git clone https://github.com/pathintegral-xyz/getmcp.sh.git
124+
cd getmcp.sh
125125
```
126126

127127
2. Set up a virtual environment with uv
@@ -138,7 +138,7 @@ mcpm.sh/
138138
4. Run the CLI directly during development
139139
```
140140
# Either use the installed package
141-
mcpm --help
141+
mcp --help
142142
143143
# Or use the development script
144144
./test_cli.py --help
@@ -153,7 +153,7 @@ mcpm.sh/
153153

154154
- Use the src-based directory structure to prevent import confusion
155155
- Develop with an editable install using `uv pip install -e .`
156-
- Keep commands modular in the `src/mcpm/commands/` directory
156+
- Keep commands modular in the `src/mcp/commands/` directory
157157
- Add tests for new functionality in the `tests/` directory
158158
- Use the `test_cli.py` script for quick development testing
159159

pyproject.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ requires = ["hatchling"]
33
build-backend = "hatchling.build"
44

55
[project]
6-
name = "mcpm"
6+
name = "mcp"
77
version = "0.1.0"
88
description = "Model Context Protocol Package Manager"
99
readme = "README.md"
@@ -19,16 +19,16 @@ dependencies = [
1919
]
2020

2121
[project.scripts]
22-
mcpm = "mcpm.cli:main"
22+
mcp = "mcp.cli:main"
2323

2424
[tool.hatch.build]
25-
packages = ["src/mcpm"]
25+
packages = ["src/mcp"]
2626

2727
[tool.hatch.build.targets.wheel]
28-
packages = ["src/mcpm"]
28+
packages = ["src/mcp"]
2929

3030
[tool.hatch.build.targets.sdist]
31-
packages = ["src/mcpm"]
31+
packages = ["src/mcp"]
3232

3333
[tool.pytest.ini_options]
3434
testpaths = ["tests"]

src/mcp/__init__.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
"""
2+
MCP - Model Context Protocol Package Manager
3+
"""
4+
5+
__version__ = "0.1.0"

src/mcp/cli.py

Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
"""
2+
MCP CLI - Main entry point for the Model Context Protocol Package Manager CLI
3+
"""
4+
5+
import sys
6+
import click
7+
from rich.console import Console
8+
from rich.table import Table
9+
10+
from mcp.utils.config import ConfigManager
11+
12+
from mcp import __version__
13+
from mcp.commands import (
14+
search,
15+
install,
16+
remove,
17+
list_servers,
18+
config,
19+
status,
20+
toggle,
21+
server,
22+
client,
23+
)
24+
25+
console = Console()
26+
config_manager = ConfigManager()
27+
28+
# Set -h as an alias for --help
29+
CONTEXT_SETTINGS = dict(help_option_names=['-h', '--help'])
30+
31+
@click.group(context_settings=CONTEXT_SETTINGS, invoke_without_command=True)
32+
@click.version_option(version=__version__)
33+
@click.pass_context
34+
def main(ctx):
35+
"""MCP - Model Context Protocol Package Manager.
36+
37+
A tool for managing MCP servers across various clients.
38+
"""
39+
# If no command was invoked, show the active client and complete command list
40+
if ctx.invoked_subcommand is None:
41+
# Check if help flag was used
42+
if '--help' in sys.argv or '-h' in sys.argv:
43+
# Let Click handle the help display
44+
return
45+
46+
# Get active client
47+
active_client = config_manager.get_active_client()
48+
49+
# Create a nice ASCII art banner with proper alignment using Rich
50+
from rich.panel import Panel
51+
52+
# Create bold ASCII art with thicker characters for a more striking appearance
53+
logo = [
54+
" ███╗ ███╗ ██████╗██████╗ ",
55+
" ████╗ ████║██╔════╝██╔══██╗ ",
56+
" ██╔████╔██║██║ ██████╔╝ ",
57+
" ██║╚██╔╝██║██║ ██╔═══╝ ",
58+
" ██║ ╚═╝ ██║╚██████╗██║ ",
59+
" ╚═╝ ╚═╝ ╚═════╝╚═╝ ",
60+
"",
61+
f"The missing Model Context Protocol Manager v{__version__}",
62+
"The USB Port Manager for AI Applications"
63+
]
64+
65+
# No need to convert to joined string since we're formatting directly in the panel
66+
67+
# Create a panel with styled content
68+
panel = Panel(
69+
f"[bold green]{logo[0]}\n{logo[1]}\n{logo[2]}\n{logo[3]}\n{logo[4]}\n{logo[5]}[/]\n\n[bold yellow]{logo[7]}[/]\n[italic blue]{logo[8]}[/]",
70+
border_style="bold cyan",
71+
expand=False,
72+
padding=(0, 2),
73+
)
74+
75+
# Print the panel
76+
console.print(panel)
77+
78+
# Display active client information and main help
79+
console.print(f"[bold magenta]Active client:[/] [yellow]{active_client}[/]")
80+
console.print("")
81+
82+
# Display usage info
83+
console.print("[bold green]Usage:[/] [white]mcp [OPTIONS] COMMAND [ARGS]...[/]")
84+
console.print("")
85+
console.print("[bold green]Description:[/] [white]A tool for managing MCP servers across various clients.[/]")
86+
console.print("")
87+
88+
# Display options
89+
console.print("[bold]Options:[/]")
90+
console.print(" --version Show the version and exit.")
91+
console.print(" -h, --help Show this message and exit.")
92+
console.print("")
93+
94+
# Display available commands in a table
95+
console.print("[bold]Commands:[/]")
96+
commands_table = Table(show_header=False, box=None, padding=(0, 2, 0, 0))
97+
commands_table.add_row(" [cyan]client[/]", "Manage the active MCP client.")
98+
commands_table.add_row(" [cyan]config[/]", "View or edit the active MCP client's configuration file.")
99+
commands_table.add_row(" [cyan]list[/]", "List all installed MCP servers.")
100+
commands_table.add_row(" [cyan]remove[/]", "Remove an installed MCP server.")
101+
commands_table.add_row(" [cyan]server[/]", "Manage MCP server processes.")
102+
commands_table.add_row(" [cyan]toggle[/]", "Toggle an MCP server on or off for a client.")
103+
console.print(commands_table)
104+
105+
# Display coming soon commands
106+
console.print("")
107+
console.print("[bold yellow]Coming Soon:[/]")
108+
coming_soon_table = Table(show_header=False, box=None, padding=(0, 2, 0, 0))
109+
coming_soon_table.add_row(" [yellow]install[/]", "Install an MCP server.")
110+
coming_soon_table.add_row(" [yellow]search[/]", "Search available MCP servers.")
111+
coming_soon_table.add_row(" [yellow]status[/]", "Show status of MCP servers in Claude Desktop.")
112+
console.print(coming_soon_table)
113+
114+
# Additional helpful information
115+
console.print("")
116+
console.print("[italic]Run [bold]mcp CLIENT -h[/] for more information on a command.[/]")
117+
118+
# Register commands
119+
main.add_command(search.search)
120+
main.add_command(install.install)
121+
main.add_command(remove.remove)
122+
main.add_command(list_servers.list)
123+
main.add_command(config.config)
124+
main.add_command(status.status)
125+
main.add_command(toggle.toggle)
126+
main.add_command(server.server)
127+
main.add_command(client.client)
128+
129+
if __name__ == "__main__":
130+
main()

src/mcp/clients/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
"""
2+
Client integrations for MCPM - manages MCP client-specific configurations
3+
"""

src/mcpm/utils/claude_desktop.py renamed to src/mcp/clients/claude_desktop.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import os
66
import json
77
import logging
8-
from typing import Dict, List, Optional, Any
8+
from typing import Dict, Optional, Any
99
import platform
1010

1111
logger = logging.getLogger(__name__)

src/mcp/commands/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
"""
2+
MCP commands package
3+
"""

src/mcpm/commands/client.py renamed to src/mcp/commands/client.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
"""
2-
Client command for MCPM
2+
Client command for MCP
33
"""
44

55
import click
66
from rich.console import Console
77
from rich.table import Table
88
from rich.panel import Panel
99

10-
from mcpm.utils.config import ConfigManager
10+
from mcp.utils.config import ConfigManager
1111

1212
console = Console()
1313
config_manager = ConfigManager()
@@ -22,9 +22,9 @@ def client(client_name, list):
2222
If a client name is provided, sets it as the active client.
2323
2424
Examples:
25-
mcpm client # Show current active client
26-
mcpm client --list # List all supported clients
27-
mcpm client claude-desktop # Set Claude Desktop as the active client
25+
mcp client # Show current active client
26+
mcp client --list # List all supported clients
27+
mcp client claude-desktop # Set Claude Desktop as the active client
2828
"""
2929
# Get the list of supported clients
3030
supported_clients = config_manager.get_supported_clients()
@@ -53,11 +53,11 @@ def client(client_name, list):
5353
console.print("\nTo change the active client, run:")
5454
for client in sorted(supported_clients):
5555
if client != active_client:
56-
console.print(f" mcpm client {client}")
56+
console.print(f" mcp client {client}")
5757

5858
# Display a note about using --list
5959
console.print("\nTo see all supported clients:")
60-
console.print(" mcpm client --list")
60+
console.print(" mcp client --list")
6161
return
6262

6363
# Set the active client if provided
@@ -78,8 +78,8 @@ def client(client_name, list):
7878

7979
# Provide information about what this means
8080
panel = Panel(
81-
f"The active client ({client_name}) will be used for all MCPM operations.\n"
82-
f"Commands like 'mcpm list', 'mcpm status', and 'mcpm install' will now operate on {client_name}.",
81+
f"The active client ({client_name}) will be used for all MCP operations.\n"
82+
f"Commands like 'mcp list', 'mcp status', and 'mcp install' will now operate on {client_name}.",
8383
title="Active Client Changed",
8484
border_style="green"
8585
)

0 commit comments

Comments
 (0)