MCP server for interacting with serial consoles via conserver
Project description
mcp-conserver
MCP server for interacting with serial consoles managed by a conserver daemon.
Allows AI agents (e.g. Claude) to connect to serial consoles, send commands, read output, and manage console sessions through the Model Context Protocol.
Features
- Connect to a console in attach, spy (read-only), or force mode
- Send commands and read output interactively
- Send control characters (Ctrl-C, Ctrl-D, etc.)
- Query who is connected to consoles
- Disconnect users from consoles
- SSL/TLS and GSSAPI/Kerberos authentication
Installation
python -m venv venv
source venv/bin/activate
pip install -e .
Configuration
The server reads ~/.consolerc for default master server, port,
and username:
config * {
master conserver.example.com;
port 782;
username myuser;
}
All defaults can be overridden per tool call.
Usage with Claude Code
Activate the virtual environment before starting Claude Code:
source /path/to/mcp-conserver/venv/bin/activate
claude
Then add to .mcp.json in your project directory (see
mcp.json.example):
{
"mcpServers": {
"conserver": {
"command": "mcp-conserver"
}
}
}
Tools
| Tool | Description |
|---|---|
console_connect |
Connect to a console (attach/spy/force) |
console_close |
Disconnect and close a session |
console_list_sessions |
List active sessions |
console_send |
Send text and return output |
console_read |
Read latest console output |
console_send_control |
Send control characters |
console_who |
Show who is connected |
Architecture
Uses libconserver.py, a pure Python implementation of the conserver
client protocol, supporting SSL/TLS (anonymous DH), GSSAPI/Kerberos
authentication, and multi-hop server redirects.
Each console session runs a background reader thread that continuously drains the socket into a buffer, ensuring no data is lost between tool calls.
License
GPLv2 - see LICENSE.
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 mcp_conserver-0.1.0.tar.gz.
File metadata
- Download URL: mcp_conserver-0.1.0.tar.gz
- Upload date:
- Size: 18.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
773b8f6fdae48ccc162917e8adde2f0ff088afb48d9f98b8b6d62cdb21238c47
|
|
| MD5 |
cee44c6251985e24f5a4d85c01b85c5b
|
|
| BLAKE2b-256 |
8ea2ad3dbc504e95f19f57655339002e2bff3bcd70685d7443bfd57d76486d73
|
Provenance
The following attestation bundles were made for mcp_conserver-0.1.0.tar.gz:
Publisher:
python-publish.yml on vivier/mcp-conserver
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mcp_conserver-0.1.0.tar.gz -
Subject digest:
773b8f6fdae48ccc162917e8adde2f0ff088afb48d9f98b8b6d62cdb21238c47 - Sigstore transparency entry: 2038893159
- Sigstore integration time:
-
Permalink:
vivier/mcp-conserver@5d06f71d4fb0dd1979111a685c7a30355a19aff1 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/vivier
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@5d06f71d4fb0dd1979111a685c7a30355a19aff1 -
Trigger Event:
release
-
Statement type:
File details
Details for the file mcp_conserver-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mcp_conserver-0.1.0-py3-none-any.whl
- Upload date:
- Size: 19.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
48250915771e6e648ece3f22fe2715e8d0188d481ea63c3e8685326728f3d8b0
|
|
| MD5 |
aaae57ffa73502c2e8f4b861ac73871d
|
|
| BLAKE2b-256 |
8df7e4567821fb4ef4444950723e5e84ad293aa9f7695b2184489c1bac8d154a
|
Provenance
The following attestation bundles were made for mcp_conserver-0.1.0-py3-none-any.whl:
Publisher:
python-publish.yml on vivier/mcp-conserver
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mcp_conserver-0.1.0-py3-none-any.whl -
Subject digest:
48250915771e6e648ece3f22fe2715e8d0188d481ea63c3e8685326728f3d8b0 - Sigstore transparency entry: 2038893320
- Sigstore integration time:
-
Permalink:
vivier/mcp-conserver@5d06f71d4fb0dd1979111a685c7a30355a19aff1 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/vivier
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@5d06f71d4fb0dd1979111a685c7a30355a19aff1 -
Trigger Event:
release
-
Statement type: