Swagger Json
БесплатноНе проверенA powerful MCP server for querying and processing large Swagger/OpenAPI JSON documents, enabling LLMs to efficiently access API documentation without loading en
Описание
A powerful MCP server for querying and processing large Swagger/OpenAPI JSON documents, enabling LLMs to efficiently access API documentation without loading entire files.
README
TypeScript Node.js License: MIT Model Context Protocol
A powerful Model Context Protocol (MCP) server designed to efficiently query and process large Swagger/OpenAPI JSON documents. This server solves the common problem of LLMs being unable to process large API documentation files (typically 4000+ lines) by providing structured, intelligent query interfaces.
🚀 Features
Core Capabilities
- 📋 Multi-project Management: Seamlessly handle multiple Swagger/OpenAPI projects
- 🔍 Smart $ref Resolution: Automatically resolve JSON Schema references and handle circular dependencies
- 🔎 Intelligent Search: Advanced search capabilities for APIs and schemas with fuzzy matching
- ⚡ Efficient Querying: Get specific API or schema information without loading entire documents
- 🔄 Real-time Updates: Automatically detect and reload changes in Swagger files
MCP Tools
list_swaggers: List all available Swagger projectsget_swagger_overview: Get project overview and statisticsget_api_info: Retrieve complete API information with resolved schemasget_schema: Get fully resolved schema definitionssearch_apis: Search API endpoints with advanced filteringsearch_schemas: Search schema definitions with type filtering
📁 Project Structure
swagger-json-mcp/
├── src/
│ ├── core/ # Core functionality modules
│ │ ├── SwaggerParser.ts # Swagger JSON parser
│ │ ├── SchemaResolver.ts # $ref reference resolver
│ │ └── SwaggerManager.ts # Multi-project manager
│ ├── mcp/ # MCP server implementation
│ │ ├── tools/ # MCP tool definitions
│ │ └── types.ts # TypeScript type definitions
│ ├── utils/ # Utility functions
│ └── index.ts # Main entry point
├── docs/ # Swagger documentation directory
│ └── [project-name]/ # Individual project folders
│ └── swagger.json # Swagger/OpenAPI JSON files
├── package.json
├── tsconfig.json
└── README.md
🛠️ Installation
Prerequisites
- Node.js >= 18.0.0
- pnpm >= 8.0.0
Setup
# Clone the repository
git clone <repository-url>
cd swagger-json-mcp
# Install dependencies
pnpm install
# Build the project
pnpm build
# Run tests
pnpm test
🚀 Quick Start
1. Prepare Your Swagger Files
Create project directories under docs/ and place your swagger.json files:
docs/
├── your-api-project/
│ └── swagger.json
└── another-project/
└── swagger.json
2. Start the MCP Server
# Development mode
pnpm dev
# Production mode
pnpm start
3. Configure MCP Client
Add to your MCP client configuration:
{
"mcpServers": {
"swagger-json": {
"command": "node",
"args": ["path/to/swagger-json-mcp/dist/index.js"],
"env": {}
}
}
}
📖 Usage Examples
List Available Projects
// MCP Tool Call
{
"name": "list_swaggers",
"arguments": {}
}
// Response
{
"projects": [
{
"name": "your-api-project",
"title": "Your API",
"version": "1.0.0",
"apiCount": 42,
"schemaCount": 28
}
]
}
Get API Information
// MCP Tool Call
{
"name": "get_api_info",
"arguments": {
"swaggerName": "your-api-project",
"path": "/api/users",
"method": "post"
}
}
// Response includes fully resolved schemas
{
"path": "/api/users",
"method": "post",
"summary": "Create user",
"requestBody": {
// Fully resolved schema without $ref
},
"responses": {
// Fully resolved response schemas
}
}
Search APIs
// MCP Tool Call
{
"name": "search_apis",
"arguments": {
"query": "user login",
"swaggerName": "your-api-project",
"method": "post"
}
}
// Response
{
"results": [
{
"path": "/auth/login",
"method": "post",
"summary": "User login",
"score": 0.95
}
]
}
Resolve Complex Schemas
// MCP Tool Call
{
"name": "get_schema",
"arguments": {
"swaggerName": "your-api-project",
"schemaName": "UserProfile",
"maxDepth": 10
}
}
// Response includes all nested schemas resolved
{
"schema": {
"type": "object",
"properties": {
// All $ref references resolved recursively
}
},
"dependencies": ["Address", "ContactInfo"],
"circularReferences": []
}
🧪 Development
Available Scripts
pnpm build # Compile TypeScript
pnpm dev # Development with hot reload
pnpm test # Run test suite
pnpm lint # Run ESLint
pnpm typecheck # TypeScript type checking
pnpm prettier # Format code
pnpm clean # Clean build directory
Code Quality
- TypeScript: Strict mode enabled with comprehensive type definitions
- ESLint: Configured with TypeScript and Prettier rules
- Vitest: Fast unit testing with full coverage
- Prettier: Consistent code formatting
Testing
# Run all tests
pnpm test
# Run tests in watch mode
pnpm test --watch
# Run tests with coverage
pnpm test --coverage
🏗️ Architecture
Core Components
SwaggerParser
- Validates and parses Swagger/OpenAPI JSON files
- Handles multiple OpenAPI versions (2.0, 3.0.x)
- Provides structured access to API definitions
SchemaResolver
- Recursively resolves
$refreferences - Detects and handles circular dependencies
- Configurable resolution depth
- Caches resolved schemas for performance
SwaggerManager
- Manages multiple Swagger projects
- Automatic file discovery and loading
- Project lifecycle management
- Thread-safe operations
MCP Integration
- Full compliance with Model Context Protocol specification
- Structured tool definitions with comprehensive validation
- Error handling and logging
- Async/await throughout for optimal performance
🔧 Configuration
Environment Variables
# Optional: Set log level
LOG_LEVEL=info
# Optional: Custom docs directory
DOCS_DIR=./custom-docs
# Optional: Maximum schema resolution depth
MAX_SCHEMA_DEPTH=10
Customization
- Modify
src/utils/logger.tsfor custom logging - Extend
src/core/SwaggerManager.tsfor additional project types - Add new MCP tools in
src/mcp/tools/
🤝 Contributing
- Fork the repository
- Create a feature branch:
git checkout -b feature/new-feature - Make your changes with tests
- Run the test suite:
pnpm test - Ensure code quality:
pnpm lint && pnpm typecheck - Commit changes:
git commit -m 'Add new feature' - Push to branch:
git push origin feature/new-feature - Submit a pull request
Development Guidelines
- Follow existing code style and conventions
- Add tests for new functionality
- Update documentation for API changes
- Ensure TypeScript compliance
- Write clear, descriptive commit messages
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🆘 Troubleshooting
Common Issues
Project not loading
- Verify
docs/directory structure - Check
swagger.jsonfile validity - Ensure proper JSON formatting
$ref resolution failing
- Validate JSON Schema reference paths
- Check for circular references
- Verify component definitions exist
MCP connection issues
- Confirm server startup success
- Validate MCP client configuration
- Check Node.js version compatibility
Debug Mode
Enable detailed logging:
LOG_LEVEL=debug pnpm start
🌟 Acknowledgments
- Model Context Protocol - Protocol specification
- OpenAPI Specification - API documentation standard
- TypeScript - Type-safe JavaScript
- Vitest - Fast testing framework
Made with ❤️ for better API documentation accessibility
Установка Swagger Json
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/LLM-MCP-Servers/swagger-json-mcpFAQ
Swagger Json MCP бесплатный?
Да, Swagger Json MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Swagger Json?
Нет, Swagger Json работает без API-ключей и переменных окружения.
Swagger Json — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Swagger Json в Claude Desktop, Claude Code или Cursor?
Открой Swagger Json на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Swagger Json with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
