Servidor MCP JSONPlaceholder
Un servidor Model Context Protocol (MCP) que expone funciones para consultar la API de JSONPlaceholder (https://jsonplaceholder.typicode.com).
🚀 Características
- Consulta de Posts: Obtener todos los posts, filtrar por usuario o obtener un post específico
- Gestión de Usuarios: Listar todos los usuarios o obtener información de un usuario específico
- Comentarios: Obtener comentarios de posts específicos o todos los comentarios
- Creación de Posts: Crear nuevos posts (simulado)
- API Asíncrona: Manejo eficiente de requests HTTP con httpx
- Manejo de Errores: Gestión robusta de errores HTTP y excepciones
📦 Instalación
- Instalar dependencias:
pip install -r requirements.txt
🔧 Configuración para Claude Desktop
Para conectar este servidor MCP con Claude Desktop:
- Localizar el archivo de configuración de Claude Desktop:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
- Añadir la configuración del servidor:
{
"mcpServers": {
"jsonplaceholder": {
"command": "python",
"args": ["c:\\Users\\Dell3\\IdeaProjects\\MyFirstMCP\\server.py"],
"env": {}
}
}
}
⚠️ Importante: Ajusta la ruta en args según tu ubicación del proyecto.
- Reiniciar Claude Desktop para que cargue la nueva configuración.
🎮 Uso
Iniciar el Servidor
# Opción 1: Script automático
start_server.bat
# Opción 2: Manual
python server.py
Probar el Cliente
python client_test.py
🛠️ Funciones Disponibles
1. get_posts
Obtiene posts de JSONPlaceholder.
Parámetros:
user_id(opcional): ID del usuario para filtrar postspost_id(opcional): ID específico del post a obtener
Ejemplos: ```python
Obtener todos los posts
await mcp.call_tool("get_posts", {})
Obtener posts del usuario 1
await mcp.call_tool("get_posts", {"user_id": 1})
Obtener post específico
await mcp.call_tool("get_posts", {"post_id": 5}) ```
2. get_users
Obtiene usuarios de JSONPlaceholder.
Parámetros:
user_id(opcional): ID específico del usuario a obtener
Ejemplos: ```python
Obtener todos los usuarios
await mcp.call_tool("get_users", {})
Obtener usuario específico
await mcp.call_tool("get_users", {"user_id": 3}) ```
3. get_comments
Obtiene comentarios de JSONPlaceholder.
Parámetros:
post_id(opcional): ID del post para obtener sus comentarios
Ejemplos: ```python
Obtener todos los comentarios
await mcp.call_tool("get_comments", {})
Obtener comentarios de un post específico
await mcp.call_tool("get_comments", {"post_id": 1}) ```
4. create_post
Crea un nuevo post (simulado).
Parámetros (obligatorios):
title: Título del postbody: Contenido del postuser_id: ID del usuario que crea el post
Ejemplo: ``python await mcp.call_tool("create_post", { "title": "Mi Nuevo Post", "body": "Contenido del post...", "user_id": 1 }) ``
🧪 Usando con Claude
Una vez configurado, puedes usar las funciones directamente en Claude:
"Obtén todos los posts del usuario 1"
"Muéstrame los comentarios del post 5"
"Crea un nuevo post con título 'Hola Mundo' y contenido 'Este es mi primer post'"
"¿Cuántos usuarios hay registrados?"
📁 Estructura del Proyecto
MyFirstMCP/
├── server.py # Servidor MCP principal
├── client_test.py # Cliente de prueba
├── requirements.txt # Dependencias Python
├── claude_desktop_config.json # Configuración para Claude Desktop
├── install.bat # Script de instalación
├── start_server.bat # Script para iniciar servidor
├── test_client.bat # Script para probar cliente
└── README.md # Esta documentación
🐛 Resolución de Problemas
Error: "Módulo mcp no encontrado"
pip install mcp
Error: "No se puede conectar al servidor"
- Verifica que Python esté en el PATH
- Confirma que la ruta en
claude_desktop_config.jsonsea correcta - Reinicia Claude Desktop después de cambiar la configuración
Error de permisos en Windows
Ejecuta el terminal como administrador o ajusta la ruta del proyecto.
🔗 Enlaces Útiles
📝 Licencia
Este proyecto es de código abierto.






