Skip to main content
Glama
Tiago-Alves-Dev

MCP Server TypeORM

MCP Server com TypeORM

Este projeto demonstra o poder do Model Context Protocol (MCP) integrado com TypeORM para fornecer acesso estruturado a dados de banco de dados através de ferramentas MCP.

🎯 Propósito

Este projeto foi desenvolvido para demonstrar:

  • Poder do MCP: Como criar ferramentas MCP que se conectam a bancos de dados

  • Integração TypeORM: Uso do TypeORM para operações de banco de dados

  • Dados Tratados: Retorno de dados de forma estruturada e tratada

  • Interface de Teste: Utilização do MCP Inspector para testar as ferramentas

Related MCP server: MCP PostgreSQL Server

🚀 Funcionalidades

Ferramentas MCP Disponíveis

  • get-products: Retorna todos os produtos do banco de dados

  • get-product-by-id: Busca um produto específico pelo UUID

  • search-products-by-name: Busca produtos por nome (busca parcial)

  • create-product: Cria um novo produto no banco de dados

  • update-product: Atualiza um produto existente

  • delete-product: Remove um produto (soft delete)

🛠️ Tecnologias Utilizadas

  • Node.js: Runtime JavaScript

  • TypeORM: ORM para PostgreSQL

  • PostgreSQL: Banco de dados

  • Model Context Protocol (MCP): Protocolo para comunicação com LLMs

  • @modelcontextprotocol/sdk: SDK oficial do MCP

📋 Pré-requisitos

  • Node.js 18 ou superior

  • PostgreSQL instalado e configurado

  • Variáveis de ambiente configuradas (veja seção Configuração)

⚙️ Configuração

1. Variáveis de Ambiente

Crie um arquivo .env na raiz do projeto:

DB_HOST=localhost
DB_PORT=5432
DB_USERNAME=seu_usuario
DB_PASSWORD=sua_senha
DB_DATABASE=seu_banco

2. Instalação

# Clone o repositório
git clone <url-do-repositorio>
cd MCP-SERVER-BD

# Instale as dependências
npm install

🏃‍♂️ Como Executar

1. Iniciar o Servidor

# Desenvolvimento (com watch)
npm run dev

# Produção
npm start

2. Testar com MCP Inspector

O comando mais importante para testar as ferramentas MCP:

npx @modelcontextprotocol/inspector node index.js

Este comando abre a interface web do MCP Inspector, onde você pode:

  • Visualizar todas as ferramentas disponíveis

  • Testar cada ferramenta individualmente

  • Ver os schemas de entrada e saída

  • Executar operações no banco de dados

🗄️ Estrutura do Banco de Dados

Tabela PRODUCTS

CREATE TABLE "PRODUCTS" (
    "ID" UUID DEFAULT uuid_generate_v4() PRIMARY KEY,
    "CREATED_AT" TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    "UPDATED_AT" TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    "CREATED_BY" VARCHAR(255),
    "UPDATED_BY" VARCHAR(255),
    "NAME" VARCHAR(255) NOT NULL,
    "DESCRIPTION" TEXT,
    "AMOUNT" INTEGER DEFAULT 0,
    "VALIDITY" DATE,
    "ACTIVE" BOOLEAN DEFAULT true,
    "companyId" UUID,
    "AVERAGE_COST" DECIMAL(10,2),
    "UNIT" VARCHAR(50)
);

📁 Estrutura do Projeto

MCP-SERVER-BD/
├── src/
│   └── database/
│       ├── connection.js          # Inicialização do TypeORM
│       ├── ormconfig.js          # Configuração do TypeORM
│       ├── migration-manager.js   # Gerenciador de migrations
│       ├── products.js           # Repository de produtos
│       ├── entities/
│       │   └── Product.js        # Entidade TypeORM
│       └── migrations/
│           └── 001_create_products_table.js
├── index.js                      # Servidor MCP principal
├── test-typeorm.js              # Teste da migração TypeORM
└── package.json

🔧 Exemplos de Uso

Criar um Produto

{
    "name": "Produto Teste",
    "description": "Descrição do produto",
    "amount": 10,
    "averageCost": 25.5,
    "unit": "UN",
    "companyId": "550e8400-e29b-41d4-a716-446655440000"
}

Buscar Produtos por Nome

{
    "name": "teste"
}

Atualizar Produto

{
    "id": "uuid-do-produto",
    "amount": 15,
    "description": "Nova descrição"
}

🧪 Testes

Teste da Migração TypeORM

node test-typeorm.js

Este comando testa:

  • Conexão com o banco de dados

  • Execução de migrations

  • Operações CRUD básicas

  • Validação de UUIDs

🔍 Debugging

Logs do Servidor

O servidor fornece logs detalhados:

  • ✅ Conexão com banco estabelecida

  • 🔄 Execução de migrations

  • 📦 Migrations executadas com sucesso

  • ❌ Erros detalhados quando ocorrem

Verificar Status do Banco

# Conectar ao PostgreSQL
psql -h localhost -U seu_usuario -d seu_banco

# Verificar tabelas
\dt

# Verificar migrations
SELECT * FROM migrations;

🚀 Próximos Passos

  1. Adicionar mais entidades: Categories, Users, etc.

  2. Implementar relacionamentos: Entre entidades

  3. Adicionar validações: Validações customizadas

  4. Implementar cache: Cache com Redis

  5. Adicionar autenticação: Sistema de autenticação

📚 Recursos Adicionais


Desenvolvido para demonstrar o poder do MCP integrado com TypeORM para fornecer acesso estruturado a dados de banco de dados.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that provides tools for connecting to and interacting with various database systems (SQLite, PostgreSQL, MySQL/MariaDB, SQL Server) through a unified interface.
    3
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that enables performing PostgreSQL database operations (create, read, update, delete) on User and Post entities through MCP tools.
    529 npm
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A small MCP server that manages a product inventory using SQLite, providing CRUD operations through exposed MCP tools.
    -
  • F
    license
    B
    quality
    D
    maintenance
    A demonstration TypeScript MCP server that showcases basic MCP concepts with simple tools (greeting, calculator), text resources, and prompt templates for learning the Model Context Protocol.
    2
    -