openroland-mcp-core
Shared Python library for local MCP server hosting.
Features
- Transport-neutral
McpServerDefinitionregistry (entry points + TOML). - STDIO runner for agent clients (
run_stdio, stderr-only logs). - Local HTTP host on
127.0.0.1:3333with per-server Streamable HTTP mounts. - HTML dashboard at
/and health routes. - Windows system tray (
openroland-mcp-host) with one icon for all servers. - Per-server nested tray submenus, start/stop/restart, endpoint copy.
- Host tray actions: logs folder, config folder, start with Windows, LAN toggle (with warning), about, quit.
- Windows single-instance mutex and
POST /_host/activatefor second launches. - Generic tkinter credential forms (no secrets on stdout).
- Local origin validation on HTTP when LAN access is disabled.
Install
pip install openroland-mcp-core[http,windows-tray]
STDIO (single server)
from openroland_mcp_core.mcp.stdio import run_stdio
run_stdio(definition, config)
Windows tray host
openroland-mcp-host
From baseroot after make init:
make mcp-host
make forgejo-mcp-tray FORGEJO_MCP_CONFIG=D:/path/to/manifest.json
Host config: %APPDATA%\OpenRoLandMcpHost\config.toml
Logs: %LOCALAPPDATA%\OpenRoLandMcpHost\logs\
Register a server package
[project.entry-points."advpy.mcp_servers"]
my-server = "my_package.mcp_definition:create"
The callable must return an McpServerDefinition.
Cursor (HTTP)
Start the tray host first, then point Cursor at:
http://127.0.0.1:3333/servers/<server-id>/mcp
Example ~/.cursor/mcp.json:
{
"mcpServers": {
"forgejo-actions": {
"url": "http://127.0.0.1:3333/servers/forgejo-actions/mcp"
}
}
}
Do not put API tokens in mcp.json; use the tray Set Credentials...
action or environment variables read by the server package.
Metadata
Release files for openroland-mcp-core 0.1.23
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| openroland_mcp_core-0.1.23.tar.gz | 36.5 kB | Without provenance | Details for openroland_mcp_core-0.1.23.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| openroland_mcp_core-0.1.23-py3-none-any.whl | Python 3 | none | any | Details for openroland_mcp_core-0.1.23-py3-none-any.whl |
Total release size: 74.1 kB
Release files / openroland_mcp_core-0.1.23.tar.gz
| Download URL | openroland_mcp_core-0.1.23.tar.gz |
|---|---|
| Size | 36.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9297512b21d1b4c00a08a977a4ee6d3ac61b93ced1bfe76600a7e53871989f02
|
|
BLAKE2b-256 checksum How to use checksums |
90bcfae52c55cf0efe0aedc9c2f43d1414b629032b1d4a8b2faa1c9bec8461c2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / openroland_mcp_core-0.1.23-py3-none-any.whl
| Download URL | openroland_mcp_core-0.1.23-py3-none-any.whl |
|---|---|
| Size | 37.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
40d78bfbb4b54b0d16e3c84ef2a426a5924d9ea0d66a0b8b376f175025aad74a
|
|
BLAKE2b-256 checksum How to use checksums |
d850f4d1a56c4ef6815fb770e66aff754f1850fabb042bdcc7650448220aaa44
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Security for openroland-mcp-core 0.1.23
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.