.forgejo/workflows | ||
docs | ||
openapi_mcp_server | ||
tests | ||
.gitignore | ||
config.yaml | ||
docker-compose.yml | ||
Dockerfile | ||
LICENSE | ||
pyproject.toml | ||
README.md | ||
uv.lock |
OpenAPI MCP Server
A unified OpenAPI-compatible server for the Multi-agent Conversation Platform (MCP) that provides various tools for Open WebUI integration. This single server exposes multiple tools through FastAPI endpoints with full OpenAPI documentation.
Features
The server provides the following tool endpoints:
- Web Content Parsing (
/web
) - Extract and parse web content using trafilatura - Memory/Storage (
/memory
) - Structured knowledge graph memory system - Time Operations (
/time
) - Time utilities and timezone operations - Weather Information (
/weather
) - Real-time weather data and forecasts - Search (
/searxng
) - Web search through SearXNG instances - Forgejo Integration (
/forgejo
) - Interact with Forgejo (or Gitea) instances for repository, issue, and CI/CD operations
Each tool provides detailed endpoint documentation - click the links above to learn about specific endpoints and their capabilities.
Quick Start
Using Docker Compose (Recommended)
# Clone the repository
git clone <repository-url>
cd openapi-mcp-server
# Start the server
docker-compose up --build
# The server will be available at http://localhost:8080
# OpenAPI documentation at http://localhost:8080/docs
Local Development
# Install dependencies using uv
uv sync
# Run the development server
uv run openapi-mcp-server
# The server will start on the default port with auto-reload
API Documentation
Once running, visit /docs
for the interactive OpenAPI documentation where you can explore and test
all available endpoints.
Configuration
The server can be configured through environment variables and a config.yaml
file.
Environment Variables
Environment variables take precedence over config.yaml
settings.
MEMORY_FILE_PATH
- Path to the memory storage file (default:/data/memory.json
)- Additional tool-specific configuration options are documented in the individual tool modules
config.yaml
For more complex or static configurations, a config.yaml
file can be used. This file should be
placed in the root directory of the project. An example config.yaml
might look like this:
forgejo:
base_url: "https://git.example.com"
api_key: "your_forgejo_api_key"
searxng:
base_url: "http://localhost:8080"
This allows for structured configuration of various tools and server settings. Refer to individual
tool documentation for specific config.yaml
options.
Architecture
This project follows a unified single-server architecture:
- Single FastAPI application serving multiple tool endpoints
- Modular tool design with individual tools in
openapi_mcp_server/tools/
- OpenAPI compliance with full documentation and validation
- Docker-ready with optimised multi-stage builds
- uv package management for fast, reliable dependency handling
License
This project is licensed under the Apache 2.0 License - see the LICENSE file for details.