EST Call Agent
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@EST Call AgentList the most recent 5 calls."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
EST Call Agent - FastMCP Cloud Server
A URL/HTTP-based MCP (Model Context Protocol) server for the AI Phone Agent Platform. This server can be deployed to Railway, Render, Fly.io, or any cloud platform and allows AI assistants (like Claude in Cursor) to interact with your call campaigns via HTTP instead of stdio.
๐ Features
HTTP/URL-based MCP server using FastMCP
Cloud-ready deployment with Docker support
Organization-scoped authentication via API keys
REST API integration - calls python-server-est API instead of direct imports
No dependencies on main application code - fully independent deployment
Related MCP server: VoIPBin MCP Server
๐๏ธ Architecture
Cursor/Claude Desktop
โ (HTTP/HTTPS)
FastMCP Server (this project)
โ (REST API calls)
python-server-est API (Railway)
โ
Twilio + OpenAI๐ฆ Installation
Local Development
# Clone or navigate to project
cd python-mcp-est
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Copy environment template
cp .env.example .env
# Edit .env with your configuration
nano .envEnvironment Variables
Required environment variables (see .env.example):
# Organization Authentication
ORGANIZATION_API_KEY=your_api_key_from_org_settings
ORGANIZATION_ID=your_organization_uuid
# API Configuration
API_BASE_URL=https://python-server-est-production.up.railway.app
# Supabase (for API key validation)
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_SERVICE_KEY=your_service_role_key๐ Deployment
Railway Deployment
Create new Railway project:
railway login railway initSet environment variables in Railway dashboard:
ORGANIZATION_API_KEYORGANIZATION_IDAPI_BASE_URLSUPABASE_URLSUPABASE_SERVICE_KEY
Deploy:
railway upGet your deployment URL:
railway statusExample:
https://python-mcp-est-production.up.railway.app
๐ Connecting to Cursor/Claude Desktop
Cursor Configuration
Edit your Cursor MCP config file (usually ~/.cursor/mcp.json or workspace .cursor/mcp.json):
{
"mcpServers": {
"est-call-agent": {
"url": "https://your-mcp-server.railway.app/mcp",
"headers": {
"X-API-Key": "your_organization_api_key"
}
}
}
}Claude Desktop Configuration
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or equivalent:
{
"mcpServers": {
"est-call-agent": {
"url": "https://your-mcp-server.railway.app/mcp",
"headers": {
"X-API-Key": "your_organization_api_key"
}
}
}
}๐ ๏ธ Available Tools
1. start_campaign_call_scheduled
Schedule a single outbound call for a specific client at a given time.
Parameters:
campaign_id(string): Campaign UUIDphone_number(string): Client number in E.164 formatscheduled_time(string): ISO 8601 timestamp (campaign timezone respected)first_name,last_name,company,email,extrainfo(strings, optional): Metadata stored as contact custom data
Returns: Call ID, scheduled timestamps, and subscription usage details from the API.
2. list_voice_agents
Lists all voice agent campaigns for the authenticated organization.
Returns: Array of campaign objects with campaign_id, name, status, campaign_type, created_at, and is_active fields.
3. get_call_data_by_id
Retrieves a single call record from Supabase.
Parameters:
call_id(string): Supabase call identifier
Returns: Full call JSON when found.
4. list_recent_calls
Lists the most recent calls for the organization.
Parameters:
limit(integer, optional): Number of calls to return (default 25, max 200)
Returns: Array of call records ordered by newest first.
5. get_twilio_number
Returns the Twilio phone number configured for the organization.
Returns: twilio_phone_number string.
6. list_inbound_clients
Lists inbound client records.
Parameters:
limit(integer, optional): Number of records to return (default 25, max 200)
Returns: Array of inbound client objects ordered by creation date.
7. get_webhook_url
Returns the webhook URL configured for the organization.
Returns: webhook_url string.
8. get_organisation_members
Returns organization members with their name, email, and last login timestamp.
Returns: Array of member objects: { "full_name", "email", "last_login_at" }.
๐งช Testing
Local Testing (HTTP mode)
# Run server
python cloud_mcp_server.py
# Test with curl
curl http://localhost:8000/mcp๐ Monitoring
Health Check
The server includes a health check endpoint:
curl https://your-mcp-server.railway.app/healthLogs
View logs in Railway:
railway logs๐ Security
API Key Authentication: All requests require a valid organization API key
Organization Scoping: All data is automatically filtered to the authenticated organization
HTTPS Required: Use HTTPS in production (automatically provided by Railway/Render/Fly)
Environment Variables: Never commit
.envfile or expose secrets
๐ Troubleshooting
Connection Issues
Check deployment URL: Ensure the URL in your MCP config matches your deployment
Verify API key: Check that
ORGANIZATION_API_KEYis set correctly in both server and clientCheck logs: Review Railway/Render logs for error messages
API Errors
Validate API base URL: Ensure
API_BASE_URLpoints to python-server-estCheck organization ID: Verify
ORGANIZATION_IDis correctReview API timeouts: Increase
API_TIMEOUTif needed
Authentication Failures
Regenerate API key: Generate a new key in organization settings
Verify Supabase config: Check
SUPABASE_URLandSUPABASE_SERVICE_KEYCheck database: Verify API key exists in
organization_service_credentialstable
๐ Development
Project Structure
python-mcp-est/
โโโ cloud_mcp_server.py # FastMCP server implementation
โโโ mcp_handlers.py # Tool handlers (calls REST API)
โโโ requirements.txt # Python dependencies
โโโ Dockerfile # Container definition
โโโ railway.toml # Railway configuration
โโโ .env.example # Environment template
โโโ README.md # This fileAdding New Tools
Add handler function in
mcp_handlers.pyAdd tool definition in
cloud_mcp_server.pyusing@mcp.tool()decoratorUpdate this README with tool documentation
๐ License
Same as the parent EST Call Agent Platform project.
๐ Support
For issues or questions:
Check the logs first
Review Railway/Render deployment status
Verify all environment variables are set correctly
Check python-server-est API is responding
๐ Related Projects
python-server-est: Main API server for outbound calls
phone-agent-platform-EST: Next.js frontend application
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Vossy/python-mcp-est'
If you have feedback or need assistance with the MCP directory API, please join our Discord server