AgentMP/hitl-mcp-server
If you are the rightful owner of hitl-mcp-server 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 Model Context Protocol (MCP) server that integrates Claude Desktop with a Human In The Loop (HITL) escalation service.
HITL MCP Server
A Model Context Protocol (MCP) server that bridges Claude Desktop with your HITL (Human In The Loop) escalation service. This allows Claude to create, approve, modify, reject, and manage HITL escalations directly from Claude Desktop.
https://hub.docker.com/r/agentmp/hitl-mcp-server
Features
- Create HITL Escalations: Create new escalation requests with proposed actions
- Approve Escalations: Approve pending escalations with optional comments
- Modify Escalations: Modify existing escalations with new actions
- Reject Escalations: Reject escalations with optional comments
- Get Escalation Details: Retrieve details of specific escalations
- List Escalations: List all escalations for the authenticated user
Prerequisites
- Node.js 18+
- Docker (optional, for containerized deployment)
- AGENTMP API Key from your platform
- Claude Desktop application
Steps to Configure Cogito HITL on Claude Desktop
(Please refer to SetupClaudeDesktop.md for steps)
Setup
Option 1: Docker Deployment (Recommended)
-
Clone or create the project files:
mkdir hitl-mcp-server cd hitl-mcp-server
-
Create all the required files (app.js, package.json, package-lock.json, Dockerfile, docker-compose.yml)
-
Set your API key:
export AGENTMP_API_KEY="your_api_key_here"
-
Build and run the container:
chmod +x run.sh ./run.sh
Or manually:
docker-compose up --build -d
Option 2: Local Node.js Deployment (Recommended for troubleshooting)
-
Install dependencies:
npm install
-
Set your API key:
export AGENTMP_API_KEY="your_api_key_here"
-
Use the setup script:
chmod +x setup-local.sh ./setup-local.sh
-
Or run manually:
node app.js
Testing Your Setup
Before configuring Claude Desktop, test your setup:
# Test the server directly
export AGENTMP_API_KEY="your_api_key"
node app.js
If working correctly, you should see:
๐ Starting HITL MCP Server...
โ
API Key loaded successfully
๐ง Setting up request handlers...
โ
HITL MCP Server initialized successfully
๐ HITL MCP Server running and connected via stdio
๐ก Ready to handle HITL requests from Claude Desktop
Claude Desktop Configuration
To use this MCP server with Claude Desktop, you need to configure it in your Claude Desktop settings.
Configuration Steps
- Open Claude Desktop
- Go to Settings โ Developer
- Edit Config (this opens your MCP configuration file)
- Add the following configuration:
For Docker Deployment:
{
"mcpServers": {
"hitl": {
"command": "docker",
"args": ["exec", "-i", "hitl-mcp-server", "node", "app.js"],
"env": {
"AGENTMP_API_KEY": "your_api_key_here"
}
}
}
}
For Local Node.js Deployment:
{
"mcpServers": {
"hitl": {
"command": "node",
"args": ["/path/to/your/hitl-mcp-server/app.js"],
"env": {
"AGENTMP_API_KEY": "your_api_key_here"
}
}
}
}
- Save the configuration file
- Restart Claude Desktop
Usage Examples
Once configured, you can use the following commands in Claude Desktop:
Create a HITL Escalation
Create a HITL escalation for session "sess-123" with agent "my-agent" for a purchase of "Premium License" costing $99.99. Escalate to user "user@example.com" with normal priority.
Approve an Escalation
Approve HITL escalation "esc-123456789" with comment "Approved for purchase"
Modify an Escalation
Modify HITL escalation "esc-123456789" to change the item to "Enterprise License" and amount to $199.99 with comment "Upgraded to enterprise"
Reject an Escalation
Reject HITL escalation "esc-123456789" with comment "Budget exceeded"
Get Escalation Details
Get details for HITL escalation "esc-123456789"
List All Escalations
List all my HITL escalations
Available Tools
The MCP server provides the following tools:
- create_hitl: Create a new HITL escalation request
- approve_hitl: Approve a HITL escalation
- modify_hitl: Modify a HITL escalation with new action
- reject_hitl: Reject a HITL escalation
- get_hitl: Get details of a specific HITL escalation
- list_hitls: List all HITL escalations for the authenticated user
Environment Variables
AGENTMP_API_KEY
(required): Your API key for the AGENTMP platform
API Endpoints Used
The server communicates with your HITL service using these endpoints:
POST /api/hitl/mcp
- MCP JSON-RPC endpoint for create, approve, modifyPOST /api/hitl/{id}/reject
- REST endpoint for rejecting escalationsGET /api/hitl/{id}
- REST endpoint for getting escalation detailsGET /api/hitl
- REST endpoint for listing escalations
Troubleshooting
Common Issues
-
"No such container: hitl-mcp-server"
- The Docker container isn't running
- Run:
docker-compose up -d
to start it - Check:
docker ps | grep hitl-mcp-server
to verify it's running - Recommendation: Use local Node.js setup instead
-
"Cannot find module '@modelcontextprotocol/sdk/server/index.js'"
- Dependencies not installed locally
- Run:
npm install
in the project directory - Make sure you're in the correct directory with package.json
-
API Key Not Set
- Ensure
AGENTMP_API_KEY
environment variable is properly set - Check that the API key is valid and has proper permissions
- Ensure
-
Container Not Starting
- Check Docker logs:
docker logs hitl-mcp-server
- Ensure the API key is provided in the environment
- Check Docker logs:
-
Claude Desktop Not Recognizing Server
- Verify the MCP configuration syntax in Claude Desktop
- Check that the path to the script is correct (use absolute path)
- Restart Claude Desktop after configuration changes
- For local setup, use the config format provided by
setup-local.sh
-
Connection Issues
- Ensure your network allows connections to
backend.agentmp.io
- Check if any firewall rules are blocking the connection
- Ensure your network allows connections to
Logs
For Docker deployment, view logs with:
docker logs hitl-mcp-server
For local deployment, logs will appear in the terminal where you ran npm start
.
Security Considerations
- Store your API key securely and never commit it to version control
- The container runs as a non-root user for security
- Consider using Docker secrets for production deployments
- Regularly rotate your API keys
Contributing
Feel free to submit issues and enhancement requests!
License
MIT License
Set your API key
export AGENTMP_API_KEY="99aeae0e6b4f4107a59d1b59010834cb3eb96ae0f667078f7cc2a296dad27785"
Build the image
docker build -t hitl-mcp-server .
Run the container
docker run -d
--name hitl-mcp-server
--env AGENTMP_API_KEY="99aeae0e6b4f4107a59d1b59010834cb3eb96ae0f667078f7cc2a296dad27785"
--restart unless-stopped
-i
hitl-mcp-server
Perfect! Your Docker container is running successfully (ID: 3c10bcf71a6d...
).
๐ฏ Claude Desktop Configuration
Open Claude Desktop โ Settings โ Developer โ Edit Config and add this:## ๐ Setup Steps
- Save the config above in Claude Desktop
- Restart Claude Desktop
- Test with the examples below
๐งช Simple Test Cases
Here are test cases from basic to advanced:
Test 1: List Existing HITLs (Basic)
List all my HITL escalations
Expected: Should show your existing HITL escalations or empty list
Test 2: Create a HITL Escalation (Core Function)
Create a HITL escalation with these details:
- Session ID: "test-session-123"
- Agent ID: "claude-test-agent"
- User prompt: "User wants to purchase premium subscription"
- Proposed action: Purchase of "Premium Plan" for $29.99
- Escalate to: "karthik6461@gmail.com"
- Priority: "normal"
Expected: Should return escalation ID like "esc-xxxxx-xxxxx-xxxxx"
Test 3: Get HITL Details (Verification)
Get details for HITL escalation "esc-[ID-FROM-TEST-2]"
Replace [ID-FROM-TEST-2] with the actual ID from Test 2
Test 4: Approve HITL (Action)
Approve HITL escalation "esc-[ID-FROM-TEST-2]" with comment "Approved for testing purposes"
Test 5: Create and Modify (Advanced)
Create a HITL escalation for a $50 software license purchase, then modify it to $75 enterprise license
๐ Quick Verification Commands
Before testing in Claude, verify your container:
# Check container is running
docker ps | grep hitl-mcp-server
# Check container logs
docker logs hitl-mcp-server
# Test the container directly
docker exec -i hitl-mcp-server node -e 'console.log("โ
Container is working!")'
๐ Expected Claude Responses
If working correctly, Claude should:
- โ Recognize the HITL tools automatically
- โ
Create escalations and return IDs like
esc-xxxxx-xxxxx-xxxxx
- โ Show JSON responses with escalation details
- โ Handle approve/modify/reject operations
๐จ If Something Goes Wrong
- Check Docker logs:
docker logs hitl-mcp-server
- Restart Claude Desktop after any config changes
- Verify container is running:
docker ps | grep hitl-mcp-server
Start with Test 1 (list HITLs) - it's the safest and will confirm the connection is working!