openapi-mcp-proxy
The openapi-mcp-proxy server enables efficient exploration and management of large OpenAPI schemas without overwhelming LLM context windows.
• API Configuration Management: Add, list, and remove API configurations with names, URLs, descriptions, and authentication headers. Configurations are automatically saved to api_configs.json for persistence.
• Schema Caching: Automatic caching of OpenAPI schemas to avoid repeated downloads and improve performance.
• Endpoint Discovery: List, search, and filter endpoints by query (path, description, tags), HTTP methods, authentication requirements, and deprecation status with pagination support.
• Detailed Endpoint Information: Get comprehensive details for specific endpoints by path and method, with optional response details.
• Data Model Exploration: List and examine data models with advanced filtering by types, property counts, required fields, and tags.
• Model Schema Retrieval: Access full schema definitions for specific data models.
• Efficient Large Schema Handling: Pagination (default 50 items per page, up to 100), filtering, and caching minimize context usage while maintaining comprehensive API exploration capabilities.
Enables exploration of Stripe's OpenAPI schema, allowing users to browse and understand Stripe's API endpoints, data models, and structure without loading the entire schema into context.
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., "@openapi-mcp-proxylist endpoints for stripe-yaml with pagination"
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.
OpenAPI MCP Server
An MCP server that provides tools for exploring large OpenAPI schemas without loading entire schemas into LLM context. Perfect for discovering and analyzing endpoints, data models, and API structure efficiently.
Features
API Configuration Management: Save and manage multiple API configurations with authentication headers if needed
Schema Caching: Automatic caching of OpenAPI schemas to avoid repeated downloads
Endpoint Discovery: List and search through API endpoints
Pagination Support: Handle large APIs efficiently with configurable page sizes
Detailed Schema Exploration: Get comprehensive information about endpoints and data models
Efficient Context Usage: Explore large APIs without overwhelming LLM context windows

