Skip to main content
Glama
plugolis

Plugolis MCP Server

Official
by plugolis
README.md
# Plugolis MCP server

Find MCP servers and fix MCP errors right from your AI assistant.

This server gives Cursor, Claude, VS Code and other MCP clients read-only access to the [Plugolis](https://plugolis.com) directory. That covers MCP servers with install commands and ready-to-paste configs, plus step-by-step fixes for common errors like `spawn npx ENOENT` or `MCP error -32000: Connection closed`.

- **Read-only.** It only reads Plugolis's public JSON API at `https://plugolis.com/api/`.
- **No API key, no account, no secrets.**
- Data is cached for 15 minutes, so repeated questions are fast.

## Tools

| Tool | What it does |
| --- | --- |
| `search_servers` | Search servers by words (`query`) and filter by `category`, `client` (e.g. Cursor), `status` (`maintained` / `stale`) and `transport` (`local` / `remote`). |
| `get_server` | Everything about one server (by slug): install command, config JSON, required env vars, repo, stars, maintenance status. |
| `list_categories` | All categories with their server counts. |
| `search_fixes` | Paste an error message to find the matching fix. You can filter by client. |
| `get_fix` | One fix in full: the error, the cause, numbered steps with code, and sources. |

Example prompts:
- "Find a maintained MCP server for Postgres and give me the Cursor config."
- "Claude Desktop says `spawn npx ENOENT`. How do I fix it?"

## Install

Requires [Node.js](https://nodejs.org) 18 or newer.

### Cursor

Add this to `~/.cursor/mcp.json` (or `.cursor/mcp.json` in a project):

```json
{
  "mcpServers": {
    "plugolis": {
      "command": "npx",
      "args": ["-y", "plugolis-mcp"]
    }
  }
}
```

### Claude Desktop

Open **Settings → Developer → Edit Config** and add this to `claude_desktop_config.json`, then restart Claude:

```json
{
  "mcpServers": {
    "plugolis": {
      "command": "npx",
      "args": ["-y", "plugolis-mcp"]
    }
  }
}
```

On Windows, if you see `spawn npx ENOENT`, use `"command": "cmd"` and `"args": ["/c", "npx", "-y", "plugolis-mcp"]`.

### Claude Code

```bash
claude mcp add plugolis -- npx -y plugolis-mcp
```

### VS Code

Add this to `.vscode/mcp.json`. Note that VS Code uses `servers`, not `mcpServers`:

```json
{
  "servers": {
    "plugolis": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "plugolis-mcp"]
    }
  }
}
```

### Remote server (coming soon)

A hosted version that needs no install is planned at `https://mcp.plugolis.com/mcp` (Streamable HTTP). **It is not live yet.** Use the `npx` setup above until this note is removed.

## Options

These environment variables are all optional:

| Variable | Default | Meaning |
| --- | --- | --- |
| `PLUGOLIS_API_URL` | `https://plugolis.com/api` | Where to read the data |
| `PLUGOLIS_CACHE_TTL_MS` | `900000` (15 min) | How long to cache it |

## Development

```bash
npm install
npm test              # builds, then runs the stdio server and calls every tool through a real MCP client
npm run test:worker   # runs the Cloudflare Worker with `wrangler dev` and calls every tool over HTTP
npm run typecheck
```

Set `SKIP_LIVE=1` to skip the tests that use the live plugolis.com API.

Project layout:
- `src/data.ts`: fetches the API, with caching, timeouts and clear errors
- `src/server.ts`: the MCP tools (shared by both versions)
- `src/index.ts`: the stdio entry point (`npx plugolis-mcp`)
- `workers/`: the remote Streamable HTTP version for Cloudflare Workers (stateless, endpoint `/mcp`)

You can also try it in the MCP Inspector:

```bash
npm run build && npx @modelcontextprotocol/inspector node dist/index.js
```

## Data and license

The data comes from [plugolis.com](https://plugolis.com). If you reuse it, credit Plugolis with a link. The code is released under the [MIT](LICENSE) license.

TDQS

A4.1/5.0

Scored across 5 tools

Disambiguation4/5

The set forms two clean search/get pairs for distinct resources (servers and fixes), so an agent can easily tell which to call. The only mild overlap is between search_servers with no arguments (lists every server) and list_categories (lists categories plus their server slugs), but the descriptions clarify the intended split.

Naming Consistency5/5

All five tools follow a strict verb_noun snake_case pattern: search_servers, get_server, list_categories, search_fixes, get_fix. The search/get/list verbs are used predictably for the same resource actions throughout.

Tool Count4/5

Five tools is a lean but sensible surface for a read-only directory covering two content types plus categorization. It sits at the low edge of the ideal range; nothing is redundant, though the set is thin enough that any missing lookup path would be noticeable.

Completeness4/5

Search and retrieval are covered for both the server directory and the error-fix library, which matches the read-only nature of the domain. Minor gaps exist, such as no direct tool to enumerate servers within a given category without going through search_servers, but agents can bridge this easily.