Skip to main content
Glama
@inspekt-gg/mcp

@inspekt-gg/mcp

Official
by inspekt-gg
README.md
# @inspekt-gg/mcp

MCP server for [inspekt.gg](https://inspekt.gg): CS2 skin stills and 3D viewer embed code from a Steam inspect link or a catalog id.

## Install

Node 18+. Key: [inspekt.gg/dashboard](https://inspekt.gg/dashboard) (free 10-day trial).

Claude Code:

```
claude mcp add inspekt -e INSPEKT_KEY=cs2pk_your_key_here -- npx -y @inspekt-gg/mcp
```

Claude Desktop, in `claude_desktop_config.json` (Settings, Developer, Edit Config):

```json
{
  "mcpServers": {
    "inspekt": {
      "command": "npx",
      "args": ["-y", "@inspekt-gg/mcp"],
      "env": { "INSPEKT_KEY": "cs2pk_your_key_here" }
    }
  }
}
```

Restart Claude Desktop after saving.

## Quickstart

> Render steam://rungame/730/76561202255233023/+csgo_econ_action_preview 001807209A0228043004388F85D7F30340950512E67D72 from the front on its rarity plate at 640 by 400.

`render_still` returns the webp URL:

```
https://inspekt.gg/api/still?inspect=steam%3A%2F%2Frungame%2F730%2F76561202255233023%2F%2Bcsgo_econ_action_preview%20001807209A0228043004388F85D7F30340950512E67D72&view=front&bg=rarity&w=640&h=400&key=cs2pk_your_key_here
```

Test it from an `<img>` on an allowed origin; opened in the address bar it gets `403 origin_required`.

> Give me an embed for the same link, rotating.

`embed_snippet` returns:

```html
<div id="viewer" style="width:640px;height:400px"></div>
<script src="https://inspekt.gg/cs2embed.js"></script>
<script>
  var viewer = CS2Embed.mount(document.getElementById('viewer'), {
    inspect: 'steam://rungame/730/76561202255233023/+csgo_econ_action_preview 001807209A0228043004388F85D7F30340950512E67D72',
    view: 'front',
    autorotate: true,
    key: 'cs2pk_your_key_here',
  });
  viewer.on('error', function (e) { console.error('embed refused:', e.code, e.message); });
  viewer.on('fallback', function (e) { console.warn('item problem:', e.code); });
</script>
```

## Tools

| Tool | Returns | Key |
| --- | --- | --- |
| `render_still` | The `/api/still` URL and `<img>` tag for one item. `include_image` adds the picture. | `INSPEKT_KEY`, and `INSPEKT_SECRET` for `include_image` |
| `embed_snippet` | A `cs2embed.js` snippet, a raw iframe or a React component. | `INSPEKT_KEY` |
| `catalog_search` | Catalog ids and float ranges by name and weapon. | none |
| `inventory_lookup` | The CS2 items in a public Steam inventory. | `INSPEKT_SECRET` |
| `docs` | A section of the [agent pack](https://inspekt.gg/docs/inspekt-for-agents.md): parameters, bounds, refusal codes, limits. | none |

## Keys

`INSPEKT_KEY` is the publishable key (`cs2pk_`). `INSPEKT_SECRET` is the optional secret key (`cs2sk_`), set the same way. Both come from the dashboard.

Add the origin of each page that loads a still or an embed under Allowed origins in the dashboard.

MIT. Copyright (c) 2026 Inspekt.