loading…
Search for a command to run...
loading…
Automatically generates and runs MCP servers by scraping API documentation and using Gemini to extract endpoints and configuration. It enables users to interact
Automatically generates and runs MCP servers by scraping API documentation and using Gemini to extract endpoints and configuration. It enables users to interact with any REST API through MCP-compatible clients by simply providing a documentation URL.
Point it at API docs, get an MCP server.
MCPify scrapes API documentation, uses Gemini to figure out the endpoints/auth/params, and spits out a config file. The runtime reads that config and runs an MCP server that Claude (or any MCP client) can use to call the API.
git clone https://github.com/yourusername/mcpify.git
cd mcpify
pip install -e .
Needs Python 3.11+ and a Gemini API key.
export GEMINI_API_KEY="your-api-key"
# Parse docs into a config file
mcpify parse https://api.example.com/docs -o my-api.json
# Run the server
mcpify serve my-api.json --auth "your-api-token"
# Or do both at once
mcpify quickstart https://api.example.com/docs --auth "token"
To use with Claude Desktop, add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"my-api": {
"command": "mcpify",
"args": ["serve", "/path/to/my-api.json", "--auth", "your-token"]
}
}
}
mcpify parse <url> - Scrape docs and generate config
mcpify parse https://docs.github.com/en/rest -o github.json --max-pages 15
| Option | Description |
|---|---|
-o, --output |
Output file (default: mcpify-config.json) |
-m, --max-pages |
Max pages to scrape (default: 10) |
--no-follow |
Don't follow links |
-k, --api-key |
Gemini API key (or use env var) |
--model |
Gemini model (default: gemini-2.0-flash) |
mcpify serve <config> - Run MCP server
mcpify serve my-api.json --auth "Bearer token" --transport stdio
| Option | Description |
|---|---|
-a, --auth |
Auth token for API calls |
-t, --transport |
stdio, sse, or http (default: stdio) |
mcpify show <config> - Print config as table
mcpify quickstart <url> - Parse and serve in one shot
The generated JSON looks like this:
{
"name": "my-api",
"description": "Description of the API",
"base_url": "https://api.example.com/v1",
"version": "1.0.0",
"auth": {
"type": "bearer",
"header_name": "Authorization",
"prefix": "Bearer "
},
"tools": [
{
"name": "get_users",
"description": "Retrieve a list of users",
"method": "GET",
"path": "/users",
"parameters": [
{
"name": "limit",
"type": "integer",
"description": "Max results to return",
"required": false,
"location": "query",
"default": 10
}
],
"response": {
"description": "Array of user objects"
},
"tags": ["users"]
}
]
}
Auth types: none, api_key, bearer, oauth2
Parameter locations: query, path, header, body
from mcpify.scraper import scrape_documentation
from mcpify.parser import parse_documentation
from mcpify.runtime import create_mcp_server
# Scrape docs
docs = await scrape_documentation("https://api.example.com/docs")
# Parse with Gemini
config = await parse_documentation(docs)
# Save config
config_path = "my-api.json"
with open(config_path, "w") as f:
f.write(config.to_json())
# Create and run server
server = create_mcp_server(config, auth_token="your-token")
server.run()
# GitHub
mcpify parse https://docs.github.com/en/rest/users -o github.json
mcpify serve github.json --auth "ghp_your_token"
# Stripe
mcpify parse https://stripe.com/docs/api -o stripe.json
mcpify serve stripe.json --auth "sk_test_your_key"
MIT
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"mcpify": {
"command": "npx",
"args": []
}
}
}PRs, issues, code search, CI status
Database, auth and storage
Reference / test server with prompts, resources, and tools.
Secure file operations with configurable access controls.