Skip to main content
Glama
api-commons

Spotlight MCP

by api-commons

Spotlight MCP

A Model Context Protocol server that exposes Spotlight 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, 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)

Related MCP server: APIMatic Validator MCP Server

Use it

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):

{
  "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 is the HTTP surface, this is the AI surface.


Part of Spotlight Rules — a project of API Evangelist, maintained openly under API Commons. Apache-2.0.

Available Tools

4 tools
lint_artifactA

Lint an API artifact (OpenAPI, AsyncAPI, Arazzo, APIs.json, JSON Schema, …) with Spotlight and return governance findings (code, message, severity, path).

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoArtifact format; selects the default ruleset when none is given.
contentYesThe API artifact as a YAML or JSON string.
rulesetNoA ruleset alias ("spotlight:oas") or a ruleset definition object. Defaults to the built-in ruleset for the format.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that the tool returns governance findings with specific fields (code, message, severity, path) and implies a read-only operation. However, it does not explicitly state that it does not modify data or mention rate limits or authentication needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that efficiently communicates purpose, supported artifact types, and return value fields. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is fairly complete given the tool's complexity: it explains the action, inputs types, and output structure. However, it could briefly mention error behavior or that the content must be parseable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with descriptions for all parameters, so the baseline is 3. The description adds no additional meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lints API artifacts of various types and returns governance findings. It uses a specific verb (lint) and resource (API artifact), and the sibling tools are for listing formats, listing rulesets, and validating rulesets, so this tool is distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (to lint an artifact) but does not explicitly compare with sibling tools or mention when not to use it. No guidance on alternatives or prerequisites is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_formatsA

List the artifact formats Spotlight can lint.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only states the action without disclosing any behavioral traits (e.g., read-only nature, authentication requirements, or response format). The description carries the full burden but offers minimal context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no unnecessary words. It is front-loaded with the action ('List'), making it efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with no parameters and no output schema, the description is largely complete. It could mention the return format (e.g., a list of strings), but the core functionality is clear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, and the schema covers 100% of them. The description adds meaning by explaining what the tool does, which is sufficient given no params need documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists artifact formats Spotlight can lint. It uses a specific verb ('list') and resource ('artifact formats'), and it distinguishes from sibling tools like lint_artifact and list_rulesets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you need to know supported formats, but provides no explicit guidance on when to use this tool versus alternatives or any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_rulesetsA

List the built-in Spotlight rulesets (spotlight:oas, spotlight:asyncapi, spotlight:arazzo) and the rules each contains.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. 'List' implies a read-only operation, but it does not explicitly state no side effects or authentication needs. The behavior is simple, so a score of 3 is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with no waste. Front-loaded with key verb and resource, efficiently conveying purpose and scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless tool with no output schema, the description fully explains what it does and what it returns (rulesets and their rules). No gaps given the simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the description does not need to add parameter meaning. According to guidelines, baseline is 4 for 0 parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists built-in Spotlight rulesets and their rules, naming specific examples (spotlight:oas, etc.). It distinguishes from siblings like lint_artifact (linting) and list_formats (formats) by focusing on rulesets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use when needing to see available rulesets. While no explicit exclusions or alternatives are given, the context of sibling tools and the specific verb 'list' provide clear usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_rulesetB

Structurally validate a Spotlight ruleset (alias, definition object, or YAML/JSON string) against the engine.

ParametersJSON Schema
NameRequiredDescriptionDefault
rulesetNoA ruleset definition (object) or a YAML/JSON string.

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits. It only says 'structurally validate' without explaining what happens on success/failure, whether it is read-only, or what the return value is. This leaves significant ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence of 16 words with no redundancy. All information is front-loaded and every word is necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description adequately states the input forms but fails to describe the output or validation behavior. Without output schema, the agent lacks information about what to expect, making it incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds 'alias' as an accepted form beyond the schema's 'definition object or YAML/JSON string', providing minor additional value. However, it does not explain how to provide an alias or the expected format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'validate' and the resource 'Spotlight ruleset', specifying acceptable forms (alias, definition object, or YAML/JSON string). This distinguishes it from sibling tools like lint_artifact, list_formats, and list_rulesets, which have different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. It does not state prerequisites, when validation is appropriate, or scenarios where another tool (e.g., lint_artifact) would be better.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 4 tool updatesv1.0.0
    • First observedlint_artifact
    • First observedlist_formats
    • First observedlist_rulesets
    • First observedvalidate_ruleset

TDQS

A4/5.0
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

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol server that loads multiple OpenAPI specifications and exposes them to LLM-powered IDE integrations, enabling AI to understand and work with your APIs directly in development tools like Cursor.
    7
    83
    90
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables Python code linting by integrating the Model Context Protocol with tools like pylint and the OpenAI API. It allows for dynamic tool discovery and uses LLMs to orchestrate tool selection and provide refined analysis of linting results.
    -
  • F
    license
    A
    quality
    C
    maintenance
    Provides OpenAPI validation and analysis tools to assist developers in building Model Context Protocol servers. It generates developer context and specific agent prompts based on API specifications to streamline the creation of agentic workflows.
    9
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/api-commons/spotlight-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server