Skip to content

Commit c9fa83e

Browse files
committed
Update openapi spec file names to be consistent and updated ReadMe
1 parent c23176f commit c9fa83e

File tree

8 files changed

+372
-261
lines changed

8 files changed

+372
-261
lines changed

.talismanrc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,4 +49,9 @@ version: "1.0"
4949
fileignoreconfig:
5050
- filename: mcp-openapi/src/server.ts
5151
checksum: 49fc19874b57b3c21a8b584cfe444dc5b6499673f536004148dfd6054cd910c0
52+
version: "1.0"
53+
54+
fileignoreconfig:
55+
- filename: mcp-openapi/src/telemetry.ts
56+
checksum: 179cf9144a76e5fd50a83653014e3985ca4e8a36d2e9bc4aee95f4c9a2077f12
5257
version: "1.0"

mcp-openapi/README.md

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# MCP OpenAPI Server
22

3-
A generic, configurable MCP (Model Context Protocol) server that automatically generates tools, resources, and prompts from OpenAPI specifications and hosts a proxy, via the MCP protocol, to those API endpoints.
3+
A multipurpose, configurable MCP (Model Context Protocol) server that automatically generates MCP tools, resources, and prompts from OpenAPI specifications and hosts a proxy, via the MCP protocol, to those API endpoints.
44

55
Given a set of openapi specs, it will create, via sensible defaults, a set of MCP Tools and MCP Resources. Also given a set of prompts provided as a set of JSON files, it will create MCP prompts for them and will be published together with the MCP Tools and Resources as a complete set of MCP capabilities to be used by any tool enabled LLM.
66

@@ -11,11 +11,16 @@ This app will work with an OpenAPI compliant endpoints and specification. The s
1111
- 🔧 **Automatic Tool Generation**: Converts REST API endpoints to MCP tools
1212
- 📚 **Resource Management**: Exposes read-only data as MCP resources
1313
- 💬 **Custom Prompts**: Load domain-specific prompt templates
14-
- ⚙️ **Configurable Mapping**: Override default tool/resource classification
14+
- ⚙️ **Configurable Mapping**: Override default tool/resource classification and function descriptions
1515
- 🔐 **Authentication Support**: Bearer, API Key, and Basic auth
1616
- 🚀 **Multiple Deployment Modes**: stdio for IDEs, HTTP for standalone deployment
1717
- 📋 **Multi-Spec Support**: Load multiple OpenAPI specifications
1818

19+
## Current Limitation
20+
Currently the app only takes a single network address as base backend API proxy address.
21+
22+
Therefore it is only suitable to be run as a sidecar for microservices where proxying is to localhost or if proxying to many different endpoints, it'll expect an API gateway address.
23+
1924
## Installation
2025

2126
### Global Installation
@@ -99,6 +104,32 @@ mcp-openapi-server --http
99104

100105
When developing the MCP OpenAPI server locally in your IDE, you can run it directly from the source code without installing globally:
101106

107+
### OpenAPI Spec Architecture
108+
109+
**Important**: This project uses a **spec duplication architecture** that mirrors real-world deployment scenarios:
110+
111+
- **Source Specs**: The `sample-banking-api` project contains the authoritative OpenAPI specifications
112+
- **Example Specs**: The `mcp-openapi/examples/specs/` directory contains **duplicated copies** of these specs
113+
- **Development Default**: The MCP server defaults to using the example specs for development and testing
114+
115+
#### Why Duplication?
116+
117+
This architecture **intentionally mimics production environments** where:
118+
1. **API services** deploy their specs to accessible locations (registries, CDNs, etc.)
119+
2. **MCP servers** read specs from these deployed locations, not directly from source code
120+
3. **Spec changes** require explicit deployment/copying to be picked up by consumers
121+
122+
#### Keeping Specs in Sync
123+
124+
⚠️ **Manual Sync Required**: When you modify OpenAPI specs in `sample-banking-api/specs/`, you **must manually copy** them to `mcp-openapi/examples/specs/` for the MCP server to pick up the latest API signatures.
125+
126+
```bash
127+
# After changing specs in sample-banking-api:
128+
cp sample-banking-api/specs/*.yaml mcp-openapi/examples/specs/
129+
```
130+
131+
This manual step ensures you're consciously aware of API contract changes and their impact on MCP tool generation.
132+
102133
### Prerequisites
103134
```bash
104135
# Install dependencies first

0 commit comments

Comments
 (0)