MCP Servers (OnePiece & Geolocalizar)
# MCP-Server (OnePieceServer & Geolocalizar)
Este proyecto contiene dos servidores MCP desarrollados con [`@modelcontextprotocol/sdk`](https://www.npmjs.com/package/@modelcontextprotocol/sdk). Cada uno expone una herramienta útil que puede ser integrada por un cliente AI compatible con MCP.
<a href="https://glama.ai/mcp/servers/@Haonter/MCP-Servers">
<img width="380" height="200" src="https://glama.ai/mcp/servers/@Haonter/MCP-Servers/badge" alt="Servers (OnePiece & Geolocalizar) MCP server" />
</a>
[](https://smithery.ai/server/@Haonter/MCP-Servers)
---
## 📁 Contenido
- onePiece.ts: Servidor MCP para consultar personajes de One Piece
- geolocalizar.ts: Servidor MCP para geolocalizar direcciones IP públicas
---
## ⚙️ Requisitos
- Node.js ≥ 18
- npm ≥ 9
### 📦 Instalar dependencias
```bash
npm install @modelcontextprotocol/sdk axios zod
npm install -D tsx
```
---
## 🏴☠️ OnePieceServer MCP
### 📄 Descripción
`OnePieceServer` permite consultar información de personajes del anime/manga One Piece, ya sea individualmente o toda la lista disponible.
### 🚀 Ejecutar
```bash
npx tsx onePiece.ts
```
También puedes usar el Inspector MCP:
```bash
npx -y @modelcontextprotocol/inspector npx -y tsx onePiece.ts
```
### 🛠 Herramienta expuesta: `one_piece`
- **Input**:
```json
{ "id": "1" }
```
Para obtener la lista completa:
```json
{ "id": "todos" }
```
- **Output**:
```json
{
"content": [
{
"type": "text",
"text": "Información del personaje: { ... }"
}
]
}
```
### 🌐 API usada
- `https://onepieceapi-50cm.onrender.com/personaje/{id}`
- `https://onepieceapi-50cm.onrender.com/personajes`
---
## 🌍 Geolocalizar MCP
### 📄 Descripción
`Geolocalizar` permite obtener información geográfica aproximada de una dirección IP (IPv4) pública.
### 🚀 Ejecutar
```bash
npx tsx main.ts
```
O usar con el Inspector MCP:
```bash
npx -y @modelcontextprotocol/inspector npx -y tsx main.ts
```
### 🛠 Herramienta expuesta: `geolocalizar`
- **Input**:
```json
{ "ip": "8.8.8.8" }
```
- **Output**:
```json
{
"content": [
{
"type": "text",
"text": "{ \"ip\": \"8.8.8.8\", \"country\": \"United States\", ... }"
}
]
}
```
### 🔐 Validación
Usa `zod` para validar que el input sea una IP válida en formato IPv4.
---
## 📁 Estructura del Proyecto
```
.
├── geolocalizar.ts # MCP Geolocalizar
├── onePiece.ts # MCP OnePieceServer
├── package.json # Archivo de configuracion de NPM
└── README.md # Este archivo
```
---
## 🧪 Desarrollo
Ambos servidores se comunican mediante `stdin` y `stdout` usando `StdioServerTransport`, lo que permite su ejecución fácil desde CLI o integración con clientes MCP.
---
## 🧑💻 Autor
Desarrollado por **Diego Rodríguez**
✉️ contacto@diegorodriguez.dev
---
### Installing via Smithery
To install OnePiece & Geolocalizar MCP Servers for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@Haonter/MCP-Servers):
```bash
npx -y @smithery/cli install @Haonter/MCP-Servers --client claude
```
TDQS
Scored across 1 tool
With only one tool, there is no possibility of ambiguity or overlap between tools. The single tool has a clear, distinct purpose focused on searching One Piece character information.
With only one tool, naming consistency is inherently perfect. The tool name 'one_piece' follows a clear snake_case pattern and directly reflects its domain, though there is no pattern to evaluate across multiple tools.
The server has only one tool, which is too few for its apparent scope covering both One Piece and Geolocalizar domains. This minimal toolset severely limits functionality and suggests an incomplete implementation for the server's stated purpose.
The tool surface is severely incomplete. The server name suggests coverage of both One Piece and Geolocalizar domains, but only provides a single tool for One Piece character search, with no tools for Geolocalizar and no CRUD/lifecycle operations for either domain.