Skip to main content
Glama
brandikun

opencritic-mcp

by brandikun
README.md
# opencritic-mcp

An [MCP (Model Context Protocol)](https://modelcontextprotocol.io) server that gives AI assistants access to [OpenCritic](https://opencritic.com) game review scores via the official [OpenCritic API on RapidAPI](https://rapidapi.com/opencritic/api/opencritic-api).

Search for games and retrieve aggregated critic scores, review tiers, and individual reviews — all without scraping. For full API endpoints and response specs, see the [OpenCritic API Documentation](https://rapidapi.com/opencritic/api/opencritic-api).

---

## Tools

| Tool | Parameters | Description |
|------|------------|-------------|
| `search_game` | `query` (string) | Search by game title — returns up to 10 matches with IDs |
| `get_game` | `id` (number), `platform?` (string) | Get critic score, % recommended, tier, developer, publisher, platforms, genres, loot boxes, and box art. Filter by platform (e.g. `'PC'`, `'PS5'`, `'Xbox'`). |
| `get_game_reviews` | `id` (number), `platform?` (string), `limit?` (number) | Get individual critic reviews (outlet, score, author, language, platform tags, excerpt, link). Filter by platform. |

---

## Prerequisites

- [Node.js](https://nodejs.org) v18 or later
- A free RapidAPI key for the OpenCritic API

### Getting a RapidAPI key

1. Go to [rapidapi.com/opencritic/api/opencritic-api](https://rapidapi.com/opencritic/api/opencritic-api)
2. Sign up or log in (free)
3. Subscribe to the **Basic** plan (free tier: 200 requests/day, 25 searches/day)
4. Copy your `X-RapidAPI-Key` from the dashboard

> **Your key is only ever used locally.** It is read from an environment variable at runtime and never stored in the package.

---

## Installation

### Option A — npx (no install required)

```json
{
  "mcpServers": {
    "opencritic": {
      "command": "npx",
      "args": ["-y", "opencritic-mcp"],
      "env": {
        "RAPIDAPI_KEY": "your_rapidapi_key_here"
      }
    }
  }
}
```

### Option B — Clone and build locally

```bash
git clone https://github.com/brandikun/opencritic-mcp.git
cd opencritic-mcp
npm install
npm run build
```

Then add to your MCP config:

```json
{
  "mcpServers": {
    "opencritic": {
      "command": "node",
      "args": ["/absolute/path/to/opencritic-mcp/dist/index.js"],
      "env": {
        "RAPIDAPI_KEY": "your_rapidapi_key_here"
      }
    }
  }
}
```

---

## MCP Client Config Locations

| Client | Config file |
|--------|-------------|
| **Antigravity / AGY** | `~/.gemini/antigravity-cli/settings.json` |
| **Claude Desktop** | `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) |
| **Claude Desktop (Windows)** | `%APPDATA%\Claude\claude_desktop_config.json` |

---

## Example usage

Once connected, you can ask your AI assistant things like:

- *"Search for Hollow Knight on OpenCritic"*
- *"What's the critic score for Disco Elysium?"*
- *"Show me the top critic reviews for Elden Ring"*
- *"Cross-reference my Steam library with OpenCritic scores"* (when paired with a Steam MCP)

---

## Security notes

- Your `RAPIDAPI_KEY` is passed via environment variable — it never appears in source code or gets committed to git
- The server uses only Node's built-in `fetch` and the official MCP SDK — no third-party HTTP clients
- If `RAPIDAPI_KEY` is missing, the server exits immediately with a clear error message

---

## Free tier limits & Caching

| Limit | Value |
|-------|-------|
| Requests per day | 200 |
| Searches per day | 25 |
| Requests per second | 4 |

> **Built-in Caching:** To protect your daily RapidAPI quota, responses are cached in memory for **1 hour**. Repeated detail or review queries cost **0 API requests**.

---

## License

MIT

TDQS

A4.5/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a distinct purpose: search_game finds games by name, get_game retrieves full details for a specific game, and get_game_reviews fetches individual critic reviews. There is no overlap in functionality, and the descriptions clearly indicate when to use each.

Naming Consistency5/5

All tool names follow the same verb_noun pattern with lowercase snake_case: get_game, search_game, get_game_reviews. The pattern is consistent and predictable, making it easy to guess the function of each tool.

Tool Count5/5

With only three tools, the server is well-scoped for its purpose of accessing OpenCritic data. Each tool covers a necessary step in the workflow (search, details, reviews), and no redundant or superfluous tools are present.

Completeness5/5

The toolset provides a complete read-only workflow: search to find a game, then retrieve either its full details or its individual reviews. There are no obvious gaps, and the filter options add flexibility for platform-specific queries.

Maintenance

ActivitySlowing
ResponsivenessNo issues