Skip to main content

MCP Server para IBM ALM/EWM

Servidor MCP (Model Context Protocol) que expõe operações de leitura e escrita no IBM ALM/EWM, permitindo que agentes AI interajam diretamente com work items (CCM) e requisitos (RM).

Funcionalidades

CCM (Change Management)

  • ccm_read_workitem — Lê um work item pelo número
  • ccm_classify_workitem — Classifica IB como MIGRACAO/CORRETIVA/MELHORIA
  • ccm_create_workitem — Cria IB ou Tarefa
  • ccm_update_workitem — Atualiza título/descrição
  • ccm_create_workitem_with_children — Cria IB com tasks filhas (planejamento)

RM (Requirements Management)

  • rm_read_artifact — Lê artefato RM pela URI
  • rm_create_artifact — Cria requisito (HF, EL, ET, REG)
  • rm_update_artifact — Atualiza artefato existente
  • rm_check_duplicate — Verifica duplicidade de título

Discovery

  • discover_project — Discovery completo de uma Project Area
  • list_workitem_types — Lista tipos de work item (CCM)
  • list_artifact_types — Lista tipos de artefato (RM)
  • list_iterations — Lista sprints/iterações
  • list_folders — Lista pastas RM
  • list_shape_fields — Lista campos de um shape

Instalação

Pré-requisitos

  1. Python 3.11+ com pip
  2. Credenciais do IBM ALM configuradas

Instalar dependências

cd alm/mcp
pip install -r requirements.txt

Configurar credenciais

Crie o arquivo de credenciais:

SO Caminho
Linux/Mac ~/.config/mcp-elm-requisitos/alm.properties
Windows %APPDATA%\mcp-elm-requisitos\alm.properties

Conteúdo:

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

⚠️ Nunca versione credenciais! O arquivo alm.properties está no .gitignore.

Configuração no Kiro

Adicione ao arquivo .kiro/settings/mcp.json do projeto:

{
  "mcpServers": {
    "alm": {
      "command": "python",
      "args": ["-m", "alm.mcp.server"],
      "cwd": "/caminho/para/jandaia",
      "env": {
        "PYTHONPATH": "/caminho/para/jandaia/alm/mcp"
      }
    }
  }
}

Ou usando uvx (após publicar no PyPI):

{
  "mcpServers": {
    "alm": {
      "command": "uvx",
      "args": ["mcp-alm"]
    }
  }
}

Uso

Configuração da Project Area

Antes de usar os tools de escrita, configure o arquivo pa_<projeto>.json:

  1. Execute o discovery para descobrir a estrutura:

    discover_project(project_area="NOME DA PA")
    
  2. Preencha o pa_<projeto>.json com as URLs descobertas (ver pa_template.json)

  3. Use os tools passando o caminho do config:

    ccm_create_workitem(config_path="alm/pa_meu-projeto.json", type="IB", title="...")
    

Exemplos de uso

Ler um work item

ccm_read_workitem(workitem_id="633739")

Classificar um IB

ccm_classify_workitem(workitem_id="633739", config_path="alm/pa_pab-batch.json")

Criar um artefato RM

rm_create_artifact(
    config_path="alm/pa_pab-batch.json",
    type="HF",
    title="HF - Consultar Benefícios",
    description_html="<p>História de usuário...</p>",
    module="GESTAO"
)

Criar IB com tasks

ccm_create_workitem_with_children(
    config_path="alm/pa_pab-batch.json",
    parent={
        "title": "[Exportação] Implementar novo job de exportação",
        "description_html": "<p>Descrição do IB...</p>",
        "iteration": "sprint_01"
    },
    children=[
        {"title": "[BE] Implementar ExportacaoJobConfig"},
        {"title": "[BE] Implementar ExportacaoStepConfig"},
        {"title": "[QA] Criar testes do job de exportação"}
    ]
)

Estrutura do módulo

alm/mcp/
├── __init__.py          # Versão do módulo
├── server.py            # Servidor MCP (entry point)
├── auth.py              # Autenticação JTS e sessão HTTP
├── common.py            # Namespaces, helpers e discovery compartilhados
├── ccm_tools.py         # Tools de work items (CCM)
├── rm_tools.py          # Tools de requisitos (RM)
├── discovery_tools.py   # Tools de discovery
├── requirements.txt     # Dependências Python
└── README.md            # Esta documentação

Troubleshooting

Erro de autenticação

Falha na autenticação — verifique usuário/senha no alm.properties
  • Verifique se o arquivo alm.properties existe no caminho correto
  • Verifique se as credenciais estão corretas
  • Confirme que o usuário tem acesso à Project Area

Sessão expirada

Sessão expirada ou sem acesso — servidor retornou página HTML

O servidor retornou HTML em vez de XML/JSON. Causas comuns:

  • Credenciais inválidas
  • Usuário sem acesso à PA
  • Sessão expirou (reconecte)

Project Area não encontrada

Project Area não encontrada: NOME DA PA
  • Verifique o nome exato da PA (case-sensitive em alguns servidores)
  • Use discover_project para listar PAs disponíveis

Tipo não configurado

Tipo 'IB' não configurado no pa.json

Execute o discovery e configure os tipos no pa_<projeto>.json:

list_workitem_types(config_path="alm/pa_projeto.json")

Contribuindo

  1. Mantenha o código em common.py para funções reutilizáveis
  2. Siga o padrão de retorno: string formatada para o agente
  3. Adicione docstrings com Args e Returns
  4. Atualize a versão em __init__.py ao fazer mudanças

Licença

Uso interno Dataprev — parte do kit JandaIA.

Release files for mcp-alm 1.0.4

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-alm 1.0.4
File Size Uploaded
mcp_alm-1.0.4.tar.gz 24.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mcp-alm 1.0.4
File Interpreter ABI Platform
mcp_alm-1.0.4-py3-none-any.whl Python 3 none any Details

Total release size: 60.6 kB

Release files / mcp_alm-1.0.4.tar.gz

Download URL mcp_alm-1.0.4.tar.gz
Size 24.0 kB
Tags Source
SHA-256 checksum
How to use checksums
cca3e1a1d1a6736182985dedb3081e71c0fd033758eb831a7bed1f8047af9c7c
BLAKE2b-256 checksum
How to use checksums
4b9751fb186d76e4a326aed188bff2ddb2e984cadf078f2058ea2279794a98e3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.22

Release files / mcp_alm-1.0.4-py3-none-any.whl

Download URL mcp_alm-1.0.4-py3-none-any.whl
Size 36.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3a765e54057c7d8f56fba8a2fa60e5eee4e2c3b2993ad13914c0b63515875553
BLAKE2b-256 checksum
How to use checksums
201fc8280703ee63fb168af9f1894d4b3d7749ba347db34bfe9c26a6563bf19e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.8.22

Release history Release notifications | RSS feed

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

This release

1.0.4 This release

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

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