Related MCP server: OpenAPI MCP Server
Prerequisites
Python 3.13+: The server requires Python 3.13 or later
uv: Fast Python package installer and resolver (installation guide)
MCP-compatible client: Claude Desktop, Claude Code CLI, Cursor, or other MCP clients
Installing uv
macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | shUsing pip:
pip install uvInstallation
Clone the repository:
git clone https://github.com/nyudenkov/openapi-mcp-proxy.git
cd openapi-mcp-proxyInstall dependencies:
uv syncVerify installation:
# Test that the server starts correctly
uv run python main.pyThe server should start without errors.
Usage
Running the Server
uv run python main.pyThe server runs using stdio and integrates with MCP-compatible LLM clients.
Available Tools
API Management
add_api: Add a new API configuration with name, URL and optional descriptionname(required): Short name for the APIurl(required): URL to the OpenAPI scheme (yaml/json)description(optional): Optional descriptionheaders(optional): Optional HTTP headers for authentication (e.g., {'Authorization': 'Bearer token', 'X-API-Key': 'key'})
list_saved_apis: List all saved API configurationsremove_api: Remove a saved API configuration
API Exploration
get_api_info: Get general information about an APIlist_endpoints: List all endpoints in an API with pagination and filteringsearch_endpoints: Search endpoints by query with pagination and filteringget_endpoint_details: Get detailed information about a specific endpointlist_models: List all data models in an API with pagination and filteringget_model_schema: Get detailed schema for a specific model
Tools Capabilities
Pagination
All listing tools (list_endpoints, search_endpoints, list_models) support pagination to handle large APIs efficiently:
Default page size: 50 items
Responses include navigation information (current page, total pages, has next/previous)
Advanced Filtering
Tools are capable to filter results to find exactly what you need:
Endpoint Filtering:
HTTP methods (GET, POST, PUT, DELETE, etc.)
Tags (include/exclude specific tags)
Authentication requirements
Deprecation status
Model Filtering:
Model types (object, array, string, etc.)
Property count (min/max number of properties)
Required fields presence
Tags (include/exclude specific tags)
Configuration
API configurations are automatically saved to api_configs.json in the working directory. The file structure:
{
"apis": {
"api-name": {
"name": "some-project-local-backend",
"url": "http://127.0.0.1:8000/openapi.json",
"description": "Optional description for some cool project local backend scheme"
},
"api-name": {
"name": "stripe-yaml",
"url": "https://raw.githubusercontent.com/stripe/openapi/refs/heads/master/openapi/spec3.yaml",
"description": "Stripe YAML OpenAPI scheme"
}
}
}Available Tools
9 toolsadd_apiC
Add a new API configuration with name, URL and optional description
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Short name for the API | |
| url | Yes | Base URL of the FastAPI service | |
| description | No | Optional description | |
| headers | No | Optional HTTP headers for authentication (e.g., {'Authorization': 'Bearer token', 'X-API-Key': 'key'}) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It implies a write operation ('Add a new API configuration') but doesn't specify whether this requires authentication, what happens on duplicate names, if the configuration is persisted, or any error conditions. This leaves significant behavioral gaps 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?
The description is a single, efficient sentence that gets straight to the point without any unnecessary words. It's appropriately sized for the tool's complexity and front-loads the core functionality.
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 mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after adding (e.g., success confirmation, error handling, or how to verify with 'list_saved_apis'), nor does it address authentication requirements or potential side effects, leaving the agent with incomplete operational 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?
The schema description coverage is 100%, so all parameters are documented in the input schema. The description mentions 'name, URL and optional description' which aligns with three of the four parameters but omits 'headers'. Since the schema already provides full documentation, the description adds minimal value beyond confirming some parameter purposes.
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 action ('Add a new API configuration') and the resources involved ('with name, URL and optional description'), making the purpose immediately understandable. However, it doesn't differentiate this tool from its sibling 'remove_api' or explain how it relates to 'list_saved_apis' for context about existing configurations.
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 provides no guidance on when to use this tool versus alternatives like 'remove_api' or 'list_saved_apis', nor does it mention prerequisites such as checking for existing APIs before adding. It simply states what the tool does without contextual usage information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_api_infoC
Get general information about an API
| Name | Required | Description | Default |
|---|---|---|---|
| api | Yes | API name or direct URL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states what the tool does but provides no information about authentication requirements, rate limits, error conditions, response format, or whether this is a read-only operation. The description is too minimal for a tool that presumably interacts with external APIs.
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 perfectly concise at just 6 words, front-loading the essential information with zero wasted words. It follows the principle that every sentence earns its place, though this brevity comes at the cost of completeness in other dimensions.
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?
Given the context of API information retrieval with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what 'general information' includes, how the information is structured, whether authentication is required, or what happens with invalid API identifiers. For a tool that likely returns structured data about APIs, more context is needed.
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 schema has 100% description coverage, with the single parameter 'api' documented as 'API name or direct URL'. The description adds no additional parameter context beyond what's in the schema, so it meets the baseline for high schema coverage but doesn't enhance understanding of what constitutes valid API identifiers or how they're resolved.
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 ('Get') and resource ('general information about an API'), making the purpose immediately understandable. However, it doesn't distinguish this tool from similar siblings like 'get_endpoint_details' or 'get_model_schema' which also retrieve API-related information, preventing a perfect score.
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 provides no guidance on when to use this tool versus alternatives. With siblings like 'get_endpoint_details' (for specific endpoints), 'get_model_schema' (for data models), and 'list_saved_apis' (for listing APIs), there's no indication whether this tool returns metadata, configuration, or summary data about an API.
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
| Name | Required | Description | Default |
|---|---|---|---|
| api | Yes | API name or direct URL | |
| path | Yes | Endpoint path | |
| method | Yes | HTTP method | |
| include_responses | No | Whether to include responses in details. Use it, for example, to get full details for a specific endpoint or pass False to get a summary. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a 'Get' operation, implying it's likely read-only, but doesn't confirm safety aspects like whether it requires authentication, has rate limits, or what format the detailed information returns. For a tool with no annotation coverage, this leaves significant behavioral gaps.
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, efficient sentence that directly states the tool's purpose without any wasted words. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.
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?
Given no annotations and no output schema, the description is incomplete for a tool that retrieves 'detailed information'. It doesn't specify what details are included, the response format, or error conditions. With 4 parameters and complex sibling tools, more context is needed for the agent to use this effectively.
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 all four parameters thoroughly. The description adds no additional meaning about parameters beyond what's in the schema (e.g., it doesn't explain relationships between 'api', 'path', and 'method', or provide examples). 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?
The description clearly states the verb ('Get') and resource ('detailed information about a specific endpoint'), making the purpose unambiguous. However, it doesn't distinguish this tool from sibling tools like 'get_api_info' or 'search_endpoints' that might also retrieve endpoint-related information, so it doesn't reach the highest clarity level.
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 provides no guidance on when to use this tool versus alternatives like 'get_api_info', 'list_endpoints', or 'search_endpoints'. It mentions no prerequisites, exclusions, or specific contexts, leaving the agent with minimal usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_model_schemaC
Get detailed schema for a specific model
| Name | Required | Description | Default |
|---|---|---|---|
| api | Yes | API name or direct URL | |
| model_name | Yes | Name of the model |
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 of behavioral disclosure. While 'Get' implies a read operation, the description doesn't specify whether this requires authentication, has rate limits, returns structured data, or has any side effects. For a tool with zero annotation coverage, this is inadequate.
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, efficient sentence that directly states the tool's purpose with zero wasted words. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.
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?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'detailed schema' means in terms of return format, whether it includes field types, validation rules, or example values. For a schema retrieval tool with no structured output documentation, the description should provide more context about what information is returned.
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, with both parameters clearly documented in the schema itself. The description adds no additional parameter information beyond what's already in the schema, so it meets the baseline score for high schema coverage without adding value.
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 action ('Get detailed schema') and resource ('for a specific model'), providing a specific verb+resource combination. However, it doesn't explicitly distinguish this tool from its siblings like 'get_api_info' or 'get_endpoint_details' which might also provide schema-related information, so it doesn't reach the highest score.
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 provides no guidance on when to use this tool versus alternatives. With siblings like 'list_models', 'get_api_info', and 'get_endpoint_details', there's no indication of when this specific schema retrieval is appropriate versus other information-gathering tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_endpointsC
List all endpoints in an API
| Name | Required | Description | Default |
|---|---|---|---|
| api | Yes | API name or direct URL | |
| page | No | Page number (1-based) | |
| page_size | No | Items per page (max 100) | |
| methods | No | Filter by HTTP methods (e.g., ['GET', 'POST']) | |
| tags_include | No | Include endpoints with these tags | |
| tags_exclude | No | Exclude endpoints with these tags | |
| has_authentication | No | Filter by authentication requirement | |
| deprecated | No | Filter by deprecation status |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It states 'List all endpoints' but doesn't mention pagination behavior (implied by parameters), rate limits, authentication requirements, or what 'all' means in practice (e.g., completeness guarantees). For a tool with 8 parameters and no annotation coverage, this leaves significant behavioral gaps.
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, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized for a listing tool and front-loads the core functionality. Every word earns its place.
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 tool with 8 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain the return format, pagination behavior, or how filtering parameters interact. The agent must rely entirely on the input schema for operational details, which is insufficient for contextual understanding of this complex listing tool.
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 all 8 parameters. The description adds no parameter-specific information beyond the generic 'List all endpoints in an API' statement. According to guidelines, baseline is 3 when schema does the heavy lifting, even without additional param details in the description.
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 action ('List') and resource ('endpoints in an API'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'search_endpoints' or 'get_endpoint_details', which would require more specificity about scope or filtering capabilities.
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 provides no guidance on when to use this tool versus alternatives. With siblings like 'search_endpoints' and 'get_endpoint_details' available, there's no indication whether this is for comprehensive listing, filtered queries, or detailed endpoint information. The agent must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_modelsC
List all data models in an API
| Name | Required | Description | Default |
|---|---|---|---|
| api | Yes | API name or direct URL | |
| page | No | Page number (1-based) | |
| page_size | No | Items per page (max 100) | |
| types | No | Filter by model types (e.g., ['object', 'array', 'string']) | |
| min_properties | No | Minimum number of properties | |
| max_properties | No | Maximum number of properties | |
| has_required_fields | No | Filter by presence of required fields | |
| tags_include | No | Include models with these tags | |
| tags_exclude | No | Exclude models with these tags | |
| include_details | No | Include detailed information about models |
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 of behavioral disclosure. It states the action ('List all data models') but doesn't disclose critical behavioral traits such as whether this is a read-only operation, potential rate limits, authentication needs, pagination behavior (implied by parameters but not described), or what the output looks like. For a tool with 10 parameters and no annotations, this is a significant 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?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, with zero waste. Every word earns its place by conveying the core action and resource.
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?
Given the complexity (10 parameters, no output schema, no annotations), the description is incomplete. It doesn't address behavioral aspects like pagination, filtering logic, or output format, which are crucial for a listing tool with many options. The schema covers parameters well, but the description fails to provide context on how to use the tool effectively or what to expect in return.
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, with each parameter well-documented (e.g., 'API name or direct URL', 'Page number (1-based)'). The description doesn't add any meaning beyond what the schema provides—it doesn't explain parameter interactions, default behaviors, or usage examples. With high schema coverage, the baseline is 3, as 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?
The description clearly states the action ('List') and resource ('all data models in an API'), providing a specific verb+resource combination. However, it doesn't explicitly differentiate from sibling tools like 'get_model_schema' or 'list_endpoints', which might list related resources. The purpose is clear but lacks sibling distinction.
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 provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_model_schema' (for specific model details) or 'list_endpoints' (for listing endpoints instead of models), nor does it specify prerequisites or exclusions. Usage is implied by the name but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_saved_apisB
List all saved API configurations
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states a read operation ('List'), implying it's likely safe and non-destructive, but doesn't specify aspects like pagination, rate limits, or what 'saved' means in terms of permissions or data scope, leaving gaps in transparency.
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, clear sentence with zero waste—it directly states the tool's purpose without fluff or redundancy. It's front-loaded and appropriately sized for a simple list operation, making it highly efficient.
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?
Given the tool's simplicity (0 parameters, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose but lacks details on behavioral traits like return format or usage context, which could be helpful for an agent despite the low complexity.
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 0 parameters, and the schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter semantics, and it appropriately doesn't mention any, earning a high score for not introducing unnecessary information.
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 action ('List') and resource ('saved API configurations'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'list_endpoints' or 'list_models' which also list resources, so it doesn't reach the highest score.
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 provides no guidance on when to use this tool versus alternatives like 'search_endpoints' or 'get_api_info'. It lacks context about prerequisites, such as whether APIs must be saved first, or exclusions, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_apiC
Remove a saved API configuration
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the API to remove |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool performs a removal operation, implying it's destructive, but doesn't clarify if the action is reversible, what permissions are required, or what happens on success/failure. This is inadequate for a mutation tool with zero annotation coverage.
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, efficient sentence that directly states the tool's purpose without any unnecessary words. It's front-loaded and wastes no space, making it easy for an agent to parse quickly.
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?
Given that this is a destructive mutation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't address behavioral aspects like safety, permissions, or response format, which are critical for an agent to use the tool correctly in 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?
The input schema has 100% description coverage, with the 'name' parameter fully documented in the schema itself. The description doesn't add any additional meaning or context about the parameter beyond what's in the schema, so it meets the baseline score when schema coverage is high.
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 action ('Remove') and the target resource ('a saved API configuration'), which is specific and unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'add_api' or 'list_saved_apis' beyond the obvious verb difference, so it doesn't reach the highest level of sibling distinction.
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 provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., that the API must exist), exclusions, or suggest related tools like 'list_saved_apis' for verification, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_endpointsB
Search endpoints by query in path, description, or tags
| Name | Required | Description | Default |
|---|---|---|---|
| api | Yes | API name or direct URL | |
| query | Yes | Search query | |
| page | No | Page number (1-based) | |
| page_size | No | Items per page (max 100) | |
| methods | No | Filter by HTTP methods (e.g., ['GET', 'POST']) | |
| tags_include | No | Include endpoints with these tags | |
| tags_exclude | No | Exclude endpoints with these tags | |
| has_authentication | No | Filter by authentication requirement | |
| deprecated | No | Filter by deprecation status |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions search behavior but lacks details on pagination (implied by parameters), rate limits, authentication needs, or output format. For a search tool with 9 parameters and no annotations, this is a significant gap in behavioral disclosure.
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, efficient sentence with zero waste. It front-loads the core purpose ('Search endpoints') and specifies key aspects (query targets) without unnecessary elaboration. Every word earns its place.
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?
Given 9 parameters with full schema coverage but no annotations or output schema, the description is adequate for a search tool but lacks depth. It covers the basic action but misses behavioral context (e.g., pagination, authentication) and output details, leaving gaps for an AI agent to infer usage.
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 parameters are well-documented in the schema. The description adds minimal value by hinting at searchable fields (path, description, tags), which partially maps to the 'query' parameter but doesn't elaborate on others. Baseline 3 is appropriate as 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?
The description clearly states the action ('Search') and target resource ('endpoints'), specifying searchable fields (path, description, tags). It distinguishes from siblings like 'list_endpoints' by emphasizing search functionality. However, it doesn't explicitly contrast with 'list_endpoints' which might also list endpoints without querying.
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 versus alternatives like 'list_endpoints' or 'get_endpoint_details'. The description implies usage for searching, but lacks explicit context, prerequisites, or exclusions. Sibling tools are not referenced to clarify differentiation.
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.
9 tool updates
- First observed
add_api - First observed
get_api_info - First observed
get_endpoint_details - First observed
get_model_schema - First observed
list_endpoints - First observed
list_models - First observed
list_saved_apis - First observed
remove_api - First observed
search_endpoints
TDQS
Each tool has a clearly distinct purpose with no overlap: adding/removing APIs, listing APIs/endpoints/models, getting API/endpoint/model details, and searching endpoints. The descriptions reinforce this separation, making it easy for an agent to select the right tool.
All tools follow a consistent verb_noun pattern with snake_case (e.g., add_api, list_endpoints, get_model_schema). The verbs (add, get, list, remove, search) are used predictably across the toolset, enhancing readability and predictability.
With 9 tools, this server is well-scoped for managing OpenAPI configurations. It covers core operations like configuration management, listing, and querying without being overly sparse or bloated, ensuring each tool serves a necessary function.
The toolset provides complete coverage for the domain of OpenAPI proxy management: CRUD operations for APIs (add/remove/list), exploration of endpoints and models (list/get/search), and no obvious gaps. Agents can fully interact with saved APIs without dead ends.
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
An MCP server that provides an API to LLMs to manage their JumpCloud resources.
MCP server providing access to the Scorecard API to evaluate and optimize LLM systems.
MCP server that lets AI assistants use all OneSchema features exposed via the public API.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceA MCP server that exposes OpenAPI schema information to LLMs like Claude. This server allows an LLM to explore and understand large OpenAPI schemas through a set of specialized tools, without needing to load the whole schema into the context35850MIT
- AlicenseAqualityDmaintenanceA generic MCP server that dynamically exposes any OpenAPI-documented REST API to LLMs by auto-discovering endpoints. It provides tools for exploring API capabilities and making authenticated requests directly through natural language interfaces.214MIT
- FlicenseBqualityDmaintenanceAn MCP server that crawls and parses OpenAPI JSON or Swagger UI URLs to provide concise endpoint summaries. It enables LLMs to discover and interact with API interfaces by extracting methods, paths, and operation IDs from documentation sources.2-
- AlicenseAqualityAmaintenanceMCP server that helps AI agents explore OpenAPI specs, search endpoints, and generate TypeScript types.74710MIT
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/nyudenkov/openapi-mcp-proxy'
If you have feedback or need assistance with the MCP directory API, please join our Discord server