MCP-Demo
mcp-demo
Un servidor MCP mínimo en Python, construido por fases para que cada commit enseñe un concepto. Estado final: Claude Code puede llamar a modelos locales de Ollama (gemma3:4b / 3:12b) como una herramienta, desviando el trabajo de baja prioridad de la API hacia el servidor doméstico.
¿Qué es MCP, realmente?
Model Context Protocol es un protocolo estandarizado JSON-RPC 2.0 que permite a un cliente LLM (Claude Code, Claude Desktop, Cursor) descubrir e invocar herramientas, obtener recursos y cargar plantillas de prompts desde procesos separados llamados servidores MCP. MCP es al tooling de LLM lo que LSP es al soporte de lenguaje en IDEs: un protocolo, muchas implementaciones interoperables.
Las piezas móviles
┌───────────────────┐ stdio / HTTP ┌──────────────────┐
│ MCP Client │ ◄──JSON-RPC──► │ MCP Server │
│ (Claude Code) │ │ (this repo) │
└───────────────────┘ └──────────────────┘
│ │
│ spawns as child │ hits
│ process (stdio) │ localhost:11434
▼ ▼
your shell env Ollama / gemma3Cliente — integrado en la aplicación LLM
Servidor — cualquier proceso que hable MCP
Transporte —
stdio(el cliente inicia el servidor como hijo, canaliza JSON-RPC) ostreamable-http(el servidor es un servicio web). Este repositorio utiliza stdio.
Tres primitivas que expone un servidor MCP
Primitiva | Qué es | Uso en este repositorio |
Herramientas | Funciones que el LLM puede llamar |
|
Recursos | Blobs de solo lectura que el cliente puede obtener |
|
Prompts | Plantillas de prompts predefinidas | (no se usa — mantenido al mínimo) |
Progresión de fases
Cada fase es un commit — git log muestra la evolución.
✅ scaffold — pyproject, README, .gitignore.
✅ servidor hello-world — una herramienta
echo+ cliente de prueba de humo. Demuestra el ciclo de vida completo: inicio del cliente → handshake → descubrimiento de herramientas → llamada a herramienta.✅ herramienta ollama_ask — herramienta asíncrona que hace POST a
localhost:11434/api/generatey devuelve la respuesta de Gemma.✅ pulido — añade el parámetro
systemaollama_asky expone un recurso enollama://models(lista de modelos descargados).
Instalación y ejecución
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
# Phase 2+ only: run the server by hand to smoke-test
python -m mcp_demo.serverEl servidor lee JSON-RPC desde stdin y escribe en stdout — si lo ejecutas directamente en una terminal, simplemente se quedará esperando entrada. Eso es esperado. El cliente (Claude Code) es quien realmente lo alimenta.
Registro en Claude Code
Añadir a ~/.claude/settings.json:
{
"mcpServers": {
"mcp-demo": {
"command": "/home/booty/mcp-demo/.venv/bin/python",
"args": ["-m", "mcp_demo.server"]
}
}
}Reinicia Claude Code. Las herramientas aparecerán como mcp__mcp-demo__<tool_name>.
Lecturas adicionales
Especificación: https://modelcontextprotocol.io/specification
SDK de Python: https://github.com/modelcontextprotocol/python-sdk
Inspector (una interfaz de depuración para probar cualquier servidor MCP):
npx @modelcontextprotocol/inspector
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
MCP server for AI dialogue using various LLM models via AceDataCloud
An MCP server that gives your AI access to the source code and docs of all public github repos
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/SiNBooty/MCP-Demo'
If you have feedback or need assistance with the MCP directory API, please join our Discord server