Spotlight MCP
Provides tools for linting API artifacts, including linting an artifact, listing available rulesets and formats, and validating custom rulesets.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Spotlight MCPLint this OpenAPI and tell me what to fix"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 an artifact ( |
| The built-in rulesets ( |
| The artifact formats Spotlight can lint |
| 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 stdioClaude 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 toolslint_artifactA
Lint an API artifact (OpenAPI, AsyncAPI, Arazzo, APIs.json, JSON Schema, …) with Spotlight and return governance findings (code, message, severity, path).
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Artifact format; selects the default ruleset when none is given. | |
| content | Yes | The API artifact as a YAML or JSON string. | |
| ruleset | No | A ruleset alias ("spotlight:oas") or a ruleset definition object. Defaults to the built-in ruleset for the format. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ruleset | No | A ruleset definition (object) or a YAML/JSON string. |
TDQS
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.
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.
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.
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.
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.
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.
4 tool updates
v1.0.0- First observed
lint_artifact - First observed
list_formats - First observed
list_rulesets - First observed
validate_ruleset
TDQS
Each tool has a clearly distinct purpose: linting artifacts, listing supported formats, listing available rulesets, and validating ruleset definitions. No ambiguity or overlap.
All tool names follow a consistent verb_noun pattern (e.g., lint_artifact, list_formats). Underscore separation and lowercase verbs are used uniformly.
Four tools cover the core functionality of a linter server (lint, discover formats, list rulesets, validate rulesets) without being overly sparse or excessive.
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
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
MCP server (stdio): lint OpenAPI specs with Spectral via the AgentForge API
Research-backed linting + generation for agent context files (CLAUDE.md, AGENTS.md, Cursor rules).
API governance for AI agents. Detects breaking changes, scores blast radius, blocks unsafe calls.
Model Context Protocol server for the Apideck Unified API. Connect any MCP-compatible agent framework to 100+ accounting systems, HRIS platforms, file storage providers, and more through one integration. More information https://www.apideck.com/mcp-server
Related MCP Servers
- AlicenseBqualityDmaintenanceA 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.78390MIT
- FlicenseBqualityDmaintenanceEnables validation of OpenAPI 2.0 and 3.0 specifications in JSON or YAML format using APIMatic's comprehensive API validation service through the Model Context Protocol.17-
- FlicenseNot gradedqualityDmaintenanceEnables 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.-
- FlicenseAqualityCmaintenanceProvides 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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