Skip to main content

mcp-elm

Servidor MCP do IBM ELM — EWM (work items), DOORS Next (requisitos) e ETM (casos de teste) — para o power sdd. Expõe operações: o servidor lê a configuração da project area no projeto (pa_<nome>.json) e a LLM passa só ids e conteúdo. Manual: docs/manual-mcp-elm.md.

Instalação

Publicado no PyPI e já incluído no mcp.json do power sdd; requer o uv. Em outro cliente MCP:

{
  "mcpServers": {
    "elm": {
      "type": "stdio",
      "command": "uvx",
      "args": ["mcp-elm@latest"],
      "env": { "UV_SYSTEM_CERTS": "true" }
    }
  }
}

Desenvolvimento:

uv sync
uv run mcp dev mcp_elm/server.py   # depuração com o MCP Inspector

Credenciais

~/.config/mcp-elm/elm.properties (Windows: %APPDATA%\mcp-elm\elm.properties; outro caminho: MCP_ELM_CONFIG). CA próprio: export REQUESTS_CA_BUNDLE=/caminho/ca.pem. Login pelo form Jazz, com Basic se o servidor pedir.

[DEFAULT]
server = https://elm.SEU-SERVIDOR
user = SEU_USUARIO
password = SUA_SENHA

Configuração do projeto

<projeto>/.kiro/config/sdd/pa_<nome>.json, um por project area, gravado pela skill sdd-setup. O schema é o do power sdd (pa.schema.json); o pacote leva uma cópia (mcp_elm/pa.schema.json) — mantenha as duas iguais.

Toda tool (menos elm_setup_descobrir) recebe projeto (caminho absoluto do workspace: o Kiro não inicia o MCP de um power no workspace) e pa (o <nome>; omitido só quando há um arquivo).

Resposta

Um único TextContent, sem structuredContent:

{"ok":true,"dados":{...}}
{"ok":false,"erro":{"codigo":"precondicao","detalhe":"...","campo":"Estimativa"}}

elm_ler_wi e elm_ler_req devolvem Markdown (YAML + corpo); erro nelas sai no envelope. Códigos: config, credencial, indisponivel (rede ou timeout: tente de novo), nao_encontrado, permissao, precondicao, conflito, entrada.

Tools

Tool Faz dados
elm_status confere conexão e pa login, servidor, pas[], valido, faltando[]
elm_ler_wi lê um work item Markdown
elm_listar_wi lista por iteração, dono, tipo, pai, prefixo, estado itens[], truncado, total
elm_criar_wi cria com padrões do pa id, url, valores_usados
elm_atualizar_wi atualiza um ou vários atualizados[], falhas[]
elm_transicao assumir · concluir · reabrir id, estado, dono, ja_estava, pai?
elm_comentar comenta id
elm_anexo listar · enviar · baixar anexos[] · nome · caminho
elm_horas horas do WI ou da iteração lancamentos[], total_h · linhas[], total_h
elm_lancar_horas lança horas (só o dono) lancado, total_h
elm_remover_horas remove os seus lançamentos numa data id, data?
elm_ligar implementa, rastreia, afeta, testado por, valida, depende, relacionado ja_existia
elm_buscar_req busca requisitos por texto itens[], truncado
elm_ler_req lê um requisito Markdown
elm_publicar_req cria ou atualiza requisito id, url, acao
elm_criar_ct cria caso de teste já ligado id, url
elm_iteracao acha ou cria iteração e planos do time id, planos, criados[]
elm_sync bundle do DOORS Next (plano, baixar, enviar) baixar[], enviar[], conflitos[] · feitos[], conflitos[]
elm_buscar_req_local busca no bundle baixado (sentido + palavra) itens[], indexando?, restantes?
elm_ler_req_local lê documento do bundle (id ou path) com links path, markdown, links
elm_listar_req_local inventário do bundle itens[]
elm_indexar_local indexa o bundle em segundo plano; responde na hora com o progresso documentos, restantes, indexando
elm_setup_descobrir dados para montar o pa ccm, rm?, qm?, valores_de?

As _local leem o bundle em <projeto>/<rm.download> (índice em <bundle>/sqlite3/okf.db); depois do elm_sync baixar, indexe com elm_indexar_local. Sem nada baixado devolvem nao_encontrado com campo: "bundle": baixe com elm_sync ou pesquise no ELM remoto (elm_buscar_req/elm_ler_req). Detalhes no manual.

Testes e paridade

uv run --with pytest python -m pytest -q
uv run python paridade/paridade.py <projeto> --pa <nome> --wi <id> --req <id> [--iteracao <nome>]

A paridade compara as leituras com o 1.0.43 (commit a73e925) contra o ELM real; veja o manual.

Metadata

Release files for mcp-elm 3.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcp-elm 3.0.0
File Size Uploaded Provenance
mcp_elm-3.0.0.tar.gz 83.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for mcp-elm 3.0.0
File Interpreter ABI Platform
mcp_elm-3.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 148.7 kB

Release files / mcp_elm-3.0.0.tar.gz

Download URL mcp_elm-3.0.0.tar.gz
Size 83.0 kB
Tags Source
SHA-256 checksum
How to use checksums
da07cc3c07c518bf7faba8d2b120e551e2da2aa8eb2a76dee3f39afaa2c977ff
BLAKE2b-256 checksum
How to use checksums
d0e7fee33f787f3391efb8def0d9b33348dbb89bdc3493785aa87914b3b58e9b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / mcp_elm-3.0.0-py3-none-any.whl

Download URL mcp_elm-3.0.0-py3-none-any.whl
Size 65.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cd158f937d55aaf3553180b22a1e90d754d599c90588c7ff2760aba0d9bf1d3b
BLAKE2b-256 checksum
How to use checksums
dca37649a0734829610986989787895e5ca5080daf5dbc25cdd59ab7daad1bcc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.24 {"installer":{"name":"uv","version":"0.12.24","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for mcp-elm 3.0.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.

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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page