Janus MCP
Click on "Deploy 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., "@Janus MCPExplore the Petstore API and list all user endpoints"
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.
Janus MCP
Janus MCP is a Model Context Protocol server that enables AI assistants to understand and interact with OpenAPI specifications. It provides your AI with deep insight into API structures, making API integration projects faster and more accurate. The server includes token-optimized output formats to reduce costs and improve response efficiency for your AI interactions.
What It Does
Janus MCP transforms how you and your AI assistant work together on projects involving APIs. Instead of manually parsing OpenAPI specifications or struggling to understand complex API structures, your AI can directly query and explore API documentation to provide precise, context-aware assistance.
When working on API integration projects, your AI assistant can:
Instantly understand the complete structure of any OpenAPI-compliant API
Provide accurate endpoint information including parameters, request bodies, and response schemas
Help generate correct API calls with proper data structures
Explain API relationships and data flows
Assist with error handling by understanding expected error responses
Generate comprehensive documentation in markdown or interactive HTML formats
Related MCP server: Swagger MCP Server
Installation
Add Janus MCP to your AI assistant's configuration:
{
"mcpServers": {
"janus": {
"command": "npx",
"args": ["janus-mcp"],
"env": {
"JANUS_OUTPUT_FORMAT": "compact"
}
}
}
}The JANUS_OUTPUT_FORMAT environment variable sets the default output format for new sessions. Available formats are compact (default), structured, markdown, and json.
How It Works
Janus MCP creates sessions from OpenAPI specification files (JSON or YAML) or URLs and provides your AI with tools to explore them systematically. Each session maintains the API context and output format preference, allowing for efficient querying without repeatedly parsing large specification files. Your AI can choose from multiple output formats optimized for different use cases and token efficiency.
Your AI assistant can initialize a session with any OpenAPI specification and then:
List all available endpoints with filtering by tags, HTTP methods, or other criteria
Get detailed information about specific endpoints including parameters, request schemas, and response formats
Explore reusable components like data models, security schemes, and error schemas
Navigate complex APIs with dozens or hundreds of endpoints organized by functional areas
Understand relationships between endpoints, data models, and business workflows
Switch between output formats during the session to optimize for readability or token efficiency
Generate professional documentation with expanded schema details and markdown rendering
Example Workflow
When you're building an application that needs to integrate with a REST API:
You provide the OpenAPI specification file or URL to your AI assistant
The AI initializes a Janus session and explores the API structure, understanding its scope and organization
As you describe what you want to build, the AI can reference exact endpoint details, parameter requirements, and response formats
The AI understands complex data relationships and can suggest optimal integration patterns
The AI generates accurate integration code with proper error handling, data validation, and security considerations
Throughout development, the AI maintains context about the API structure for ongoing assistance
For example, when working with an enterprise compliance API with 88 endpoints across 24 functional areas, your AI can:
Filter endpoints by tags like "Documents", "Users", or "Audit Logs" to focus on relevant functionality
Understand that document creation requires specific audit notes and sensitivity levels
Navigate complex workflows like document approval processes with proper status transitions
Generate code that handles OAuth2 authentication and encrypted data properly
Suggest appropriate error handling for different endpoint response patterns
Output Formats
Your AI can work with responses in multiple formats:
Compact: Token-efficient format that reduces response size significantly compared to JSON. Ideal for cost optimization and quick scanning of large endpoint lists.
Structured: Readable text format with clear labels and organization. Balances readability with token efficiency, reducing size slightly compared to JSON.
Markdown: Formatted documentation-style output with headers, code blocks, and emphasis. Excellent for generating API documentation or detailed explanations.
JSON: Full structured data format maintaining complete compatibility with existing integrations and tools that expect JSON responses.
Documentation Generation
Your AI can generate comprehensive API documentation in two formats:
Markdown Documentation: Traditional markdown files with detailed endpoint information, expanded schema definitions, and proper markdown rendering of API descriptions. Ideal for version control, README files, or integration with documentation platforms.
Interactive HTML Documentation: Professional web-based documentation featuring a fixed sidebar navigation, color-coded HTTP methods, expandable schema details, and responsive design. The HTML format includes smooth scrolling navigation, required field indicators, and detailed property tables that show actual field structures instead of just type names.
Both formats automatically parse and render markdown content within API descriptions, endpoint summaries, and parameter documentation. Schema references are expanded inline to show complete object structures with property types, requirements, and descriptions, eliminating the need to cross-reference separate schema sections.
Capabilities
The tools available to your AI assistant include:
Session management for multiple OpenAPI specifications with persistent format preferences
Advanced endpoint filtering by tags, HTTP methods, and operational characteristics
Detailed endpoint inspection with selective data retrieval for optimal performance
Comprehensive component and schema exploration including security schemes
Tag-based organization understanding for large, complex APIs
Dynamic output format switching to optimize for specific use cases
Support for APIs with sophisticated authentication, workflow, and data sensitivity requirements
Documentation generation with interactive HTML output featuring sticky navigation and expanded schemas
This enables your AI to provide contextually accurate assistance whether you're exploring a new API, implementing complex business workflows, debugging integration issues, or extending existing functionality. The tool scales from simple APIs with a few endpoints to enterprise systems with hundreds of endpoints and complex data relationships. The multiple output formats allow your AI to balance between detailed information and token efficiency based on the specific task at hand.
Repository
Source code and issues: https://github.com/DeanWard/janus-mcp
Available Tools
9 toolsgenerate_documentationB
Generate comprehensive markdown documentation for the API and return the file path
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Output format: 'markdown' for .md file or 'html' for interactive HTML documentation (default: markdown) | |
| filename | No | Filename for the documentation (default: auto-generated from API title) | |
| sessionId | Yes | The session ID | |
| groupByTags | No | Group endpoints by tags (default: true) | |
| includeExamples | No | Include examples in documentation (default: false) | |
| includeSecurity | No | Include security information in endpoints (default: true) | |
| outputDirectory | No | Directory to save the documentation file (default: current working directory) | |
| includeEndpoints | No | Include endpoints documentation (default: true) | |
| includeComponents | No | Include components/schemas documentation (default: true) | |
| includeTableOfContents | No | Include table of contents (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries the full burden. It usefully discloses that the tool writes a file and returns a file path, but says nothing about whether it requires an initialized session, whether it overwrites existing files, or how output location conflicts are handled.
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?
A single efficient sentence with the action front-loaded and no filler. It is arguably under-specified rather than bloated, which is not a conciseness failure, though 'comprehensive' is a soft modifier.
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 ten-parameter file-writing tool with no annotations and no output schema, the description covers the outcome and return value but omits session prerequisites, side effects on disk, and the HTML option. The rich schema compensates for parameter detail but not for behavioral context.
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 description coverage is 100%, so all ten parameters including defaults are documented in the schema itself, making 3 the baseline. The description adds nothing about parameters and even narrows the output to markdown, which is slightly at odds with the enum.
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?
States a specific verb (Generate), resource (markdown documentation for the API), and even the return value (file path). It is distinguishable from read-only siblings like list_endpoints or get_components. Minor blemish: it says 'markdown' while the schema offers markdown and html output.
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 indication of when to use this versus the other session tools, no prerequisite that a session must exist first, and no guidance on when html output is preferable. The agent is left to infer the workflow entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_componentsC
Get reusable components from the OpenAPI specification (schemas, responses, parameters, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | The session ID | |
| componentType | No | Optional: Specific component type (schemas, responses, parameters, examples, requestBodies, headers, securitySchemes, links, callbacks) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Get' implies a read, but the description says nothing about whether the session must be initialized first, what happens if componentType is omitted, or whether results are paginated. For a session-scoped tool with zero annotation coverage, this is a real gap.
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?
A single front-loaded sentence with no filler; the purpose is stated immediately. It is appropriately sized, though the brevity contributes to the usage and behavior gaps noted elsewhere.
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 two-parameter read tool with a fully documented schema and no output schema, the description is minimally adequate: it names the resource and its scope. It omits the session prerequisite and any hint of return shape, which leaves a modest but real gap.
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 description coverage is 100%, and the schema itself enumerates the valid componentType values, so the schema does the heavy lifting. The description only repeats the same examples already listed in the schema, adding no new meaning beyond the structured field.
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?
Clear verb+resource: retrieves reusable components (schemas, responses, parameters) from an OpenAPI specification. The parenthetical examples make the scope concrete. It doesn't differentiate itself from siblings like get_endpoint_details, but the siblings are distinct enough that confusion is unlikely.
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 guidance on when to use this versus list_endpoints, get_endpoint_details, or get_tags, nor on when component extraction is appropriate. The only implicit signal is that 'components' implies the reusable section of the spec, which an agent must infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_endpoint_detailsC
Get detailed information about a specific endpoint with selective data retrieval for token optimization
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | The endpoint path (e.g., '/users/{id}') | |
| method | Yes | The HTTP method (GET, POST, PUT, DELETE, etc.) | |
| sessionId | Yes | The session ID | |
| includeSchemas | No | Include detailed schema information | |
| includeExamples | No | Include examples in schemas | |
| includeSecurity | No | Include security requirements | |
| includeResponses | No | Include response information | |
| includeParameters | No | Include parameter information | |
| includeRequestBody | No | Include request body schema | |
| responseStatusCodes | No | Filter responses by status codes (e.g., ['200', '400']) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. 'Selective data retrieval for token optimization' hints that the include* flags trim the payload, but it never says what the returned detail contains, how large it is, or what the defaults imply.
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?
A single front-loaded sentence with no filler. It is tight, though the phrase 'with selective data retrieval for token optimization' is somewhat opaque about which parameters control that selection.
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 10-parameter tool with no annotations and no output schema, the description is inadequate: it does not explain what the include* toggles return, does not mention session prerequisites, and leaves the relationship to list_endpoints unstated.
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 description coverage is 100%, so all ten parameters, including the include* toggles and responseStatusCodes filter, are already documented in the schema. The description adds no syntax or semantics beyond the vague 'selective data retrieval' framing, so the baseline 3 applies.
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?
States a specific verb and resource ('Get detailed information about a specific endpoint') and contrasts with the sibling list_endpoints by implying single-endpoint detail. It stops short of naming the sibling or scoping the difference explicitly.
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 when-to-use guidance, no prerequisites (e.g., that a sessionId from initialize_session is required), and no direction on choosing this over list_endpoints or generate_documentation. Usage must be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_session_infoC
Get basic information about an OpenAPI specification session
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | The session ID returned from initialize_session |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Get' implies a read, but it says nothing about permissions, whether the session must be active, error behavior for an unknown/expired sessionId, or what happens after remove_session. Substantial behavioral gaps remain.
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?
One short, front-loaded sentence with no filler. It is appropriately sized, though there is little content to structure.
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?
There is no output schema, so the description should explain what 'basic information' actually contains (name, version, endpoint count, etc.). Leaving the return shape entirely unspecified for a read tool with no structured output leaves an agent guessing.
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 description coverage is 100% and there is only one parameter; the schema already documents sessionId as 'The session ID returned from initialize_session'. The description adds nothing beyond that, so the baseline 3 applies.
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?
States a specific verb (Get) and resource (information about an OpenAPI specification session), which is more than a tautology. However, 'basic information' is vague about scope, and nothing distinguishes it from siblings like initialize_session or list_endpoints beyond the word 'session'.
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 guidance on when to call this versus initialize_session (which creates the sessionId) or the other session-scoped tools. The sessionId parameter description hints it follows initialization, but the description itself provides no usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tagsB
Get all available tags in the OpenAPI specification
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | The session ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a read operation via 'Get', but does not disclose session requirements, authentication needs, return format, or any other behavioral trait beyond the basic action.
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, front-loaded sentence with no wasted words. It states the purpose directly and efficiently.
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 retrieval tool with one well-documented parameter and low complexity, the description is nearly complete. It states what is returned, though it could mention the session context or that the result is a list of tags, but those are minor gaps given the tool's 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?
Schema description coverage is 100%, so the single sessionId parameter is already documented in the schema. The description adds no meaning beyond what the schema provides, making the baseline score of 3 appropriate.
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 states a specific verb and resource: get all tags in the OpenAPI specification. It is clear what the tool returns, though it does not explicitly differentiate itself from sibling tools like get_components or list_endpoints.
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 only states what the tool does and gives no guidance on when to use it versus alternatives. There are no prerequisites, exclusions, or contextual conditions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
initialize_sessionC
Initialize a new session with an OpenAPI specification file or URL
| Name | Required | Description | Default |
|---|---|---|---|
| source | Yes | Path to the OpenAPI JSON or YAML file, or URL to fetch the specification from | |
| outputFormat | No | Output format for responses (default: compact). Can be changed later with set_output_format. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and no output schema, the description carries full behavioral disclosure burden. It doesn't state whether session initialization has side effects, whether it validates the spec, what happens on failure, or whether the session must be removed later. Only the core action is stated.
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?
A single, efficient sentence with the key action and resource front-loaded. No filler, though it could benefit from a usage hint without losing conciseness.
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 session-initialization tool with no annotations and no output schema, the description should clarify lifecycle expectations (e.g., must call remove_session), permissions, or return behavior. It omits all of this.
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 description coverage is 100%, so the schema already documents both parameters in detail. The description adds no parameter-level meaning beyond restating the accepted input type. Baseline 3 is appropriate when the schema does the heavy lifting.
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?
Clear verb+resource ('Initialize a new session') with the required input (OpenAPI spec file or URL). It doesn't distinguish itself from siblings like get_session_info or set_output_format, but the resource is specific enough for an agent to identify the tool's purpose.
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 guidance on when to use this tool, prerequisites, or alternatives is provided. The description states what it does but not when it should be selected over other sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_endpointsB
List all available endpoints in the OpenAPI specification
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Optional: Filter endpoints by tags | |
| methods | No | Optional: Filter endpoints by HTTP methods (GET, POST, PUT, DELETE, etc.) | |
| sessionId | Yes | The session ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden, yet it only restates the core action. It does not disclose that this is a read-only operation, nor does it explain return format, pagination, or session requirements.
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?
A single, front-loaded sentence with no wasted words. The purpose is immediately clear and nothing extraneous is included.
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 low-complexity listing tool with full schema coverage and no output schema, the description is minimally adequate. However, with no annotations and no usage guidance, it leaves behavioral context and tool-selection context unaddressed.
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 description coverage is 100%, so the schema fully documents the optional tags and methods filters plus the required sessionId. The description adds no parameter meaning beyond what the schema provides, making the baseline of 3 appropriate.
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?
Clearly states a specific verb ('List') and resource ('all available endpoints in the OpenAPI specification'), making the core action obvious. It implicitly distinguishes itself from the singular get_endpoint_details sibling, though it does not explicitly name or contrast with any alternative.
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?
Provides no guidance on when to use this tool versus alternatives like get_endpoint_details, get_tags, or get_components. There is no mention of prerequisites such as an initialized session, even though sessionId is required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_sessionC
Remove a session and free up memory
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | The session ID to remove |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It says 'remove' but not whether the removal is irreversible, whether an active session is terminated cleanly, what happens to the associated memory or resources, or what error occurs for an invalid sessionId. For a destructive operation with zero annotation coverage, this is thin.
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?
A single front-loaded sentence with no wasted words. It is efficient, though so brief that it leaves obvious behavioral questions unanswered rather than being merely restrained.
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 tool is simple (one required parameter, no output schema needed for a removal), so the description is minimally sufficient to call it. However, with no annotations and a destructive action, an agent still lacks confirmation of irreversibility and failure modes.
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 description coverage is 100% with a single well-documented sessionId, so the baseline is 3. The description adds no formatting, origin, or validity detail for the parameter beyond what the schema already states.
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?
States a specific verb (Remove) and resource (session), and the side effect ('free up memory') clarifies intent. It contrasts implicitly with the sibling initialize_session, but never names it or any other sibling, so sibling differentiation is left to inference.
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 guidance on when to call this, no prerequisites (must the session exist?), no exclusions, and no mention of when to prefer an alternative such as letting a session expire. 'Free up memory' hints at a motivation but is not actionable usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_output_formatC
Change the output format for a session
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | The session ID | |
| outputFormat | Yes | New output format: 'json' (full JSON), 'compact' (minimal text), 'structured' (readable text), 'markdown' (formatted docs) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It states the operation changes a session-level setting but omits details such as persistence, reversibility, permissions required, or whether the change affects only subsequent calls. This is insufficient for a mutation tool.
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?
A single, front-loaded sentence with no wasted words. It is appropriately concise for a simple setter, though the extreme brevity leaves no room for helpful context.
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 tool is low-complexity with a complete parameter schema, but the absence of annotations and output schema means the description should clarify behavioral traits like persistence or side effects. It is minimally adequate but leaves notable gaps.
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% description coverage, including full enumeration details for outputFormat. The description adds no additional meaning beyond what the schema already provides, so the baseline score of 3 applies.
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 states a specific verb ('Change') and resource ('output format') scoped to a session, which is clear. It does not explicitly differentiate from sibling tools like generate_documentation or initialize_session, so it falls short of a 5.
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?
There is no guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions. The description only restates the action without contextual usage cues.
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.
9 tool updates
v1.1.1- First observed
generate_documentation - First observed
get_components - First observed
get_endpoint_details - First observed
get_session_info - First observed
get_tags - First observed
initialize_session - First observed
list_endpoints - First observed
remove_session - First observed
set_output_format
TDQS
Scored across 9 tools
Each tool targets a clearly distinct operation: session lifecycle, spec inspection, or documentation generation. There is no meaningful overlap between listing endpoints, getting endpoint details, tags, or components.
All tools use consistent snake_case with verb_noun or verb_noun_phrase patterns such as initialize_session, list_endpoints, get_endpoint_details, and generate_documentation. The convention is predictable throughout.
Nine tools are well-scoped for an OpenAPI exploration and documentation server. Each tool has a clear role, and there are no redundant or filler tools.
The surface covers session lifecycle, endpoint/tag/component inspection, and documentation generation. Minor gaps exist around searching/filtering endpoints or retrieving raw spec content, but these are workable via existing tools.
Maintenance
Related MCP Connectors
Turn any task into the right API calls: discover, evaluate, and integrate public APIs.
Point Gecko at an OpenAPI spec; get first-call-correct, auth-hidden agent tools.
Discover, compare, and monitor 1,400+ APIs directly from your AI coding agent.
AI-callable tools for API mocking, testing, monitoring, security, and automation.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceExposes OpenAPI specifications as MCP tools, enabling AI assistants to explore and understand API structures, endpoints, schemas, and documentation through semantic queries.8 npmMIT
- FlicenseNot gradedqualityDmaintenanceBrings OpenAPI/Swagger documentation into AI assistants, enabling endpoint discovery, deep inspection, cURL generation, and TypeScript type generation.-
- AlicenseNot gradedqualityFmaintenanceProvides AI assistants with access to OpenAPI specifications, enabling API discovery, schema retrieval, and direct API execution with support for OAuth 2.0 and other authentication methods.7 npm1MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with OpenAPI documents for analysis, validation, and management through structured interfaces.301 npm3ISC