MCP server to provide OpenAPI-flavour tools to an Open WebUI instance
Find a file
Tom Foster 719d4ecba4
All checks were successful
CI / Lint & Test (push) Successful in 23s
CI / Build and push Docker image (push) Successful in 1m22s
Update endpoint paths and lint codebase
2025-08-01 21:37:26 +01:00
.forgejo/workflows Update endpoint paths and lint codebase 2025-08-01 21:37:26 +01:00
docs Update endpoint paths and lint codebase 2025-08-01 21:37:26 +01:00
openapi_mcp_server Update endpoint paths and lint codebase 2025-08-01 21:37:26 +01:00
tests Update endpoint paths and lint codebase 2025-08-01 21:37:26 +01:00
.gitignore Update endpoint paths and lint codebase 2025-08-01 21:37:26 +01:00
config.yaml Implement Forgejo tool 2025-07-13 16:18:18 +01:00
docker-compose.yml Initial commit 2025-06-16 19:17:09 +01:00
Dockerfile Initial commit 2025-06-16 19:17:09 +01:00
LICENSE Implement Forgejo tool 2025-07-13 16:18:18 +01:00
pyproject.toml Update endpoint paths and lint codebase 2025-08-01 21:37:26 +01:00
README.md Update endpoint paths and lint codebase 2025-08-01 21:37:26 +01:00
uv.lock Update endpoint paths and lint codebase 2025-08-01 21:37:26 +01:00

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:

Each tool provides detailed endpoint documentation - click the links above to learn about specific endpoints and their capabilities.

Quick Start

# 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.