mcp server
mcpify
MCPify — converts any AI agent URL, REST API, GraphQL, or OpenAPI spec into a Model Context Protocol (MCP) server. Built by Aikart.
Set up
Runs on your computer. Pick your agent and operating system.
This project does not publish an install method we can turn into a config. Follow the README instead.
README
synced Oct 21, 2026⚡ MCPify
Analyze any AI agent URL, detect framework capabilities, and generate ready-to-use Model Context Protocol (MCP) configurations. MCPify also exposes its own
/mcpendpoint so it can itself be added as an MCP connector to any MCP client (Claude Desktop, Cursor, VS Code, etc.).
🌐 Live: mcpify.aikart.co • Built by Aikart • MIT Licensed
MCPify converts any AI agent, REST API, GraphQL API, or OpenAPI specification into a ready-to-use Model Context Protocol (MCP) server - with one-click configs for Claude Desktop, Cursor, Windsurf, Cline, VS Code, and the Claude Code CLI.
🚀 Features
- 🔍 Universal Agent URL Analysis: Probes common endpoints (
/mcp,/sse,/health,/tools,/docs,/openapi.json) concurrently with HTTP heuristics. - 🧠 Framework Detection: Identifies FastAPI, Flask, LangChain/LangGraph, Express, and Next.js agents with confidence scoring.
- ⚙️ Instant MCP Config Generator: Outputs ready-to-copy configuration JSON for:
- Claude Desktop (
mcpServersformat) - Cursor & VS Code (SSE/Remote MCP format)
- Remote MCP Endpoint
- Claude Desktop (
- 🔌 Self-Hosting MCP Server: Powered by
fastapi-mcp, exposing its own/mcpendpoint and tools directly to AI clients. - ⏱️ Zero-Downtime Free Tier Keep-Alive: Integrated APScheduler keep-alive worker pinging
/healthevery 10 minutes to prevent Render/Koyeb sleeping. - 🌐 Full CORS Support: Open for web frontends, browser extensions, and developer portals.
📁 Project Structure
mcpify/
├── main.py # FastAPI app entry point with FastApiMCP & APScheduler
├── requirements.txt # Python dependencies
├── render.yaml # Render deployment blueprint
├── .env.example # Sample environment configuration
├── README.md # Project documentation & guides
└── app/
├── __init__.py # Package initialization
├── analyzer.py # URL probing & framework detection heuristics
├── generator.py # MCP configuration JSON generator
└── mcp_handler.py # MCP tools definition & REST router
🛠️ MCP Tools Exposed
When connected via /mcp, MCPify exposes three primary tools:
| Tool Name | Parameters | Description |
|---|---|---|
analyze_agent | url (string) | Probes agent endpoints, detects framework, returns confidence score and accessible routes. |
generate_mcp_config | url (string) | Analyzes agent and generates complete Claude Desktop and Cursor JSON configs. |
get_integration_guide | url (string), platform (claude_desktop | cursor | web) | Step-by-step instructions for adding the agent to your client. |
💻 Local Setup & Installation
1. Clone & Navigate
git clone <your-repo-url>
cd mcpify
2. Create Virtual Environment
# Windows
python -m venv venv
venv\Scripts\activate
# macOS / Linux
python3 -m venv venv
source venv/bin/activate
3. Install Dependencies
pip install -r requirements.txt
4. Configure Environment
cp .env.example .env
At minimum, set:
APP_URL=http://localhost:10000
Running without a database: DATABASE_URL, JWT_SECRET_KEY, etc. are all optional for local dev - /analyze, /generate, /guide, and the MCP tools work fine without them (no signup/login required historically; they now gate behind auth in production - see note below). Only signup/login/dashboard/admin-ads/GA endpoints need a real Postgres connection. The test suite (pytest) never needs any of this either.
Getting real values (teammates with Railway access): this project deploys from Railway, not the render.yaml below (that's legacy from before the move). There's no committed .env - env vars live in Railway's dashboard. If you need to run against the same DB/Redis/GA/Cloudinary the production deploy uses: Railway project → Variables tab → copy each value into your local .env. Don't commit .env or paste these values into chat/commits - .env is already gitignored.
Note: /analyze, /generate, and /guide currently require a logged-in user (Authorization: Bearer <jwt>) even in this local setup, so without DATABASE_URL + JWT_SECRET_KEY configured you can exercise the analyzer/generator logic directly via app/analyzer.py's functions or the MCP tools in app/mcp_handler.py, but not the REST endpoints end-to-end.
5. Run the Server
uvicorn main:app --host 0.0.0.0 --port 10000 --reload
- Interactive Swagger API Docs:
http://localhost:10000/docs - MCP Endpoint:
http://localhost:10000/mcp - Health Check:
http://localhost:10000/health
🚢 Deployment
Current production: Railway. The repo has no railway.json/railway.toml - Railway auto-detects the Python app from requirements.txt and runs uvicorn main:app. To deploy your own instance: create a Railway project, connect this repo, add a Postgres database (or point DATABASE_URL at Neon/any provider), and set the env vars from .env.example in Railway's Variables tab.
This project includes a render.yaml for 1-click deployment on Render's free tier, kept for anyone who prefers Render over Railway - not what the live deployment actually runs on.
- Push this repository to GitHub or GitLab.
- Log into Render Dashboard.
- Click New + > Blueprint.
- Connect your repository.
- Set
APP_URLin the environment variables to your assigned Render URL (e.g.https://mcpify.onrender.com). - Deploy! The built-in APScheduler will automatically keep your service awake.
🔌 Connecting MCPify to Your Client
1. Claude Desktop
Add MCPify to claude_desktop_config.json:
{
"mcpServers": {
"mcpify": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://your-mcpify-url.onrender.com/mcp"
]
}
}
}
2. Cursor / VS Code
In Cursor Settings > Features > MCP > Add New MCP Server:
- Name:
mcpify - Type:
sse - URL:
https://your-mcpify-url.onrender.com/mcp
📡 API Endpoints
1. Health Check
GET /health
{
"status": "ok"
}
2. Analyze Agent URL
POST /analyze
{
"url": "https://sample-agent.onrender.com"
}
Response:
{
"url": "https://sample-agent.onrender.com",
"detected_framework": "FastAPI",
"confidence_score": 0.95,
"available_endpoints": [
{
"path": "/health",
"status_code": 200,
"accessible": true,
"content_type": "application/json"
},
{
"path": "/docs",
"status_code": 200,
"accessible": true,
"content_type": "text/html; charset=utf-8"
}
],
"recommended_mcp_endpoint": "https://sample-agent.onrender.com/mcp",
"details": {
"signals": [
"Server header contains 'uvicorn'",
"OpenAPI specification available at /openapi.json",
"Swagger UI documentation available at /docs"
],
"framework_scores": {
"FastAPI": 0.95,
"Flask": 0.0,
"LangChain": 0.0,
"Express": 0.0,
"Next.js": 0.0
}
}
}
3. Generate MCP Config
POST /generate
{
"url": "https://sample-agent.onrender.com"
}
4. Integration Guide
POST /guide
{
"url": "https://sample-agent.onrender.com",
"platform": "claude_desktop"
}
📜 License
MIT License. Built for seamless AI agent interoperability with Model Context Protocol.