Personal MCP Tools Repository es mi colección personal de herramientas para el Model Context Protocol (MCP). Este repositorio contiene herramientas MCP que he desarrollado para uso personal y que pueden ser integradas en cualquier proyecto que utilice MCP.
- Descripción: Obtiene métricas del sistema en tiempo real
- Métricas incluidas:
- Uso de CPU (porcentaje)
- Uso de RAM (porcentaje y GB usados/totales)
- Uso de Disco (porcentaje y GB usados/totales)
- Tráfico de Red (bytes enviados/recibidos)
- Uso:
system-stats
- Estructura clara: Cada herramienta en su propio archivo dentro de
internal/pkg/mcp_tools/ - Fácil extensión: Añade nuevas herramientas siguiendo el patrón existente
- Servidor MCP independiente: Ejecutable standalone en
cmd/mcp/main.go
El servidor MCP funciona via Stdio y puede ser utilizado por cualquier cliente MCP:
# Ejecutar el servidor MCP
go run ./cmd/mcp/main.go
# Probar manualmente (JSON-RPC)
echo '{"jsonrpc": "2.0", "method": "tools/list", "id": 1}' | go run ./cmd/mcp/main.go{
"mcpServers": {
"personal-tools": {
"command": "go",
"args": ["run", "/ruta/a/tu/proyecto/cmd/mcp/main.go"]
}
}
}Configura el servidor para ejecutar el binario compilado o el comando go run.
Puedes importar las herramientas individualmente en tus proyectos Go:
import (
"github.com/metalpoch/local-synapse/internal/pkg/mcp_tools"
)
// Usar la herramienta system-stats
tool, handler := mcptools.SystemStats()Cada herramienta sigue este patrón en internal/pkg/mcp_tools/:
package mcptools
import (
"context"
"fmt"
"github.com/mark3labs/mcp-go/mcp"
"github.com/mark3labs/mcp-go/server"
)
func MiNuevaHerramienta() (tool mcp.Tool, handler server.ToolHandlerFunc) {
return mcp.NewTool(
"mi-herramienta",
mcp.WithDescription("Descripción de mi herramienta"),
mcp.WithStringSchema("parametro", mcp.WithDescription("Descripción del parámetro")),
),
func(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) {
// Lógica de la herramienta aquí
return mcp.NewToolResultText("Resultado"), nil
}
}- Crear el archivo en
internal/pkg/mcp_tools/ - Implementar la función que retorna
(mcp.Tool, server.ToolHandlerFunc) - Registrar la herramienta en
cmd/mcp/main.go:s.AddTool(mcptools.MiNuevaHerramienta())
- file-operations: Operaciones básicas de archivos
- git-utils: Comandos Git comunes
- docker-status: Estado de contenedores Docker
- weather-check: Clima local
- todo-manager: Gestor de tareas personal
El proyecto cuenta con un flujo automatizado de CI/CD. Cada vez que se realiza un push a la rama principal:
- Se compilan los binarios y se construye la imagen de contenedor.
- La imagen se publica automáticamente en GitHub Container Registry (GHCR).
Para desplegar en producción, simplemente utiliza el archivo compose.yml incluido. Este descargará la imagen pre-construida desde GHCR.
# Iniciar todo el stack usando la imagen de GHCR
podman-compose up -dmake run-apiCrea un archivo .env en la raíz:
PORT=8080
OLLAMA_URL=http://localhost:11434
OLLAMA_MODEL=qwen3:4b
OLLAMA_SYSTEM_PROMPT="Eres un asistente muy cute y algo tsundere que termina cada parrafo con 'datebayo'"# Ejecutar tests unitarios
go test ./...
# Ejecutar tests con cobertura
go test -cover ./...
# Ejecutar tests específicos
go test ./internal/pkg/mcp_tools/....
├── cmd/
│ ├── mcp/ # Servidor MCP principal
│ └── api/ # API HTTP (opcional, para integración web)
├── internal/
│ ├── pkg/mcp_tools/ # Todas las herramientas MCP
│ │ ├── system_stats.go
│ │ └── [nueva_herramienta].go
│ ├── infrastructure/ # Infraestructura compartida
│ └── usecase/ # Casos de uso (si aplica)
├── mcp # Script MCP para ejecución directa
├── Makefile # Automatización
├── compose.yml # Docker Compose
├── Containerfile # Dockerfile
└── README.md # Este archivo
Este es un repositorio personal, pero si encuentras errores o tienes sugerencias:
- Reporta issues para bugs o mejoras
- Sugiere nuevas herramientas que podrían ser útiles
- Sigue los patrones existentes para consistencia
Este proyecto es de uso personal. Consulta el archivo LICENSE para más detalles.
Desarrollado con ❤️ por poch. Mantenido como mi repositorio personal de herramientas MCP.