SuperiorAPIs Dynamic Generator
STDIOPython-based MCP Server that dynamically fetches plugin definitions and generates tool functions.
Python-based MCP Server that dynamically fetches plugin definitions and generates tool functions.
This project is a Python-based MCP Server that dynamically fetches plugin definitions from SuperiorAPIs and auto-generates MCP tool functions based on OpenAPI schemas.
The server will:
pydantic
models and async functionsaiohttp
.
├── main.py # MCP server core logic
├── requirements.txt # Python dependency list
├── setup.py # Packaging setup
├── Dockerfile # (Optional) Docker container build file
└── README.md # Project documentation
Clone the project and install the dependencies:
git clone https://your-repo-url.git cd your-repo pip install -r requirements.txt
Before running, set the following environment variables:
Linux/macOS
export TOKEN=your_token_here export APPLICATION_ID=your_application_id_here
Windows CMD
set TOKEN=your_token_here set APPLICATION_ID=your_application_id_here
Run the MCP server:
python main.py
The server will:
Plugin definitions are fetched from:
https://superiorapis-creator.cteam.com.tw/manager/module/plugins/list_v2
Authorization is required via the token
header.
@mcp.tool() async def post_example_tool(param1: Optional[str] = None, param2: Optional[int] = None) -> str: """ Tool description | API summary. # Args: param1 (string, optional): Description of param1. param2 (integer, optional): Description of param2. # Returns: 200 (object): API response. """
aiohttp>=3.8.6
pydantic>=2.5.3
mcp-sdk>=0.1.0
If the API call fails or returns status: 0
, the program will exit with:
❌ Error: API returned no data or status is 0. Please check if the API is working properly.
Build the package:
python setup.py sdist bdist_wheel
Install the package:
pip install dist/mcp-superiorapis-1.0.0-py3-none-any.whl
Run using Docker (if needed):
docker build -t superiorapis-mcp . docker run -e TOKEN=your_token -e APPLICATION_ID=your_app_id superiorapis-mcp
MIT License (or your custom license)
Your Name / Your Company
Contact: [email protected]