Human-Controlled MCP Server
Connects Claude to a human operator through a web interface, allowing Claude to ask questions, request searches, or seek decisions that are answered by a human in real-time. Instead of automated tools, Claude gets responses directly from you through a beautiful web dashboard.
README
Human-Controlled MCP Server 🎮
A Model Context Protocol (MCP) server where you are the backend! Claude makes requests, and you respond through a beautiful web interface in real-time.
What Does This Do?
Instead of connecting Claude to APIs, databases, or automated tools, this MCP server connects Claude to you. When Claude needs information, wants to make a decision, or needs human judgment, it sends a request to your web dashboard where you can respond.
Features
- 🌐 Web Interface: Beautiful single-page dashboard to see and respond to Claude's requests
- ⚡ Real-time: Requests appear instantly in your browser
- 🎨 Clean UI: Modern, responsive interface with no frameworks needed
- 🔧 Multiple Tools: Ask questions, request searches, or get decisions from humans
- ⏱️ Timeout Handling: Automatic 5-minute timeout for pending requests
Architecture
Claude Desktop
↓ (MCP Protocol)
Python MCP Server
↓ (HTTP)
Web Interface (You!)
Setup Instructions
1. Install Dependencies
pip install -r requirements.txt
2. Configure Claude Desktop
Edit your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Add this configuration:
{
"mcpServers": {
"human-controlled": {
"command": "python",
"args": [
"/absolute/path/to/human_mcp_server.py"
]
}
}
}
Important: Replace /absolute/path/to/human_mcp_server.py with the actual full path to the Python file.
3. Start the Server
You have two options:
Option A: Via Claude Desktop (Recommended)
- Just restart Claude Desktop after configuring
- The server starts automatically when Claude Desktop launches
- Open your browser to http://localhost:5000
Option B: Standalone Testing
python human_mcp_server.py
Then connect via Claude Desktop or test with an MCP client.
4. Open the Web Interface
Navigate to: http://localhost:5000
You'll see the Human MCP Control Panel where you can respond to Claude's requests.
Usage
In Claude Desktop
Once configured, Claude will have access to three tools:
- ask_human: Ask you a question
- human_search: Request you to search for information
- human_decision: Ask you to make a decision
Example Conversation
You: "Claude, can you ask me what I want for dinner?"
Claude: Uses ask_human tool
[Your Web Interface Shows]:
Tool: ask_human
Parameters:
{
"question": "What would you like for dinner tonight?",
"context": "The user asked me to ask them this question."
}
You: Type "I'd like pasta with marinara sauce" in the web interface and click Submit
Claude: "Based on your response, you'd like pasta with marinara sauce for dinner tonight!"
Available Tools
1. ask_human
Ask the human operator any question.
Parameters:
question(required): The question to askcontext(optional): Additional context
Example Use: "What's your email address?" "Do you approve this change?" "What are your thoughts on this approach?"
2. human_search
Request the human to search for information.
Parameters:
query(required): What to search forsources(optional): Where to look
Example Use: "Can you search for the latest news on AI?" "Look up our company's Q3 revenue numbers"
3. human_decision
Ask the human to make a decision.
Parameters:
decision_needed(required): What needs to be decidedoptions(required): Available optionsrecommendation(optional): AI's recommendation
Example Use: "Should we use approach A or B for this feature?" "Which design do you prefer?"
Technical Details
- Protocol: Model Context Protocol (MCP) over stdio
- Server: Python with Flask for web interface
- Transport: Standard input/output for MCP, HTTP for web UI
- Timeout: 5 minutes per request
- Port: 5000 (web interface)
Troubleshooting
Server won't start
- Check that port 5000 isn't already in use
- Verify Python dependencies are installed:
pip list | grep -E "flask|mcp"
Claude can't connect
- Verify the path in
claude_desktop_config.jsonis absolute and correct - Restart Claude Desktop after configuration changes
- Check Claude Desktop logs for errors
Web interface not accessible
- Make sure the server is running:
lsof -i :5000 - Try accessing
http://127.0.0.1:5000instead oflocalhost - Check your firewall settings
Requests timing out
- Default timeout is 5 minutes - increase
max_waitin the code if needed - Make sure your web interface is open and polling
Customization
Change the port
Edit app.run() in the code:
app.run(host='0.0.0.0', port=8080, debug=False, use_reloader=False)
Add more tools
Add new tools in the handle_list_tools() function following the MCP Tool schema.
Modify timeout
Change max_wait in the handle_call_tool() function (currently 300 seconds).
Customize the UI
Edit the HTML_TEMPLATE string - it's a single self-contained HTML file with embedded CSS and JavaScript.
Security Notes
- This server binds to
0.0.0.0, making it accessible on your local network - For localhost-only access, change to
host='127.0.0.1' - Add authentication if exposing over a network
- Responses are stored in memory only (not persistent)
Use Cases
- Personal Assistant: Claude asks you about your schedule, preferences, or decisions
- Research Helper: Claude requests you to look up information it can't access
- Code Review: Claude asks for your approval or input on code changes
- Creative Collaboration: Claude asks for your creative input or direction
- Teaching Tool: Demonstrate how MCP servers work with manual responses
Credits
Built with:
- MCP (Model Context Protocol)
- Flask
- Vanilla JavaScript (no frameworks!)
License
MIT License - feel free to modify and use as you wish!
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.