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