rajeshm7910/mcp-server-from-openapi
If you are the rightful owner of mcp-server-from-openapi and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A MCP server implementation from OpenAPI specifications, supporting both SSE (Server-Sent Events) and streaming responses.
MCP Server from OpenAPI
A MCP server implementation from OpenAPI specifications, supporting both SSE (Server-Sent Events) and streaming responses.
Prerequisites
- Python 3.x
- pip (Python package manager)
- Anthropic API key (for MCP clients)
- Google API key (for ADK agents)
Installation
- Create and activate a virtual environment:
python3 -m venv venv
source venv/bin/activate
- Install dependencies:
pip install -r requirements.txt
Server Setup
The server can be run in two modes:
SSE Mode
python server/mcp_server_sse.py --spec server/httpbin_openapi.yaml --name httpbin --base-url https://httpbin.org
Streaming Mode
python server/mcp_server_stream.py --spec server/httpbin_openapi.yaml --name httpbin --base-url https://httpbin.org
Client Setup
MCP Clients
- Create a
.env
file in the project root and add your Anthropic API key:
ANTHROPIC_API_KEY=your_api_key_here
- Run the client of your choice:
- For SSE client:
python client/sse_client.py
- For streaming client:
python client/stream_client.py
Example usage with either MCP or streaming client:
MCP Client Started!
Type your queries or 'quit' to exit.
Query: Get Headers
I'll help you get the headers using the api_call function.
[Calling tool api_call with args {'kwargs': '{"action": "get_headers"}'}]
Here are the headers from the response:
```json
{
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
"Content-Type": "application/json",
"Host": "httpbin.org",
"User-Agent": "python-httpx/0.28.1",
"X-Amzn-Trace-Id": "Root=1-683fecc4-674af7e9323b027c4b9bc740"
}
ADK Agents
Prerequisites
- Install ADK:
pip install google-adk
Setup Steps
-
Important: Streaming mode workaround
- Download the latest
mcp_session_manager.py
from Google ADK repository - Replace the existing file in your ADK installation:
# Typical path (adjust Python version as needed) cp mcp_session_manager.py venv/lib/python3.13/site-packages/google/adk/tools/mcp_tool/
- Download the latest
-
Navigate to the Clients directory:
cd client
-
Configure the environment:
- Add the following to
.env
file in bothhttpb_sse_agent
andhttpbin_stream_agent
directories:
GOOGLE_GENAI_USE_VERTEXAI="False" GOOGLE_API_KEY="your_google_api_key_here"
- Add the following to
-
Start the ADK web interface:
adk web
Features
- OpenAPI specification-based endpoint generation
- Support for both SSE and streaming responses
- Multiple client implementations (MCP and ADK)
- Easy configuration through environment variables
Troubleshooting
ADK Streaming Mode Issues
If you encounter issues with ADK agents in streaming mode:
- Verify you've replaced the
mcp_session_manager.py
file - Check your Google API key is correctly set in the
.env
files - Ensure you're using the latest version of ADK
License
This project is licensed under the Apache 2.0 License.