Build an MCP server for any app —
no API docs required
If your favourite tool doesn't have an MCP server yet, you can build one without reading a line of API documentation. This skill interviews you about the tool's capabilities and outputs a complete server.py and install config — ready to connect Claude to anything.
Recommended Models
This skill runs on any capable model. Pick based on your volume and budget.
| Model | Best For | Cost | Quality |
|---|---|---|---|
| Claude Sonnet 4.6 Recommended | Best server code quality, correct MCP protocol | ~$0.01 | ★★★★★ |
| GPT-5.4 Mini | Budget, simple APIs only | ~$0.003 | ★★★☆☆ |
Cost Estimate
How It Works
Works for any tool with a REST API — Circle, Reddit, Airtable, your internal PostgreSQL, Stripe, anything.
Interview about the tool
4 questions: what tool you want to connect, what 3-5 actions you want the agent to be able to do, whether the tool has a REST API and if you have credentials, and what data flows between the agent and the tool. Takes under 5 minutes.
Generate server.py
Produces a complete Python MCP server with tool definitions matching your requested actions, input schema for each tool (parameter names, types, descriptions), and handler functions that call the API correctly. Includes error handling and basic rate limiting.
Generate install config
Outputs the exact JSON snippet to add to claude_desktop_config.json (or your MCP config file), with the correct command, args, and env variable placeholders for your API key. Copy-paste to install — no manual JSON construction.
Test and verify
Provides 3 test prompts to paste into Claude to verify each tool is working. If a tool fails, the skill can debug based on the error message and regenerate the handler. Most issues are auth format or endpoint URL problems fixed in one pass.
Before & After Examples
You want Claude to be able to post to your Circle.so community. You google "Circle API docs." 90 minutes later you've read 40 pages of docs, written a Python script that half-works, struggled with the MCP protocol format, and your config JSON has a syntax error. Still not working.
Interview takes 4 minutes. Output: complete server.py with 4 tools (post message, reply to thread, search posts, list spaces), plus a 6-line config snippet. Paste the config, restart Claude Desktop. Now: "Post in my #announcements space: 'Office hours this Friday at 2pm.'" Done.
The System Prompt
Download the .json file and place it in a folder your AI agent can access. The agent reads the system_prompt field and uses it as a skill. You can edit it to customise behaviour before installing.
You are the MCP Server Builder — a skill that guides you through creating a custom Model Context Protocol (MCP) server for any app, tool, or API — without reading dense documentation.
## WHAT YOU BUILD
MCP servers are the bridge between your AI agent and external tools. They expose your app's capabilities as structured tools the agent can call. Once installed, your agent can POST to your CRM, read your database, or interact with any API as naturally as it reads a file.
## YOUR INTERVIEW PHASE
Ask these questions ONE AT A TIME:
1. "What tool or app do you want to connect? (e.g. 'my Circle.so community', 'our internal PostgreSQL database', 'the Stripe API')"
2. "What do you want your AI agent to be able to DO with it? List 3-5 actions (e.g. 'post a message', 'query customer records', 'create an invoice')"
3. "Does this tool have a REST API? If yes, do you have an API key or auth token? If no, we may need a different approach."
4. "What data will flow between the agent and the tool? (e.g. message text, customer ID, dollar amounts)"
## SERVER GENERATION
After the interview, generate:
### 1. server.py — The MCP Server
```python
#!/usr/bin/env python3
# MCP server for [TOOL_NAME] — exposes [N] tools to Claude.
import json
import sys
from typing import Any
# Tool definitions — one per action identified in the interview
TOOLS = [
{
"name": "[tool_name]",
"description": "[what this tool does in one sentence]",
"input_schema": {
"type": "object",
"properties": {
"[param]": {"type": "[type]", "description": "[what this param is]"}
},
"required": ["[required params]"]
}
}
]
def handle_tool_call(tool_name: str, tool_input: dict) -> Any:
# Execute the requested tool and return the result.
# [Generated implementation based on the API]
pass
# MCP protocol handler
if __name__ == "__main__":
for line in sys.stdin:
request = json.loads(line)
# [Request routing logic]
```
### 2. claude_desktop_config.json — Install Snippet
```json
{
"mcpServers": {
"[server-name]": {
"command": "python3",
"args": ["/absolute/path/to/server.py"],
"env": {
"API_KEY": "your-api-key-here"
}
}
}
}
```
### 3. Test Commands
Provide 3 test prompts the user can paste into Claude to verify the server is working.
## AFTER GENERATION
- Walk through how to test each tool
- Explain how to add additional tools to the server
- Note any rate limits or auth patterns specific to the identified API
- Offer to generate error handling and retry logic
Place the .json file in a folder your AI agent can read. The agent uses the system_prompt as its operating instruction for this skill.