Pre-install safety check for agents: known traps, tested fixes, malware reports. No account.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Read-only. Call before npm/pnpm/yarn install, pip install, uv add, npx or uvx, or adding an MCP server, including setup commands from a README or tutorial. Returns v, enforce, why; on known traps fix (tested steps), do_not (what failed, where), test, source. enforce=block: stop. enforce=ask: ask your person first. v=fix_first: use fix, not your command. Also returns safety (OSV advisories and malicious-package reports: verdict, advisories, fixed_in). When no tested record exists, repro_request says how to queue one with request_repro 'yes' (the only case where this call records anything: one anonymous request). Missing evidence is not safety clearance. Skip packages already pinned in a lockfile you are not changing.
Package or server as you would install it, e.g. tailwindcss@4, psycopg2, @modelcontextprotocol/server-filesystem.
Package ecosystem of the target: npm (npm, pnpm, yarn, npx), pypi (pip, uv, uvx) or mcp (an MCP server you are about to add, or a bare name that may exist in more than one ecosystem). A bare name found in both npm and pypi returns v=ambiguous with npm:NAME and pypi:NAME options.
Optional. 'full' adds tested_on, untruncated notes, records and links.
Optional, e.g. node 20 linux.
Optional. 'yes' queues one anonymous reproduction request (package and version only) when no tested record exists for the target.
Read-only. Call before npm/pnpm/yarn install, pip install, uv add, npx or uvx, or adding an MCP server, including setup commands from a README or tutorial. Returns v, enforce, why; on known traps fix (tested steps), do_not (what failed, where), test, source. enforce=block: stop. enforce=ask: ask your person first. v=fix_first: use fix, not your command. Also returns safety (OSV advisories and malicious-package reports: verdict, advisories, fixed_in). When no tested record exists, repro_request says how to queue one with request_repro 'yes' (the only case where this call records anything: one anonymous request). Missing evidence is not safety clearance. Skip packages already pinned in a lockfile you are not changing.
| Argument | Type | Description |
|---|---|---|
| detail | string | Optional. 'full' adds tested_on, untruncated notes, records and links. |
| target* | string | Package or server as you would install it, e.g. tailwindcss@4, psycopg2, @modelcontextprotocol/server-filesystem. |
| ecosystem* | string | Package ecosystem of the target: npm (npm, pnpm, yarn, npx), pypi (pip, uv, uvx) or mcp (an MCP server you are about to add, or a bare name that may exist in more than one ecosystem). A bare name found in both npm and pypi returns v=ambiguous with npm:NAME and pypi:NAME options. |
| runtime_env | string | Optional, e.g. node 20 linux. |
| request_repro | string | Optional. 'yes' queues one anonymous reproduction request (package and version only) when no tested record exists for the target. |
{
"type": "object",
"required": [
"target",
"ecosystem"
],
"properties": {
"detail": {
"enum": [
"full"
],
"type": "string",
"description": "Optional. 'full' adds tested_on, untruncated notes, records and links."
},
"target": {
"type": "string",
"description": "Package or server as you would install it, e.g. tailwindcss@4, psycopg2, @modelcontextprotocol/server-filesystem."
},
"ecosystem": {
"enum": [
"npm",
"pypi",
"mcp"
],
"type": "string",
"description": "Package ecosystem of the target: npm (npm, pnpm, yarn, npx), pypi (pip, uv, uvx) or mcp (an MCP server you are about to add, or a bare name that may exist in more than one ecosystem). A bare name found in both npm and pypi returns v=ambiguous with npm:NAME and pypi:NAME options."
},
"runtime_env": {
"type": "string",
"description": "Optional, e.g. node 20 linux."
},
"request_repro": {
"enum": [
"yes",
"no"
],
"type": "string",
"description": "Optional. 'yes' queues one anonymous reproduction request (package and version only) when no tested record exists for the target."
}
},
"additionalProperties": false
}Fetch one record by id from search.
| Argument | Type | Description |
|---|---|---|
| id* | string |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
}
},
"additionalProperties": false
}Only if your owner opted in: after an install finishes, report pass or fail and the command. Reviewed before use.
| Argument | Type | Description |
|---|---|---|
| status* | string | Outcome of the install: pass if it finished and worked, fail if it errored. |
| target* | string | Package or server you installed, as you passed it to check_install, e.g. tailwindcss@4 or @modelcontextprotocol/server-filesystem. |
| command_run* | string | The exact install command you ran, e.g. npm i -D tailwindcss@4. No secrets or tokens. |
| runtime_env* | string | Your setup, e.g. node 20 linux or python 3.13 macos. |
| stderr_snippet | string | Optional. The key error lines if it failed, verbatim. Never include secrets, tokens or personal data. |
{
"type": "object",
"required": [
"target",
"runtime_env",
"status",
"command_run"
],
"properties": {
"status": {
"enum": [
"pass",
"fail"
],
"type": "string",
"description": "Outcome of the install: pass if it finished and worked, fail if it errored."
},
"target": {
"type": "string",
"description": "Package or server you installed, as you passed it to check_install, e.g. tailwindcss@4 or @modelcontextprotocol/server-filesystem."
},
"command_run": {
"type": "string",
"description": "The exact install command you ran, e.g. npm i -D tailwindcss@4. No secrets or tokens."
},
"runtime_env": {
"type": "string",
"description": "Your setup, e.g. node 20 linux or python 3.13 macos."
},
"stderr_snippet": {
"type": "string",
"description": "Optional. The key error lines if it failed, verbatim. Never include secrets, tokens or personal data."
}
},
"additionalProperties": false
}Search PinTree records for packages, tools and MCP servers.
| Argument | Type | Description |
|---|---|---|
| query* | string |
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string"
}
},
"additionalProperties": false
}Call when an install, build or import fails, before retrying or guessing a fix. Paste the key error line; returns tested fixes.
| Argument | Type | Description |
|---|---|---|
| runtime_env | string | Optional, e.g. python 3.13 macos. |
| error_signature* | string | The key error line, verbatim. |
{
"type": "object",
"required": [
"error_signature"
],
"properties": {
"runtime_env": {
"type": "string",
"description": "Optional, e.g. python 3.13 macos."
},
"error_signature": {
"type": "string",
"description": "The key error line, verbatim."
}
},
"additionalProperties": false
}