Koskamo

should-i-use MCP

An MCP server that provides honest library recommendations for coding agents, helping them decide which dependencies to install or avoid based on a curated index of 992 rubric-written guides. It offers tools to pick libraries, audit dependencies, and find alternatives.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

should-i-use MCP logo, by mrkeyoorCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-07Published by mrkeyoor
MCP endpoint (Streamable HTTP)
https://mrkeyoor.com/mcp
Vendor documentation

What its tools do

6 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

6 of 6 have a description · 6 of 6 declare behavior hints · 6 of 6 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Warning Advertises resources/templates/list but does not implement it
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Pick top library recommendations for specific tasks
  • Audit dependencies for unmaintained or unstable packages
  • Find curated alternatives for existing libraries
  • Get documentation links and repo information

Source and maintenance

Community listingRegistry 0.3.2
Maintenance checked

Protocol and capabilities

Server
should-i-use 0.3.3
MCP protocol negotiated in check
2025-11-25
Tools
6 advertised
Resources
0 advertised
Resource templates
Not advertised
Prompts
0 advertised
Server-advertised capabilities
{
  "tools": {},
  "prompts": {},
  "resources": {}
}

Tools

6 advertised

pick_library — Pick a library
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

pick_library input schema
{
  "type": "object",
  "required": [
    "task"
  ],
  "properties": {
    "task": {
      "type": "string",
      "description": "What you are trying to do, e.g. \"parse CSV files in node\""
    },
    "ecosystem": {
      "enum": [
        "npm",
        "pypi"
      ],
      "type": "string",
      "description": "Optional registry filter"
    }
  }
}
pick_library output schema
{
  "type": "object",
  "required": [
    "answer"
  ],
  "properties": {
    "answer": {
      "type": "string",
      "description": "The clamped text answer (hard limit ~500 tokens)"
    }
  }
}
pick_library annotations
{
  "title": "Pick a library",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
should_i_use — Should I use this library?
Advertised by the server during the last successful anonymous check.
Advertised read-only

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

should_i_use input schema
{
  "type": "object",
  "required": [
    "library"
  ],
  "properties": {
    "library": {
      "type": "string",
      "description": "Library name as published on npm or PyPI"
    }
  }
}
should_i_use output schema
{
  "type": "object",
  "required": [
    "answer"
  ],
  "properties": {
    "answer": {
      "type": "string",
      "description": "The clamped text answer (hard limit ~500 tokens)"
    }
  }
}
should_i_use annotations
{
  "title": "Should I use this library?",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
alternatives — Library alternatives
Advertised by the server during the last successful anonymous check.
Advertised read-only

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

alternatives input schema
{
  "type": "object",
  "required": [
    "library"
  ],
  "properties": {
    "library": {
      "type": "string",
      "description": "Library name as published on npm or PyPI"
    }
  }
}
alternatives output schema
{
  "type": "object",
  "required": [
    "answer"
  ],
  "properties": {
    "answer": {
      "type": "string",
      "description": "The clamped text answer (hard limit ~500 tokens)"
    }
  }
}
alternatives annotations
{
  "title": "Library alternatives",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
how_do_i — How do I do this?
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

how_do_i input schema
{
  "type": "object",
  "required": [
    "library",
    "task"
  ],
  "properties": {
    "task": {
      "type": "string",
      "description": "What you want to do, e.g. \"retry a failed request\""
    },
    "library": {
      "type": "string",
      "description": "Library name as published on npm or PyPI"
    }
  }
}
how_do_i output schema
{
  "type": "object",
  "required": [
    "answer"
  ],
  "properties": {
    "answer": {
      "type": "string",
      "description": "The clamped text answer (hard limit ~500 tokens)"
    }
  }
}
how_do_i annotations
{
  "title": "How do I do this?",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
audit_dependencies — Audit dependencies
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

audit_dependencies input schema
{
  "type": "object",
  "required": [
    "manifest"
  ],
  "properties": {
    "manifest": {
      "type": "string",
      "description": "Contents of package.json, requirements.txt, pyproject.toml, or a newline-separated list of package names"
    },
    "ecosystem": {
      "enum": [
        "npm",
        "pypi"
      ],
      "type": "string",
      "description": "Optional hint when the manifest format is ambiguous"
    }
  }
}
audit_dependencies output schema
{
  "type": "object",
  "required": [
    "answer"
  ],
  "properties": {
    "answer": {
      "type": "string",
      "description": "The clamped text answer (hard limit ~500 tokens)"
    }
  }
}
audit_dependencies annotations
{
  "title": "Audit dependencies",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
docs_link — Docs link
Advertised by the server during the last successful anonymous check.
Advertised read-only

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

docs_link input schema
{
  "type": "object",
  "required": [
    "library"
  ],
  "properties": {
    "topic": {
      "type": "string",
      "description": "Optional topic to look up in the docs"
    },
    "library": {
      "type": "string",
      "description": "Library name as published on npm or PyPI"
    }
  }
}
docs_link output schema
{
  "type": "object",
  "required": [
    "answer"
  ],
  "properties": {
    "answer": {
      "type": "string",
      "description": "The clamped text answer (hard limit ~500 tokens)"
    }
  }
}
docs_link annotations
{
  "title": "Docs link",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

0 advertised

No prompt definitions available.

Resources

0 advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1512 ms
95th percentile latency
1512 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1512 ms · metadata changed · 6 tool(s), 0 resource(s), 0 prompt(s); warnings: Advertises resources/templates/list but does not implement it

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http should-i-use-mcp-mrkeyoor https://mrkeyoor.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add should-i-use-mcp-mrkeyoor --url https://mrkeyoor.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable should-i-use-mcp-mrkeyoor in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "should-i-use-mcp-mrkeyoor": {
      "url": "https://mrkeyoor.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "should-i-use-mcp-mrkeyoor": {
      "type": "streamableHttp",
      "url": "https://mrkeyoor.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start should-i-use-mcp-mrkeyoor and inspect its tools.
VS Code configuration
{
  "servers": {
    "should-i-use-mcp-mrkeyoor": {
      "type": "http",
      "url": "https://mrkeyoor.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http should-i-use-mcp-mrkeyoor https://mrkeyoor.com/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://mrkeyoor.com/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "should-i-use-mcp-mrkeyoor": {
      "serverUrl": "https://mrkeyoor.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like should-i-use MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.