Skip to main content
Glama
api-commons

Spotlight MCP

by api-commons
README.md
<p align="center"><a href="https://spotlight-rules.com"><img src="https://raw.githubusercontent.com/api-commons/spotlight-mcp/main/spotlight-rules-logo.png" alt="Spotlight Rules" height="90"></a></p>

# Spotlight MCP

A [Model Context Protocol](https://modelcontextprotocol.io) server that exposes
[Spotlight](https://spotlight-rules.com) to **any AI client** — so an agent can lint
your API artifacts and work with rulesets conversationally. It runs the same
`@spotlight-rules/*` engine as [spotlight-cli](https://github.com/api-commons/spotlight-cli),
over stdio.

## Tools

| Tool | What it does |
| --- | --- |
| `lint_artifact` | Lint an artifact (`content`, optional `format`, optional `ruleset`) → findings (code, message, severity, path) + counts |
| `list_rulesets` | The built-in rulesets (`spotlight:oas`, `:asyncapi`, `:arazzo`) and their rules |
| `list_formats` | The artifact formats Spotlight can lint |
| `validate_ruleset` | Structurally validate a ruleset (alias, object, or YAML/JSON string) |

## Use it

```bash
npm install
npm start          # speaks MCP over stdio
```

### Claude Desktop / any MCP client

Add to your client's MCP server config (e.g. Claude Desktop `claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "spotlight": {
      "command": "npx",
      "args": ["-y", "@spotlight-rules/spotlight-mcp"]
    }
  }
}
```

Then ask: *"Lint this OpenAPI with Spotlight and tell me what to fix."*

## Part of the Spotlight suite

One engine (the CLI), one vocabulary (the spec + its rule tags): **spec** · **cli** ·
**api** (HTTP) · **mcp** (AI, this repo) · **vscode** · **validator**. Where
[spotlight-api](https://github.com/api-commons/spotlight-api) is the HTTP surface,
this is the AI surface.

---

Part of [Spotlight Rules](https://spotlight-rules.com) — a project of [API Evangelist](https://apievangelist.com), maintained openly under [API Commons](https://apicommons.org). Apache-2.0.

TDQS

A4/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: linting artifacts, listing supported formats, listing available rulesets, and validating ruleset definitions. No ambiguity or overlap.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (e.g., lint_artifact, list_formats). Underscore separation and lowercase verbs are used uniformly.

Tool Count5/5

Four tools cover the core functionality of a linter server (lint, discover formats, list rulesets, validate rulesets) without being overly sparse or excessive.

Completeness4/5

The tool set covers the main use cases, though a tool to view a single rule's details or run lint with a custom ruleset might be missing, but these are minor gaps.

Maintenance

ActivityMaintained
ResponsivenessSyncing