harness-mcp
harness-mcp
Un boilerplate de TypeScript con opinión propia para crear servidores MCP teniendo en mente la ingeniería de arnés (harness engineering).
La ingeniería de arnés es la disciplina de diseñar el andamiaje alrededor de un agente LLM —herramientas, descripciones, errores, contexto— para que el agente realmente haga lo correcto. La mayoría de los boilerplates de MCP te enseñan el protocolo. Este te enseña el protocolo y la práctica.
¿Qué incluye?
defineTool()— un esquema de Zod alimenta al SDK de MCP, a la API de llamadas a funciones de OpenAI y al manejador en tiempo de ejecución. La validación y el envoltorio de errores son automáticos.Ambos transportes — stdio (
src/index.ts) para clientes locales al estilo de Claude Code, HTTP transmitible (src/http.ts) para clientes remotos/web. Ambos comparten un únicocreateServer().AgentErrors estructurados — cada error tiene uncode, unmessagey unahintescrita para el modelo: "llama aitems_listprimero para encontrar un id válido". Los errores vagos desperdician turnos; esto lo soluciona a nivel de tipo.Un arnés de evaluación real — basado en Vitest. Las pruebas unitarias se ejecutan libremente en CI;
tests/mcp/echo.test.tsdirige un modelo real de OpenAI a través del servidor MCP mediante un par de transporte en memoria y realiza aserciones sobre el rastro de llamadas a herramientas resultante.Un ejemplo simple de CRUD —
items_create / list / read / update / deleteademás de una herramientaecho. Reemplaza el almacenamiento en memoria con tu backend real; mantén la estructura.
Related MCP server: TypeScript MCP Server Boilerplate
Inicio rápido
bun install
bun test # unit tests, no API key needed
bun run start # stdio server on stdin/stdout
bun run start:http # HTTP server on http://localhost:3000/mcpPara ejecutar las evaluaciones con el modelo en el bucle:
cp .env.example .env
# add OPENAI_API_KEY
bun run test:mcpConectar a Claude Code
{
"mcpServers": {
"harness-mcp": {
"command": "bun",
"args": ["run", "/absolute/path/to/harness/mcp/src/index.ts"]
}
}
}Estructura
src/
index.ts stdio entry
http.ts streamable-http entry
core/
server.ts createServer() — shared by both transports
tool.ts defineTool() wrapper
errors.ts AgentError
store.ts replace with your backend
tools/
echo.ts smoke-test tool
items-*.ts CRUD example tools
index.ts registry
tests/
unit/ fast, no API key
tool.test.ts
store.test.ts
mcp/ protocol + model-in-the-loop
setup.ts in-memory client + runWithModel() helper
smoke.test.ts no model
echo.test.ts gpt-4o-mini, skipped without OPENAI_API_KEYLas opiniones
Las descripciones de las herramientas son ingeniería de prompts. Cada descripción comienza con
USE WHEN ...(USAR CUANDO...) e incluyeDO NOT USE WHEN ...(NO USAR CUANDO...) para herramientas hermanas con las que el modelo podría confundirla. La prueba de humo impone la convención.Los errores enseñan. Cada
AgentErrorlleva un campohint. Lee tus mensajes de error como si fueras el agente: ¿sabrías qué hacer a continuación? Si no, reescríbelo.Los endpoints de lista se paginan.
items_listdevuelve{ items, nextCursor }. Límite predeterminado 20, límite máximo 100. No vuelques datos ilimitados en el contexto.Las operaciones destructivas aceptan
dryRun.items_deletete dirá qué sucedería si no estuvieras seguro.Un Zod, tres consumidores. No mantengas el esquema JSON a mano junto con Zod:
defineToolderiva ambos.Las evaluaciones son pruebas. Los rastros de llamadas a herramientas son comprobables. Cuando una regresión en la descripción rompe el comportamiento del modelo, tu prueba lo detecta.
Licencia
MIT.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA TypeScript-based template for rapidly developing MCP servers with modular tool architecture, built-in validation using Zod schemas, and comprehensive error handling.9MIT
- FlicenseAqualityDmaintenanceA boilerplate for building MCP servers using TypeScript, with example tools like calculator and greet, plus resource support.6
- FlicenseBqualityCmaintenanceA TypeScript MCP server boilerplate providing example tools and resources for rapid development of custom Model Context Protocol servers.8
- FlicenseNot gradedqualityDmaintenanceA TypeScript MCP server boilerplate providing example tools and resources for rapid development and testing of Model Context Protocol servers.
Related MCP Connectors
A TypeScript MCP server for Home Assistant, enabling programmatic management of entities, automati…
A MCP server built for developers enabling Git based project management with project and personal…
Kickstart development with a customizable TypeScript template featuring sample tools for greeting,…
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/giuseppecrj/harness-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server