Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Descripción del creador (original en inglés)
Judgment calls on small, cheap models: is this spam, which team, how urgent. YES, NO or UNSURE.
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
TYPESAFE_API_KEY, GUT_BACKEND, GUT_MODEL, GUT_BASE_URL, OPENROUTER_API_KEYLos valores marcados como secretos son llaves de tu cuenta. Nunca los compartas ni los pegues en un chat.
Necesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"gut": {
"command": "uvx",
"args": [
"gutfeel-mcp"
],
"env": {
"TYPESAFE_API_KEY": "your-value",
"GUT_BACKEND": "your-value",
"GUT_MODEL": "your-value",
"GUT_BASE_URL": "your-value",
"OPENROUTER_API_KEY": "your-value"
}
}
}
}Ejecuta esto en tu terminal
claude mcp add gut --env TYPESAFE_API_KEY=your-value --env GUT_BACKEND=your-value --env GUT_MODEL=your-value --env GUT_BASE_URL=your-value --env OPENROUTER_API_KEY=your-value -- uvx gutfeel-mcpCompleta los valores vacíos antes de ejecutarlo.
Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"gut": {
"command": "uvx",
"args": [
"gutfeel-mcp"
],
"env": {
"TYPESAFE_API_KEY": "your-value",
"GUT_BACKEND": "your-value",
"GUT_MODEL": "your-value",
"GUT_BASE_URL": "your-value",
"OPENROUTER_API_KEY": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"gut": {
"type": "stdio",
"command": "uvx",
"args": [
"gutfeel-mcp"
],
"env": {
"TYPESAFE_API_KEY": "your-value",
"GUT_BACKEND": "your-value",
"GUT_MODEL": "your-value",
"GUT_BASE_URL": "your-value",
"OPENROUTER_API_KEY": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
GUT_BACKEND envGUT_MODEL envGUT_BASE_URL envEsta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 7 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub Kungie, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
Debes completar: TYPESAFE_API_KEY, OPENROUTER_API_KEY
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez –, y la última versión (0.8.2) llegó al registro hace 25 días.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Python (uv) en tu computadora.
En la misma categoría: Spec Driven Development, Remote Desktop Commander, Signoff
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Five gates that make an agent's 'done' provable: run them, read the verdict, audit the record.
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
Judgment calls as one line of Python — built for Jev, and running on any small model.
Try it in your browser → The site runs gut's local model in the page: no key, no server.
Your code keeps running into questions that aren't logic: *Is this comment spam? Which team owns this ticket? How urgent is it? Is the agent's task done?* Until now there were three answers:
There is a fourth: a small model made for exactly these questions. TypeSafe AI's Jev answers typed questions directly — a probability for yes, a distribution over options, a score on a scale — with nothing to generate or parse, billed on input only. gut is built around it, and makes it a line of code:
import gut
gut.configure(backend=gut.JevBackend()) # or just set TYPESAFE_API_KEY
if gut.likely(comment, "is spam"): hide(comment)
No prompt, no parsing, no threshold — and no model named at the call site.
gut.likely(ticket, "is a bug report") # yes / no
gut.classify(ticket, Team) # which one — an Enum gut.rate(ticket, ["can wait", "this week", "right now"]) # how much
A regex never hesitates, and neither does an LLM. gut can:
match gut.likely(email, "the customer threatens to cancel", ask_human=True):
case gut.YES: escalate(email) case gut.NO: auto_reply(email) case gut.UNSURE: send_to_a_person(email)
Say how careful to be in words — lean="yes", stakes="high" — and gut works out the thresholds.
spam = gut.each(comments).likely("is spam") # one decision per comment, in order
teams = gut.each(tickets).classify(Team)
Jev gets concurrent requests, a local model batched passes, and nothing already cached is asked twice. @gut.semantic does the same for several questions about one subject.
Jev is the model gut is designed around. It is not the only one: the model is configuration, and the same line runs unchanged on any of these.
gut.configure(backend=gut.JevBackend()) # TypeSafe AI's Jev
gut.configure(backend=gut.JevBackend.openrouter()) # Jev, through OpenRouter gut.configure(backend=gut.JevBackend.ollaya("winnow:e4b")) # open decision model, Ollaya gut.configure(backend=gut.ZeroShotBackend()) # NLI model, on your CPU gut.configure(backend=gut.TransformersBackend("Qwen/Qwen3-0.6B")) # small LLM, on your machine gut.configure(backend=gut.OpenAICompatibleBackend( # Ollama, vLLM, llama.cpp "qwen2.5:1.5b", base_url="http://localhost:11434/v1")) gut.configure(backend=gut.OpenAICompatibleBackend("gpt-4.1-nano")) # OpenAI gut.configure(backend=gut.OpenAIDecisionsBackend()) # OpenAI's Decisions API
Or several at once. Cascade asks the cheapest model first and passes on only what it is unsure of:
gut.configure(backend=gut.Cascade(
gut.ZeroShotBackend(), # free and local: settles the obvious gut.JevBackend(), # sees only what the first could not ))
Every answer is a model's own probabilities, never parsed from text, and decision.model names the model that gave it. Your own model can be a backend too: here is how.
pip install "gutfeel[jev]" # + JevBackend: TypeSafe, OpenRouter or Ollaya
pip install "gutfeel[local]" # + ZeroShotBackend and TransformersBackend (PyTorch) pip install gutfeel # core: any OpenAI-compatible server; FakeBackend for tests pip install gutfeel-mcp # + the MCP server, gutfeel-mcp
The package on PyPI is gutfeel (gut was taken); the import is plain import gut. No model at hand? gut.FakeBackend(answers={"is spam": 0.97}) answers from fixtures, for tests.
The big model thinks; the small one decides, fast. An agent with gut judges a thousand files, commits or search results in one command instead of reading each one itself:
git ls-files | gut filter "retries failed requests" --read-files --max-cost 0.50
claude mcp add gut --env TYPESAFE_API_KEY=your-key -- uvx gutfeel-mcp # MCP Registry: io.github.Kungie/gut npx skills add Kungie/gut --skill gut # teaches a coding agent when to reach for it
[The documentation](https://gutpy.dev/docs/), one page per idea: Getting started · Backends · Knowing when it doesn't know · Asking everything at once · Async · Exact costs · Caching and observability · Command line · MCP server · Honest limitations. examples/ runs the same code on every backend.
Pre-1.0, Apache-2.0. Every code block in these docs runs in the test suite · contributing