
Research
PyPI Package Disguised as Instagram Growth Tool Harvests User Credentials
A deceptive PyPI package posing as an Instagram growth tool collects user credentials and sends them to third-party bot services.
Web UI and API for managing MCP Orchestrator (mcpo) instances and configurations.
A web-based control panel designed to simplify the management of MCP-to-OpenAPI (mcpo
) instances and their server configurations. It provides a user-friendly UI and an API for interacting with mcpo
.
https://github.com/user-attachments/assets/dc3f11de-82f6-42ee-a72f-7181c9af0f45
stdio
, sse
, streamable_http
types).mcpo
configuration.mcpServers
, direct name-to-config map, list of server objects).cmd /c npx ...
-> npx ...
).mcpo
process directly from the UI.mcpo
process (Running, Stopped, Error).mcpo
configuration from current server definitions and then restarts mcpo
.mcpo
process log file.mcpo
startup parameters (port, API key usage, config file path, log file path).mcpo
.mcpo
instance by querying its OpenAPI specifications.mcpo
process using a built-in echo server.mcpo
if health checks fail consecutively.mcp_generated_config.json
file for mcpo
based on enabled server definitions.npx
, uvx
, docker
with cmd /c ...
).To enhance reliability and enable deployment in offline or air-gapped environments, the MCPO Control Panel now bundles its core external frontend assets:
This means the application does not rely on external CDNs for these resources, ensuring it remains fully functional without internet access after initial installation.
It's recommended to use uv
for installation if available, as it's generally faster.
uv pip install mcpo-control-panel
pip install mcpo-control-panel
Clone the repository:
git clone https://github.com/daswer123/mcpo-control-panel.git
cd mcpo-control-panel
Install in editable mode (this will also install dependencies):
pip install -e .
You can also run the MCPO Control Panel using Docker. This is a convenient way to run the application in an isolated environment.
Pull the ready-made image from Docker Hub:
docker pull daswer123/mcpo-control-panel:latest
Or build the Docker image yourself:
Ensure you have Dockerfile
and docker-compose.yml
in your project root.
docker compose build
Run the application using Docker Compose:
docker compose up
This will start the MCPO Control Panel, and it will be accessible at http://localhost:8083/ui
by default. The data will be persisted in a ./data
volume on your host machine.
You can customize the port and data directory in the docker-compose.yml
file if needed. Environment variables like MCPO_MANAGER_HOST
, MCPO_MANAGER_PORT
, and MCPO_MANAGER_DATA_DIR
are also respected by the Docker container.
Once installed, you can run the MCPO Control Panel.
Using python -m
(works with pip
or uv
installations):
python -m mcpo_control_panel [OPTIONS]
Using the installed script (if your Python scripts directory is in PATH):
mcpo-control-panel [OPTIONS]
Common Options:
--host TEXT
: Host to bind the server to. (Default: 127.0.0.1
)
MCPO_MANAGER_HOST
--port INTEGER
: Port to bind the server to. (Default: 8083
)
MCPO_MANAGER_PORT
--workers INTEGER
: Number of Uvicorn workers. (Default: 1
)
MCPO_MANAGER_WORKERS
--reload
: Enable auto-reload (for development).--config-dir TEXT
: Directory for storing MCPO manager data (SQLite database, PID files, generated configs, settings).
~/.mcpo_manager_data
(e.g., C:\Users\YourUser\.mcpo_manager_data
on Windows or /home/youruser/.mcpo_manager_data
on Linux).MCPO_MANAGER_DATA_DIR
Example:
python -m mcpo_control_panel --port 8083 --reload --config-dir "/path/to/my/mcpo-data"
Example using uvx
(executes the command in an isolated environment with the specified package):
This is particularly useful for quick runs or testing without altering your global/current environment.
uvx --with mcpo-control-panel python -m mcpo_control_panel --host 0.0.0.0 --port 8934 --config-dir test
Or using environment variables:
export MCPO_MANAGER_PORT=8083
export MCPO_MANAGER_DATA_DIR="/path/to/my/mcpo-data"
python -m mcpo_control_panel --reload
The application will create the specified --config-dir
if it doesn't exist. All application data, including the SQLite database (mcp_manager_data.db
), settings file (mcpo_manager_settings.json
), generated MCPO configuration (mcp_generated_config.json
), and the mcpo
process PID file, will be stored in this directory.
The MCPO Control Panel can be effectively run behind a reverse proxy. Here's how to configure it:
Proxy Headers:
The application utilizes ProxyHeadersMiddleware
from Uvicorn, which automatically respects X-Forwarded-Proto
and X-Forwarded-Host
headers. It's crucial to ensure your reverse proxy (e.g., Nginx, Apache, Traefik) is configured to pass these headers correctly.
X-Forwarded-Proto
: This header should reflect the protocol used by the client to connect to the proxy. If SSL termination occurs at the proxy (i.e., clients connect via HTTPS), the proxy must set X-Forwarded-Proto: https
.X-Forwarded-Host
: This header should reflect the original host requested by the client.Base Path / Subpath (root_path
):
If the MCPO Control Panel is served under a specific subpath of a domain (e.g., https://example.com/mcpmanager/
), you need to configure the root_path
setting within the application.
root_path
to the subpath, including the leading slash (e.g., /mcpmanager
).https://mcp.example.com/
or http://localhost:8083/
), the root_path
setting should be left empty (which is its default value).The application uses this root_path
to correctly generate all internal links and serve static assets.
General Proxy Reminder: Always ensure your reverse proxy is configured to set X-Forwarded-Proto
and X-Forwarded-Host
headers appropriately and to correctly proxy WebSocket connections if any part of the application were to use them (though MCPO Control Panel primarily uses HTTP/HTMX).
Once the server is running, open your web browser and navigate to:
http://<host>:<port>/ui
For example, if running with default settings: http://127.0.0.1:8083/ui
Most configurations for the mcpo
process itself (like its port, whether it uses an API key, log file paths) and for the UI (like log auto-refresh settings, health check parameters) are managed through the web interface on the "MCPO Settings" page.
These settings are saved to mcpo_manager_settings.json
within the MCPO_MANAGER_DATA_DIR_EFFECTIVE
(the directory specified by --config-dir
or its default).
This project is licensed under the MIT License
FAQs
Web UI and API for managing MCP Orchestrator (mcpo) instances and configurations.
We found that mcpo-control-panel demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
A deceptive PyPI package posing as an Instagram growth tool collects user credentials and sends them to third-party bot services.
Product
Socket now supports pylock.toml, enabling secure, reproducible Python builds with advanced scanning and full alignment with PEP 751's new standard.
Security News
Research
Socket uncovered two npm packages that register hidden HTTP endpoints to delete all files on command.