bluesurf-mcp
Servidor MCP local de solo lectura para que Claude u otros agentes IA lean
tickets de BlueSurf. Un solo paquete PyPI incluye el núcleo
(bluesurf_client) y el adaptador MCP (bluesurf_mcp).
Solo lectura por diseño: no hay operaciones de escritura.
Instalación
pip install bluesurf-mcp
En este monorepo, modo editable:
pip install -e ./bluesurf-mcp
Guardar credenciales (login / logout)
La contraseña no tiene que ir en mcp.json. Una vez, en una terminal:
bluesurf-mcp login
Pide usuario y contraseña, valida contra BlueSurf y guarda la contraseña en el almacén del sistema (Credential Manager en Windows, Keychain en macOS, Secret Service en Linux). El username queda en un JSON local, sin la contraseña.
bluesurf-mcp logout
borra lo guardado.
Configuración (variables de entorno)
El entorno gana sobre lo guardado con login. Útil para CI o para
sobrescribir sin tocar el almacén.
Claves canónicas BLUESURF_*; se aceptan SURF_* como fallback.
BLUESURF_BASE_URL— URL base (opcional; defaulthttps://surf.bluepeople.com).BLUESURF_COOKIE— cookie de sesión ya válida → usaCookieAuth.BLUESURF_USERNAME+BLUESURF_PASSWORD— credenciales → usaCredentialsAuth.
Precedencia: cookie en env → usuario/contraseña en env → bluesurf-mcp login.
El núcleo (bluesurf_client) no persiste secretos.
Correr el servidor
bluesurf-mcp
Se comunica por stdio (el transporte estándar para MCP local). Sin
argumentos no pide contraseña: usa env o las credenciales de login.
Registrar el MCP en un cliente
Claude Code / Cursor (.mcp.json o config de usuario)
Tras bluesurf-mcp login:
{
"mcpServers": {
"bluesurf": {
"command": "bluesurf-mcp"
}
}
}
Si bluesurf-mcp no está en el PATH, usa la ruta absoluta al ejecutable del
venv o python -m bluesurf_mcp.
Las variables BLUESURF_* en env siguen siendo válidas como override; no hace
falta poner la contraseña ahí.
Tools expuestas (solo lectura)
mis_proyectos— proyectos del usuario (id, smallCode, code, name).buscar_mis_tickets(project, include_closed=False)— tickets asignados al usuario.obtener_ticket(code)— detalle de un ticket por su código (p. ej.PROJ-123).listar_adjuntos(code)— archivos de la sección Files del ticket (id, name, is_image), sin descargarlos.descargar_adjuntos(code, destino, archivo_id=None)— guarda esos archivos endestino. Conarchivo_iddescarga solo uno; si no, todos. Devuelve id, name, path, content_type y size.
Usar el cliente desde Python
El paquete de import del núcleo es bluesurf_client:
from bluesurf_client import BlueSurfClient, CredentialsAuth # o CookieAuth
Metadata
Release files for bluesurf-mcp 0.2.0
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 |
|---|---|---|---|---|
| bluesurf_mcp-0.2.0.tar.gz | 16.8 kB | With provenance | Details for bluesurf_mcp-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| bluesurf_mcp-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for bluesurf_mcp-0.2.0-py3-none-any.whl |
Total release size: 37.7 kB
Release files / bluesurf_mcp-0.2.0.tar.gz
| Download URL | bluesurf_mcp-0.2.0.tar.gz |
|---|---|
| Size | 16.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e8f88048d4094879cdecf64dce0efffeb8eca296eb7669ff8975179386764b3b
|
|
BLAKE2b-256 checksum How to use checksums |
097dd633e3075ac4839515e1d0eabd131f215eed8644b444638b77250903987e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency logRelease files / bluesurf_mcp-0.2.0-py3-none-any.whl
| Download URL | bluesurf_mcp-0.2.0-py3-none-any.whl |
|---|---|
| Size | 20.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a9dd40bb2e516d90a2c311e61744008187cc8022a653f20d0544418b51633875
|
|
BLAKE2b-256 checksum How to use checksums |
b9552ceb33896ef281eb4ab40181d1b20e9ff645002ce5cd2d5da7ed623d0ec3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency logSecurity for bluesurf-mcp 0.2.0
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.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for bluesurf_mcp-0.2.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 6, 2026.
Transparency logA 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.