Create scheduling polls, vote, and finalize times from AI agents.
MCP server for Timergy - the scheduling poll app. Create polls, vote on time slots, and finalize meetings directly from AI agents like Claude, ChatGPT, and Gemini.
No authentication required. Works out of the box.
Timergy is a scheduling poll service (like Doodle or When2Meet). You create a poll with time slot options, share it with participants, everyone votes on their availability, and you pick the best time.
Add to your MCP config (~/.claude/claude_desktop_config.json or project .mcp.json):
{
"mcpServers": {
"timergy": {
"command": "npx",
"args": ["@timergy/mcp"]
}
}
}
Then just ask:
"Create a poll for dinner next Friday or Saturday evening"
smithery mcp add timergy/timergy
Or connect directly via https://timergy--timergy.run.tools
Any MCP-compatible client can use this server. Supports stdio (local) and Streamable HTTP (remote at https://api.timergy.com/mcp).
create_pollCreate a scheduling poll with time slot options.
| Parameter | Type | Required | Description |
|---|---|---|---|
title | string | yes | Poll title |
options | array | yes | Time slots ({start, end} in ISO 8601 with timezone) |
description | string | no | Poll description |
deadline | string | no | Voting deadline (ISO 8601) |
location | string | no | Event location |
creatorName | string | no | Name shown as poll creator |
"Create a poll called 'Team Lunch' with slots on Monday 12-13 and Tuesday 12-13"
Returns: poll URL (to share), passphrase (for admin access), option IDs.
get_pollGet poll details and time slot options (no votes). Use this to retrieve option IDs before voting or finalizing.
| Parameter | Type | Required | Description |
|---|---|---|---|
pollId | string | yes | Poll UUID |
"Show me the details of poll abc-123"
vote_on_pollSubmit votes on a poll. Each vote maps a time slot to yes/maybe/no.
| Parameter | Type | Required | Description |
|---|---|---|---|
pollId | string | yes | Poll UUID |
voterName | string | yes | Name of the voter |
voterEmail | string | no | Voter email (for notifications) |
votes | array | yes | {optionId, availability} where availability is yes/maybe/no |
"Vote 'yes' for Monday and 'no' for Tuesday on poll abc-123 as Max"
get_resultsSee who voted and which time slots are most popular.
| Parameter | Type | Required | Description |
|---|---|---|---|
pollId | string | yes | Poll UUID |
"Show me the results for poll abc-123"
finalize_pollLock in the winning time slot. Notifies participants who provided an email.
| Parameter | Type | Required | Description |
|---|---|---|---|
pollId | string | yes | Poll UUID |
optionId | string | yes | Winning time slot UUID |
passphrase | string | no | Admin passphrase (auto-remembered from create_poll) |
"Finalize poll abc-123 with the Monday slot"
1. create_poll -> Get poll URL + passphrase
2. Share URL -> Send to participants
3. get_results -> See who voted yes/maybe/no
4. finalize_poll -> Pick the best time, lock it in
The passphrase from step 1 is automatically remembered for step 4 within the same session.
The MCP server calls the Timergy Open API under the hood. You can also use the API directly:
| Method | Endpoint | Description |
|---|---|---|
POST | /api/open/polls | Create a poll |
GET | /api/open/polls/:id | Get poll details |
GET | /api/open/polls/:id/options | Get time slots |
GET | /api/open/polls/:id/results | Get vote results |
POST | /api/open/polls/:id/vote | Submit votes |
POST | /api/open/polls/:id/admin-token | Get admin token |
POST | /api/open/polls/:id/finalize | Finalize poll |
Base URL: https://api.timergy.com
OpenAPI spec: https://api.timergy.com/api/open/openapi.json
| Environment Variable | Default | Description |
|---|---|---|
TIMERGY_API_URL | https://api.timergy.com | API base URL |
For local development:
{
"mcpServers": {
"timergy": {
"command": "npx",
"args": ["@timergy/mcp"],
"env": { "TIMERGY_API_URL": "http://localhost:4000" }
}
}
}
| Action | Limit |
|---|---|
| Create poll | 5 per hour |
| Vote | 20 per minute |
| Get poll/results | 60 per minute |
| Admin token | 5 per 10 minutes |
| Finalize | 3 per hour |
MIT
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y @timergy/mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-dockerdiscordcontrol-timergy": {
"command": "npx",
"args": [
"-y",
"@timergy/mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup reference@timergy/mcpnpmTimergy works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.