ProvenPin
Tested, version-pinned code recipes for AI coding agents, each with its last-passed receipt.
我该使用它吗
质量与安全性
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"provenpin": {
"url": "https://mcp.provenpin.com/mcp"
}
}
}远程端点
https://mcp.provenpin.com/mcpstreamable-http它能做什么
工具清单
工具(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.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"type": "object",
"properties": {}
}社区
证据