GW2 MCP Server
Conecta modelos de lenguaje grandes (LLM) con fuentes de datos de Guild Wars 2. Requiere una clave de API de Guild Wars 2 para la funcionalidad de billetera.
Documentación
GW2 MCP Server
Un servidor de Model Context Provider (MCP) para Guild Wars 2 que conecta Modelos de Lenguaje de Gran Tamaño (LLMs) con las fuentes de datos de Guild Wars 2.
Características
- Búsqueda en Wiki: Busca y recupera contenido de la wiki de Guild Wars 2
- Información de Cartera: Accede a los datos de cartera y monedas del usuario mediante la API de GW2
- Caché Inteligente: Caché eficiente con TTL apropiado para datos estáticos y dinámicos
- Límite de Peticiones: Uso respetuoso de la API con límite de peticiones integrado
- Arquitectura Extensible: Diseño modular para añadir funciones fácilmente
Requisitos
- Go 1.24 o superior
- Clave de API de Guild Wars 2 (para la funcionalidad de cartera)
Instalación
- Clona el repositorio:
git clone https://github.com/AlyxPink/gw2-mcp.git
cd gw2-mcp
- Instala las dependencias:
go mod tidy
- Compila el servidor:
go build -o gw2-mcp ./cmd/server
Uso
Ejecutar el Servidor
El servidor MCP se comunica mediante stdio (entrada/salida estándar):
./gw2-mcp
Puedes configurar Claude Desktop, LM Studio u otras herramientas de LLM para interactuar con el servidor usando esta configuración:
{
"mcpServers": {
"gw2-mcp": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"alyxpink/gw2-mcp:v1"
]
}
}
}
Herramientas MCP
El servidor proporciona las siguientes herramientas para la interacción con LLM:
1. Búsqueda en Wiki (wiki_search)
Busca información en la wiki de Guild Wars 2.
Parámetros:
query(obligatorio): Consulta de búsquedalimit(opcional): Número máximo de resultados (por defecto: 5)
Ejemplo:
{
"tool": "wiki_search",
"arguments": {
"query": "Dragon Bash",
"limit": 3
}
}
2. Obtener Cartera (get_wallet)
Recupera la información de la cartera del usuario, incluidas todas las monedas.
Parámetros:
api_key(obligatorio): Clave de API de Guild Wars 2 con alcance de cuenta
Ejemplo:
{
"tool": "get_wallet",
"arguments": {
"api_key": "YOUR_GW2_API_KEY"
}
}
3. Obtener Monedas (get_currencies)
Obtén información sobre las monedas de Guild Wars 2.
Parámetros:
ids(opcional): Array de IDs de monedas específicas para consultar
Ejemplo:
{
"tool": "get_currencies",
"arguments": {
"ids": [1, 2, 3]
}
}
Recursos MCP
El servidor proporciona los siguientes recursos:
Lista de Monedas (gw2://currencies)
Lista completa de todas las monedas de Guild Wars 2 con metadatos.
Configuración de la Clave de API
Para usar la funcionalidad de cartera, necesitas una clave de API de Guild Wars 2:
- Visita Gestión de Claves de API de Guild Wars 2
- Crea una nueva clave de API con los siguientes permisos:
account- Requerido para el acceso a la carterawallet- Requerido para la información de monedas
- Copia la clave de API generada
Nota de Seguridad: Las claves de API se procesan mediante hash antes de almacenarse en caché por seguridad. Nunca compartas tu clave de API.
Estrategia de Caché
El servidor implementa caché inteligente:
- Datos Estáticos (monedas, contenido de wiki): Caché de 24 horas a 1 año
- Datos Dinámicos (saldos de cartera): Caché de 5 minutos
- Resultados de Búsqueda: Caché de 24 horas
Arquitectura
El proyecto sigue los principios de Arquitectura Limpia:
internal/
├── server/ # MCP server implementation
├── cache/ # Caching layer
├── gw2api/ # GW2 API client
└── wiki/ # Wiki API client
Desarrollo
Estándares de Código
- Formatea el código con
gofumpt - Ejecuta el linter con
golangci-lint - Escribe pruebas unitarias para la funcionalidad principal
- Sigue mensajes de commit convencionales
Ejecutar Pruebas
go test ./...
Linting
golangci-lint run
Formateo
gofumpt -w .
Contribuciones
- Haz un fork del repositorio
- Crea una rama de características
- Realiza tus cambios
- Añade pruebas si corresponde
- Ejecuta el linting y el formateo
- Envía un pull request
Licencia
GNU Affero General Public License v3.0 - consulta el archivo LICENSE para más detalles.
Agradecimientos
- API de Guild Wars 2 por proporcionar datos completos del juego
- Wiki de Guild Wars 2 por su extensa documentación del juego
- MCP Go por el marco de implementación de MCP