WorkForceAI MCP Server
Enables AI assistants to look up and update WorkForceAI platform data, including voice agents, campaigns, phone numbers, call logs, and dashboard stats, through natural language.
README
WorkForceAI MCP Server
This is the "internal bot's toolbox" — a small standalone server that lets a chat/voice bot look up and update things on the WorkForceAI platform (agents, campaigns, phone numbers, call logs, stats) by calling the same backend the main app uses.
It is completely separate from the healthai-frontend repo — nothing here gets
pushed there. It speaks a standard protocol called MCP (Model Context Protocol),
which is what lets an AI (Claude, ElevenLabs' agent, etc.) discover "here are the
things I'm allowed to do" and call them during a conversation.
You do not need to understand MCP internals to run this — just follow the steps below.
What it can do right now
Read-only (safe, look-things-up tools):
list_voice_agents— list your CallFlow voice agentslist_campaigns— list campaigns, or get one campaign's full detailslist_phone_numbers— list provisioned Twilio numbersget_call_logs— recent call records/transcriptsget_dashboard_stats— call volume/usage statsget_current_account— which account the bot is logged in as
One action tool (changes real data):
update_campaign— update a campaign's system prompt, greeting, name, objective, etc. Requires acampaignId; only the fields you pass get changed.
All of this is scoped to whichever account's login you put in .env — the bot
sees exactly what that account can see in the platform, nothing more.
One-time setup
1. Install dependencies
Open a terminal in this folder (E:\aiconnecthub\workforceai-mcp) and run:
npm install
(Node.js is already installed on this machine — nothing else to install there.)
2. Set up your .env file
A .env file already exists here with your login filled in, pointing at the real
WorkForceAI backend (https://workforceai.zapto.org). If you ever need to change
which account the bot logs in as, edit .env directly:
BACKEND_BASE_URL=https://workforceai.zapto.org
BOT_ACCOUNT_EMAIL=your-login-email
BOT_ACCOUNT_PASSWORD=your-login-password
MCP_PORT=8787
Never share this file or commit it anywhere — it has a real password in it.
.gitignore already excludes it, so even if you turn this folder into a git repo
later, .env won't get committed by accident.
3. Start the server
npm start
You should see:
workforceai-mcp listening on http://localhost:8787
MCP endpoint: http://localhost:8787/mcp
Health check: http://localhost:8787/health
Leave this running in its own terminal window while you're testing or using the bot.
Press Ctrl+C to stop it.
4. Verify it's working
Quick check (no extra tools needed): open http://localhost:8787/health in a
browser — it should show {"ok":true}.
Full check (see the actual tools and try one): use the official MCP Inspector — a browser-based tool for poking at an MCP server by hand. In a second terminal (leave the server running in the first one):
npx @modelcontextprotocol/inspector
This opens a browser tab. In it:
- Set Transport Type to
Streamable HTTP - Set URL to
http://localhost:8787/mcp - Click Connect
- Go to the Tools tab, click a tool like
list_voice_agents, click Run — you should see your real agents come back as JSON.
If that works, the server is fully verified and ready to be connected to a bot.
How authentication works (so you're not surprised)
There's no separate "bot API key" system on the backend today — the bot logs in
with a normal email/password, exactly like the website's login form does, and gets
back a JWT token it attaches to every request. It keeps that token in memory (not
on disk) and automatically logs in again if the token expires or a request comes
back unauthorized. This mirrors what utils/apiClient.js does in the frontend app,
just without a browser.
Because of this, the bot only ever sees/changes what that one login can see — its own agents, campaigns, numbers, and call logs. It cannot see or touch other users' accounts.
Project layout
workforceai-mcp/
├── .env ← your real credentials (gitignored, never share)
├── .env.example ← template, safe to share
├── src/
│ ├── config.js ← reads .env
│ ├── backendClient.js ← logs in, attaches auth token, retries on expiry
│ ├── tools.js ← the actual tool definitions (add new ones here)
│ └── server.js ← the MCP server itself (Express + Streamable HTTP)
└── README.md ← this file
To add a new tool later: add an entry to the tools array in src/tools.js
following the existing pattern (name, description, input fields, handler that
calls http.get/post/put against the backend), restart the server, done.
What's NOT done yet (next phase)
This server currently only runs on your own machine (localhost) — it isn't
reachable from the internet. To wire it up to an ElevenLabs voice agent, ElevenLabs'
servers need to be able to reach this MCP endpoint over the internet, which means
either:
- exposing it temporarily via a tunnel (e.g.
ngrok), or - deploying it somewhere it stays running (a small always-on server/VPS/hosting service)
That, plus the actual ElevenLabs agent configuration, is intentionally a separate next step — not part of this build.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。