should-i-use

Honest library picks for coding agents in 25-360 tokens. Tells your agent what NOT to install.

Should I use this

Quality & Safety

A
Description quality
85%
Schema completeness
100%
Naming quality
83%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (3)

  • LOWTool 'alternatives' description lacks action verbin alternatives
  • LOWTool 'how_do_i' description lacks action verbin how_do_i
  • LOWTool 'docs_link' description lacks action verbin docs_link

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,021Tokens (tool definitions)
~1.1 KBTypical response size
Moderate attention impact (0.80% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "should-i-use": {
      "command": "npx",
      "args": [
        "should-i-use-mcp"
      ]
    }
  }
}

Runnable packages

npmshould-i-use-mcp0.3.2stdio

Remote endpoints

https://mrkeyoor.com/mcpstreamable-http

What it can do

Tool inventory

Tools (6)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢pick_library(task, ecosystem)

Given a coding task, recommend 1-3 libraries from the should-i-use index with one-line reasoning and an honest warning about the top pick. Use before installing anything.

Input Schema

{
  "type": "object",
  "properties": {
    "task": {
      "type": "string",
      "description": "What you are trying to do, e.g. \"parse CSV files in node\""
    },
    "ecosystem": {
      "type": "string",
      "enum": [
        "npm",
        "pypi"
      ],
      "description": "Optional registry filter"
    }
  },
  "required": [
    "task"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "answer": {
      "type": "string",
      "description": "The clamped text answer (hard limit ~500 tokens)"
    }
  },
  "required": [
    "answer"
  ]
}
🟢should_i_use(library)

Honest verdict on a specific library: 4-axis scores with reasons, when to skip it, and maintenance signals (last push, weekly downloads).

Input Schema

{
  "type": "object",
  "properties": {
    "library": {
      "type": "string",
      "description": "Library name as published on npm or PyPI"
    }
  },
  "required": [
    "library"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "answer": {
      "type": "string",
      "description": "The clamped text answer (hard limit ~500 tokens)"
    }
  },
  "required": [
    "answer"
  ]
}
🟢alternatives(library)

Curated alternatives to a library, each with a one-line "prefer it when" and a verdict if the alternative is also indexed.

Input Schema

{
  "type": "object",
  "properties": {
    "library": {
      "type": "string",
      "description": "Library name as published on npm or PyPI"
    }
  },
  "required": [
    "library"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "answer": {
      "type": "string",
      "description": "The clamped text answer (hard limit ~500 tokens)"
    }
  },
  "required": [
    "answer"
  ]
}
🟢how_do_i(library, task)

Return the 1-2 best code snippets for a task with a library, plus the gotcha for each. Snippets are correct for the indexed version. Far cheaper in tokens than a docs dump.

Input Schema

{
  "type": "object",
  "properties": {
    "library": {
      "type": "string",
      "description": "Library name as published on npm or PyPI"
    },
    "task": {
      "type": "string",
      "description": "What you want to do, e.g. \"retry a failed request\""
    }
  },
  "required": [
    "library",
    "task"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "answer": {
      "type": "string",
      "description": "The clamped text answer (hard limit ~500 tokens)"
    }
  },
  "required": [
    "answer"
  ]
}
🟢audit_dependencies(manifest, ecosystem)

Audit a project's dependencies for unmaintained packages, unstable APIs, and documented reasons to switch. Pass the contents of package.json, requirements.txt, or pyproject.toml. Returns only the dependencies worth a decision, not a report on every line. Run this before working in an unfamiliar codebase.

Input Schema

{
  "type": "object",
  "properties": {
    "manifest": {
      "type": "string",
      "description": "Contents of package.json, requirements.txt, pyproject.toml, or a newline-separated list of package names"
    },
    "ecosystem": {
      "type": "string",
      "enum": [
        "npm",
        "pypi"
      ],
      "description": "Optional hint when the manifest format is ambiguous"
    }
  },
  "required": [
    "manifest"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "answer": {
      "type": "string",
      "description": "The clamped text answer (hard limit ~500 tokens)"
    }
  },
  "required": [
    "answer"
  ]
}
🟢docs_link(library, topic)

Official docs URL and GitHub repo for a library, one line each. Use when the clamped answers are not enough.

Input Schema

{
  "type": "object",
  "properties": {
    "library": {
      "type": "string",
      "description": "Library name as published on npm or PyPI"
    },
    "topic": {
      "type": "string",
      "description": "Optional topic to look up in the docs"
    }
  },
  "required": [
    "library"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "answer": {
      "type": "string",
      "description": "The clamped text answer (hard limit ~500 tokens)"
    }
  },
  "required": [
    "answer"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded6 tools
verifiedversion not recorded6 tools
verifiedversion not recorded6 tools
verifiedversion not recorded6 tools
verifiedversion not recorded6 tools
verifiedversion not recorded6 tools