AI Agent with MCP

Un agente de IA que utiliza el Protocolo de Contexto de Modelo (MCP) con un servidor Node.js que proporciona recursos REST para usuarios y mensajes.

Documentación

Creando un servidor MCP con NodeJS (ai-agent-with-mcp)

Este proyecto implementa un agente de IA que utiliza el Model Context Protocol (MCP) para interactuar con recursos externos.

El repositorio incluye:

Un servidor MCP funcional, con recursos REST para usuarios y mensajes.

Un cliente MCP para consumir estos recursos vía protocolo.

Ejemplos prácticos de cómo acceder a los recursos por terminal, vía API REST o directamente en Cursor.

Recursos Disponibles

El servidor MCP proporciona los siguientes recursos:

Recursos de Usuarios

  • api://users: Lista todos los usuarios registrados en el sistema
    • Devuelve información como ID, nombre, número de teléfono e ID de hilo (thread ID)
    • Formato: JSON
    • Ejemplo de respuesta:
      {
        "content": [
          {
            "id": 1,
            "phoneNumber": "553496341404",
            "name": "Moisés Paschoalick",
            "threadId": "thread_bZEPVYVBvHxY9Ok6WqR63M2D"
          },
          {
            "id": 2,
            "phoneNumber": "553496338888",
            "name": "José Silva",
            "threadId": "1thread_t8SFjKio6yN9pppqypilwGoR__"
          },
          {
            "id": 3,
            "phoneNumber": "553496338889",
            "name": "Maria Antonia",
            "threadId": "1thread_t8SFjKio6yN9pppqypilwGoR__"
          }
        ],
        "pageable": {
          "pageNumber": 0,
          "pageSize": 12,
          "sort": {
            "empty": false,
            "sorted": true,
            "unsorted": false
          },
          "offset": 0,
          "paged": true,
          "unpaged": false
        },
        "last": true,
        "totalPages": 1,
        "totalElements": 3,
        "first": true,
        "size": 12,
        "number": 0,
        "sort": {
          "empty": false,
          "sorted": true,
          "unsorted": false
        },
        "numberOfElements": 3,
        "empty": false
      }
      

Recursos de Mensajes

  • hello://world: Devuelve un mensaje de saludo simple
    • Formato: texto plano (text/plain)
    • Ejemplo de respuesta: "Hello, World! This is my first MCP resource."

Instalación para Cursor

Primero, asegúrate de tener Cursor instalado y npm configurado en tu sistema.

Opción 1: Instalación vía Terminal

Ejecuta el siguiente comando en la terminal:

npx -y @smithery/cli@latest install @wonderwhy-er/desktop-commander --client cursor --key dda23bec-caa6-4487-a1e9-eb74e22e33eb

Nota: la key mencionada es solo un ejemplo, necesitas agregar la tuya.

Reinicia Cursor si está en ejecución.

Opción 2: Instalación Manual

Agrega la entrada apropiada a tu archivo mcp.json:

Para Mac/Linux:

En Linux: ~/.config/cursor.json

{
  "mcpServers": {
    "desktop-commander": {
      "command": "npx",
      "args": [
        "-y",
        "@smithery/cli@latest",
        "run",
        "@wonderwhy-er/desktop-commander",
        "--key",
        "dda23bec-caa6-4487-a1e9-eb74e22e33eb"
      ]
    }
  }
}

Para Windows:

{
  "mcpServers": {
    "desktop-commander": {
      "command": "cmd",
      "args": [
        "/c",
        "npx",
        "-y",
        "@smithery/cli@latest",
        "run",
        "@wonderwhy-er/desktop-commander",
        "--key",
        "dda23bec-caa6-4487-a1e9-eb74e22e33eb"
      ]
    }
  }
}

Reinicia Cursor si está en ejecución.

Opción 3: Clonar localmente

Clona y construye:

git clone https://github.com/moises-paschoalick/ai-agent-with-mcp.git
cd ai-agent-with-mcp
npm run setup

Reinicia Cursor si está en ejecución.

El comando de configuración hará lo siguiente:

  • Instalar dependencias
  • Construir el servidor
  • Configurar Cursor
  • Agregar servidores MCP a la configuración de Cursor, si es necesario

Cómo Usar

Cliente MCP

El proyecto incluye un cliente MCP que puede usarse para acceder a los recursos disponibles:

import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";

async function main() {
  const client = new Client({
    name: "hello-mcp-client",
    version: "1.0.0"
  });
  const transport = new StdioClientTransport({
    command: "node",
    args: ["build/index.js"]
  });
  
  try {
    await client.connect(transport);
    
    // Listar recursos disponíveis
    const resources = await client.listResources();
    console.log("Recursos disponíveis:", resources);
    
    // Ler o recurso de usuários
    const content = await client.readResource({ uri: "api://users" });
    console.log("\nLista de Usuários:", content);
  } catch (error) {
    console.error("Erro ao executar o cliente:", error);
  }
}

main().catch(console.error);

API REST Directa

También puedes acceder a los recursos directamente vía API REST:

# Listar todos os usuários
curl http://3.238.149.189:8080/users

Instalación y Ejecución

# Instalar dependências
npm install

# Compilar o projeto
npm run build

# Executar o servidor
npm start

# Executar em modo de desenvolvimento
npm run dev

Requisitos

  • Node.js (versión compatible con AbortController)
  • TypeScript
  • @modelcontextprotocol/sdk