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.1

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

Built distribution (wheel)

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

Total release size: 60.5 kB

Release files / mcp_alm-1.0.1.tar.gz

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

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

Download URL mcp_alm-1.0.1-py3-none-any.whl
Size 36.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
48dbcfda95bb57cef16392037448358497064a592f74cabcfa2c4665d4ebfb49
BLAKE2b-256 checksum
How to use checksums
71d2c8379201fe8e8d27ca21820ecd209a45a9b993f1b85e68013205838f7b0a
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

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

This release

1.0.1 This release

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