josedario87 02d24a5674
Some checks failed
build-and-push / build (push) Failing after 15s
build-and-push / deploy (push) Has been skipped
intento 2
2025-05-02 22:01:56 -06:00
2025-05-02 22:01:56 -06:00
2025-05-02 21:55:57 -06:00
2025-05-02 21:55:57 -06:00
2025-05-02 21:55:57 -06:00

🧠 mi-mcp-server

Servidor MCP (Model Context Protocol) personalizado para exponer herramientas propias como funciones accesibles desde LLMs compatibles (Gemini, Claude, etc).

Este server corre en Docker y puede ser usado directamente desde stdio usando el SDK de MCP.


📦 Herramientas expuestas

Actualmente expone:

  • saludar: saluda a una persona por su nombre.

Podés modificar o agregar más herramientas editando el archivo tools.js.


🛠️ Estructura del proyecto

. ├── Dockerfile # Imagen mínima de Node.js con tu server MCP ├── index.js # Punto de entrada, arranca el servidor MCP ├── tools.js # Define tus herramientas y su lógica ├── package.json # Dependencias (usa @modelcontextprotocol/server) └── .gitea/workflows/ └── build.yml # Workflow para construir y subir imagen a tu Gitea registry

yaml Copy Edit


🐳 Construcción local

docker build -t mi-mcp-server .
docker run -it --rm mi-mcp-server
🐙 Construcción automática (Gitea Actions)
Este repositorio ya incluye un workflow (.gitea/workflows/build.yml) que:

Se activa en cada push a main

Construye la imagen

La sube al registry interno: gitea.interno.com/tu_usuario/mi-mcp-server:latest

🧪 Uso desde un cliente MCP
js
Copy
Edit
import { Client } from '@modelcontextprotocol/sdk/client';
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio';

const client = new Client({ name: 'local', version: '1.0.0' });

await client.connect(new StdioClientTransport({
  command: 'docker',
  args: ['run', '-i', '--rm', 'gitea.interno.com/tu_usuario/mi-mcp-server:latest']
}));

const tools = await client.listTools();         // ver herramientas disponibles
const result = await client.callTool({
  name: 'saludar',
  arguments: { nombre: 'Darío' }
});

console.log(result.content[0].text); // → Hola, Darío! 👋
🔐 Notas
Si tu imagen necesita variables de entorno, podés usar -e en el args de Docker.

Asegurate de que tu bot o app tenga acceso a Docker en el entorno donde corre.

©️ Licencia
MIT — ajustala si vas a distribuir como código cerrado.

go
Copy
Edit

¿Querés que te empaquete esto como zip inicial listo para clonar, con `package.json`, `Dockerfile` y `tools.js`?








Description
No description provided
Readme 29 KiB
Languages
JavaScript 84%
Dockerfile 16%