Rossum MCP & Agent

Kit de servidor MCP e agente de IA para processamento inteligente de documentos com Rossum.

Documentação

Rossum MCP Server & Rossum Agent

Orquestração Rossum com IA: fluxos de trabalho documentais por conversa, depuração automática de pipelines e configuração de automação por linguagem natural.

Documentation API Reference Python License: MIT

PyPI - rossum-mcp PyPI - rossum-agent PyPI - rossum-agent-client

codecov CodeQL Snyk Security CodeFactor

MCP Fully Typed Rossum API Claude Opus 4.6

Kit de ferramentas de IA conversacional para a plataforma Rossum de processamento inteligente de documentos. Transforma a configuração complexa de fluxos de trabalho, depuração e configuração em conversas em linguagem natural por meio de um servidor Model Context Protocol (MCP) e um agente de IA especializado.

[!IMPORTANT] Este projeto foi movido para um GitLab privado da empresa para uma reformulação importante. Este repositório público está temporariamente arquivado e não receberá atualizações durante esse período.

[!NOTE] Este não é um projeto oficial da Rossum. É uma integração desenvolvida pela comunidade, construída sobre a API Rossum, e não um produto (ainda).

O Que Você Pode Fazer?

Exemplo 1: Configuração de Organização

Configure uma organização completa de cliente com filas, esquemas, validações, detecção de duplicatas, notificações por e-mail e configuração de interface:

1. Create two new queues: Invoices and Credit Notes.
2. Update schemas w.r.t. schema specification (Invoices with 15 fields including line items table, Credit Notes as-is)
3. Add a computed field "The Net Terms" to Invoices queue (Due Date - Issue Date → Net 15/30/Outstanding)
4. Implement duplicate document detection on Document ID
5. Add business validations: total amount cap, line items sum check, quantity × unit price check
6. Add email notification extension on document status change to 'to_review'
7. Update Invoice queue UI settings to display 8 key fields
8. Verify setup by uploading a sample invoice twice (testing duplicate detection)

O Que Isso Demonstra:

  • Configuração de Filas e Esquemas: Cria filas com especificações detalhadas de campos, incluindo tabelas de itens de linha
  • Campos Calculados: Adiciona campos derivados com lógica de negócios (categorização por diferença de datas)
  • Detecção de Duplicatas: Configura deduplicação em nível de documento com mensagens voltadas ao usuário
  • Validações de Negócios: Implementa validação com múltiplas regras (limites de valores, verificações de soma, verificações aritméticas)
  • Notificações por E-mail: Configura alertas por e-mail com modelos, acionados por mudanças de estado do documento
  • Configuração de Interface: Personaliza a exibição de colunas da fila para eficiência operacional
  • Verificação de Ponta a Ponta: Valida toda a configuração com uploads de documentos reais

Este exemplo mostra a capacidade do agente de configurar uma organização pronta para produção do zero — tudo a partir de um único prompt conversacional.

Exemplo 2: Análise e Documentação de Hooks

Analise e documente automaticamente todos os hooks/extensões configurados em uma fila:

Briefly explain the functionality of every hook based on description and/or code one by one for a queue `2042843`.

Store output in extension_explanation.md

O Que Isso Faz:

  • Lista todos os hooks/extensões na fila especificada
  • Analisa a descrição e o código de cada hook
  • Gera explicações claras e concisas sobre a funcionalidade
  • Documenta eventos de acionamento e configurações
  • Salva documentação abrangente em um arquivo markdown

Este exemplo mostra como o agente pode analisar automações existentes para ajudar equipes a entenderem seus fluxos de trabalho configurados.

Exemplo 3: Demonstração de Divisão e Classificação Aurora

Configure um pipeline completo de divisão e classificação de documentos com filas de treinamento, mecanismo de divisão, hooks automatizados e roteamento inteligente:

1. Create three new queues in workspace `1777693` - Air Waybills, Certificates of Origin, Invoices.
2. Set up the schema with a single enum field on each queue with a name Document type (`document_type`).
3. Upload documents from folders air_waybill, certificate_of_origin, invoice in `examples/data/splitting_and_sorting/knowledge` to corresponding queues.
4. Annotate all uploaded documents with a correct Document type, and confirm the annotation.
    - Beware document types are air_waybill, invoice and certificate_of_origin (lower-case, underscores).
    - IMPORTANT: After confirming all annotations, double check, that all are confirmed/exported, and fix those that are not.
5. Create three new queues in workspace `1777693` - Air Waybills Test, Certificates of Origin Test, Invoices Test.
6. Set up the schema with a single enum field on each queue with a name Document type (`document_type`).
7. Create a new engine in organization `1`, with type = 'splitter'.
8. Configure engine training queues to be - Air Waybills, Certificates of Origin, Invoices.
    - DO NOT copy knowledge.
    - Update Engine object.
