ProvenPin
Tested, version-pinned code recipes for AI coding agents, each with its last-passed receipt.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"provenpin": {
"url": "https://mcp.provenpin.com/mcp"
}
}
}Puntos de conexión remotos
https://mcp.provenpin.com/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (3)
🟢search_recipes(query, stack, language, limit, versions)
Find a tested, version-pinned code recipe for wiring libraries together. Call this BEFORE writing glue code that combines 2+ libraries (auth + framework, ORM + database, payments webhooks, queues, validation, request mocking, logging), and when you hit version conflicts, peer-dependency errors, or integration errors between libraries. Example queries: 'express stripe webhook', 'fastapi sqlmodel crud', 'hono jwt'. Only recipes whose latest test run passed are returned. Each result lists its exact pinned versions and a test receipt (receipt.last_passed_at). Pass the project's lockfile or a {package: version} map as versions: recipes that match the installed versions rank first and each result gets a compatibility summary. If nothing matches, write the code yourself; try list_stacks to see what is covered.
Esquema de entrada
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "What you are wiring together, in plain words or library names, e.g. 'django rest api' or 'rq redis jobs'."
},
"stack": {
"type": "array",
"items": {
"type": "string"
},
"description": "Only recipes that use all of these libraries."
},
"language": {
"type": "string",
"enum": [
"typescript",
"python"
]
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 25,
"default": 10
},
"versions": {
"type": [
"object",
"string"
],
"additionalProperties": {
"type": "string"
},
"description": "Optional but recommended: the versions in the user's project, so results are checked against them. Either a map like {\"next\": \"15.2.0\", \"zod\": \"3.23.8\"} or the raw text of package.json, package-lock.json, pnpm-lock.yaml, yarn.lock, requirements.txt, poetry.lock or uv.lock (max 200KB). Used only for this call, never stored."
}
},
"required": [
"query"
]
}🟢get_recipe(id, versions)
Get a full recipe by id (ids come from search_recipes): every source and test file (each with the sha256 of the exact bytes that were tested), the exact pinned dependency versions, the setup and test commands, and its test receipt (when it last passed, test counts, runtime and runner). Pass the project's lockfile or a {package: version} map as versions to get a compatibility section first, comparing each pinned package with the installed one (exact, compatible, mismatch, or not in your project) with plain warnings. Use the pinned versions together; they are the versions the tests passed with. Adapt names and config to the user's project, and keep the included tests to check your integration.
Esquema de entrada
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"versions": {
"type": [
"object",
"string"
],
"additionalProperties": {
"type": "string"
},
"description": "Optional but recommended: the versions in the user's project, so results are checked against them. Either a map like {\"next\": \"15.2.0\", \"zod\": \"3.23.8\"} or the raw text of package.json, package-lock.json, pnpm-lock.yaml, yarn.lock, requirements.txt, poetry.lock or uv.lock (max 200KB). Used only for this call, never stored."
}
},
"required": [
"id"
]
}🟢list_stacks
List the libraries and frameworks that currently have passing, version-pinned recipes, with recipe counts. Call this to check whether ProvenPin covers a library before searching, or after a search returns nothing, and use the names as the stack filter in search_recipes.
Esquema de entrada
{
"type": "object",
"properties": {}
}Comunidad
Evidencia