Skip to main content
Glama

kothar

kothar MCP server

Context-aware MCP server advisor. Tells you what to install for your specific project — and why.

The problem

Glama has 19,000+ MCP servers. You have a project. Nobody bridges the gap.

LLMs asked directly hallucinate servers that don't exist and recommend from stale training data. Directories give you search, not advice.

kothar fills the selection under context gap: not "here are 19,000 options" but "for your specific project, right now, here's what you need and why."

The two moments nobody is serving

Project start: "I'm building a Python data pipeline with DuckDB and FastAPI" → what do I install right now

Mid-project: "I just added an auth layer / I need to handle PDF ingestion" → what do I add now that I've reached this point

The second moment is more valuable. At project start, people can Google. Mid-project they're in flow.

Three tools

recommend_for_project(description)
  → top MCP servers for your stack with rationale

recommend_for_next_step(current_stack, new_context)
  → what to add as your project evolves

explain_fit(server_name, project_description)
  → why a specific server fits your project

Install

Prerequisites: uv

git clone https://github.com/yahiaklk/kothar
cd kothar
uv sync

Build the index (first run, ~30s):

uv run python -m kothar.indexer

Add to Claude Code

claude mcp add --scope user kothar -- uv run --directory /path/to/kothar python -m kothar.server

Add to Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "kothar": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/kothar", "python", "-m", "kothar.server"]
    }
  }
}

Usage

Once connected, ask your AI assistant:

recommend_for_project("Python FastAPI backend with PostgreSQL and JWT auth")

recommend_for_next_step("github,filesystem", "adding Stripe payments and PDF invoices")

explain_fit("postgres", "multi-tenant SaaS with row-level security")

How it works

  • Parses awesome-mcp-servers (2000+ curated servers)

  • Embeds descriptions with all-MiniLM-L6-v2 (local, no API cost)

  • Stores in DuckDB, queries with cosine similarity

  • Template-based rationale — grounded in the registry, not hallucinated

Rebuild the index

uv run python -m kothar.indexer --force

Docker

Multi-stage image with the embedding model + DuckDB index baked in — no runtime network dependency.

docker build -t kothar:0.3.0 .
docker run --rm -i kothar:0.3.0   # stdio transport, for local MCP clients

Wire into Claude Desktop:

{
  "mcpServers": {
    "kothar": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "kothar:0.3.0"]
    }
  }
}

Non-root user (uid=10001), pinned Python 3.12, deps resolved from uv.lock, model cached under /app/.hf_cache with HF_HUB_OFFLINE=1 at runtime.

Stack

Python · FastMCP · DuckDB · sentence-transformers · uv

License

MIT

Available Tools

4 tools
explain_whyB

Explain why a specific MCP server is a good fit for a given project. Example: server_name="github", project_description="open source Python library with CI/CD"

Inputs: server_name (required), project_description (required). Returns: result

recommend_for_goalA

Decompose a multi-part goal into sub-queries and recommend MCP servers for each part. Splits on hard boundaries: '. ', '; ', ' then ', ', then ', ' and then ' (not bare ' and '). project: optional project context prepended to each sub-query for richer semantic matching. Example: goal="integrate GitHub. add Stripe payments", project="Python FastAPI backend"

Inputs: goal (required), project. Returns: result

recommend_for_projectA

Given a project description, recommend the top MCP servers to install and explain why each one fits. Example: "Python FastAPI backend with PostgreSQL and JWT auth"

Inputs: description (required). Returns: result

recommend_nextA

Mid-project advisor: given your current MCP stack (list of server names) and a new development context, recommend what to add next and why. Example: current_stack=["github", "filesystem"], new_context="adding Stripe payments and PDF invoices" session_file: optional path to a session notes file whose content is appended to new_context.

Inputs: current_stack (required), new_context (required), session_file. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 4 tools

    Disambiguation5/5

    Each tool has a distinct purpose: explaining a specific server, recommending for a multi-part goal, for a full project, or for next steps. No overlap.

    Naming Consistency4/5

    All names follow verb_noun pattern (explain_why, recommend_for_goal, etc.), but 'explain_why' uses 'why' as a noun, slightly deviating from standard action-object convention.

    Tool Count5/5

    Four tools cover the essential recommendation scenarios without redundancy. The count is well-scoped for the server's purpose.

    Completeness4/5

    The set covers main use cases: explaining, recommending for goals, projects, and next steps. Missing features like comparing or updating recommendations, but not critical.

    Maintenance

    ActivityNo data
    ResponsivenessSyncing

    Related MCP Connectors