9. Create a new schema that will be the same as the schema from the queue `3885208`.
10. Create a new queue (with splitting UI feature flag!) with the created engine and schema in the same workspace called: Inbox.
11. Create a python function-based the **`Splitting & Sorting`** hook on the new inbox queue with this settings:
    **Functionality**: Automatically splits multi-document uploads into separate annotations and routes them to appropriate queues.
    Split documents should be routed to the following queues: Air Waybills Test, Certificates of Origin Test, Invoices Test

    **Trigger Events**:
    - annotation_content.initialize (suggests split to user)
    - annotation_content.confirm (performs actual split)
    - annotation_content.export (performs actual split)

    **How it works**: Python code

    **Settings**:
    - sorting_queues: Maps document types to target queue IDs for routing
    - max_blank_page_words: Threshold for blank page detection (pages with fewer words are considered blank)
12. Upload 10 documents from `examples/data/splitting_and_sorting/testing` folder to inbox queues.

O Que Isso Demonstra:

  • Orquestração de Filas: Cria 7 filas (3 de treinamento + 3 de teste + 1 de entrada) com esquemas consistentes

  • Aquecimento de Conhecimento: Envia e anota 90 documentos de treinamento para ensinar o mecanismo

  • Mecanismo de Divisão: Configura um mecanismo de IA para detectar limites e tipos de documentos

  • Automação de Hooks: Configura um webhook sofisticado que automaticamente:

    • Divide PDFs com múltiplos documentos em anotações individuais
    • Remove páginas em branco de forma inteligente
    • Roteia documentos divididos para as filas corretas por tipo
    • Sugere divisões na inicialização e executa após confirmação
  • Testes de Ponta a Ponta: Valida todo o pipeline com documentos de teste

Este exemplo mostra a capacidade do agente de orquestrar fluxos de trabalho complexos envolvendo múltiplas filas, mecanismos, esquemas, hooks automatizados com lógica personalizada e roteamento inteligente de documentos — tudo a partir de um único prompt conversacional.

Estrutura do Repositório

Pacotes principais:

Pacotes de suporte (usados para desenvolvimento, implantação e integração):

Início Rápido

Pré-requisitos: Python 3.12+, uv, conta Rossum com credenciais de API

git clone https://github.com/rossumai/rossum-agents.git
cd rossum-agents

# Install all packages with all features
uv sync --all-extras

# AWS Bedrock (the agent uses Claude via Bedrock)
export AWS_PROFILE="rossum-dev"
export AWS_REGION="eu-west-1"

# Start PostgreSQL (session storage) and Valkey (change tracking)
docker-compose up -d postgres valkey

# Run the agent REST API
uv run rossum-agent-api

O agente espera PostgreSQL em localhost:5432 e Valkey em localhost:6379 por padrão. Substitua pelas variáveis de ambiente POSTGRES_* e VALKEY_* (veja CLAUDE.md).

Instale o TUI (Fabry) a partir do checkout local para conversar com o agente pelo seu terminal:

# Build the TypeScript client first (TUI depends on it via file:)
cd rossum-agent-client-ts
npm install
npm run build

# Build and link the TUI
cd ../rossum-agent-tui
npm install
npm run build
npm link    # exposes `fabry` on your PATH

fabry \
  --api-url http://localhost:8000 \
  --token your-token \
  --rossum-url your-api-url

Veja rossum-agent-tui/README.md para flags, atalhos de teclado e persistência de sessão.

Para detalhes de pacotes individuais, veja rossum-mcp/README.md e rossum-agent/README.md. Veja CLAUDE.md para a lista completa de opções de configuração (AWS Bedrock, Valkey, logging, etc.).

Instalação e Uso

Servidor MCP com Claude Desktop

Melhor para: Uso interativo com Claude Desktop

Configure o Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json no Mac):

{
  "mcpServers": {
    "rossum": {
      "command": "uvx",
      "args": ["rossum-mcp"],
      "env": {
        "ROSSUM_API_TOKEN": "${ROSSUM_API_TOKEN}",
        "ROSSUM_API_BASE_URL": "${ROSSUM_API_BASE_URL}",
        "ROSSUM_MCP_MODE": "read-write"
      }
    }
  }
}

Ou execute de forma autônoma: rossum-mcp

Documentação

Recursos

Desenvolvimento

# Install with all development dependencies
uv pip install -e rossum-mcp[all] -e rossum-agent[all]

# Run tests
pytest

# Run regression tests (validates agent behavior)
pytest regression_tests/ -v -s

# Lint and type check
pre-commit run --all-files

Veja regression_tests/README.md para a estrutura de avaliação de qualidade do agente.

Licença

Licença MIT - veja LICENSE para detalhes.

Contribuição

Contribuições são bem-vindas! Veja os READMEs de cada pacote para diretrizes de desenvolvimento.