# Tally — how to use (mcp.ai)

Connect your Tally account and use 18 tools for forms and surveys straight from your AI agent. Connect with your own API key. Tally is a form-building platform that allows users to create forms, collect responses, and integrate with various tools and services.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_tally?ms=1787293440000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `tally_create_form`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/tally`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/tally/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/tally/create/form` — Tool to create a new form. Use after preparing block definitions and optional settings.
  - body: { title?: string, blocks: object[], status: string, settings?: object, templateId?: string, workspaceId?: string }
- `POST https://api.mcp.ai/api/tally/create/webhook` — Tool to create a new webhook for a form. Use after confirming you have the form ID and the callback URL.
  - body: { url: string, formId: string, eventTypes?: string[], httpHeaders?: object[], signingSecret?: string, externalSubscriber?: string }
- `POST https://api.mcp.ai/api/tally/delete/form` — Tool to delete a specific form identified by its ID. Use after confirming the form should be permanently removed.
  - body: { formId: string }
- `POST https://api.mcp.ai/api/tally/delete/webhook` — Tool to delete a specific webhook. Use after confirming the webhook ID.
  - body: { webhookId: string }
- `POST https://api.mcp.ai/api/tally/get/form/details` — Tool to retrieve details of a specific form. Use when you need comprehensive form metadata by ID. Use after confirming the form ID to fetch its full configuration, blocks, and stats.
  - body: { formId: string }
- `POST https://api.mcp.ai/api/tally/get/form/responses` — Tool to retrieve the responses of a specific form. Use after confirming the form ID and when paginated data is needed.
  - body: { page?: integer, limit?: integer, formId: string }
- `POST https://api.mcp.ai/api/tally/get/user/info` — Tool to retrieve information about the authenticated user. Use when you need to confirm account-level details before proceeding. Returns account/workspace context only — not form-level access; follow 
- `POST https://api.mcp.ai/api/tally/get/webhook/events` — Tool to list events associated with a specific webhook. Use when you need to inspect delivery history after creating or listing a webhook.
  - body: { page?: integer, webhookId: string }
- `POST https://api.mcp.ai/api/tally/get/workspace` — Tool to retrieve a single workspace by its ID with associated members. Use when you need to get detailed information about a specific workspace.
  - body: { workspaceId: string }
- `POST https://api.mcp.ai/api/tally/list/form/questions` — Tool to retrieve all questions from a specific form. Use when you need to list all questions and their structure after obtaining the form ID.
  - body: { formId: string }
- `POST https://api.mcp.ai/api/tally/list/forms` — Tool to retrieve a paginated list of forms. Use when you need to list all forms accessible to the authenticated user.
  - body: { page?: integer }
- `POST https://api.mcp.ai/api/tally/list/organization/invites` — Tool to retrieve all pending invites in your organization. Use when you need to view or manage organization invitation status.
  - body: { organizationId: string }
- `POST https://api.mcp.ai/api/tally/list/organization/users` — Tool to retrieve all users in an organization. Use when you need to list organization members or check user permissions.
  - body: { organizationId: string }
- `POST https://api.mcp.ai/api/tally/list/webhooks` — Tool to retrieve a paginated list of configured webhooks. Use when you need a full listing of webhooks across your accessible forms and workspaces.
  - body: { page?: integer, limit?: integer }
- `POST https://api.mcp.ai/api/tally/list/workspaces` — Tool to retrieve a paginated list of workspaces. Use when you need to browse workspaces accessible to the authenticated user.
  - body: { page?: integer }
- `POST https://api.mcp.ai/api/tally/update/form` — Tool to update form details. Use after confirming the form exists and obtaining its ID.
  - body: { name?: string, blocks?: object[], formId: string, status?: string, settings?: object }
- `POST https://api.mcp.ai/api/tally/update/webhook` — Tool to update an existing webhook configuration. Use when you need to modify webhook settings such as URL, event types, or enable/disable status.
  - body: { url: string, formId: string, isEnabled: boolean, webhookId: string, eventTypes: string[], httpHeaders?: object[], signingSecret?: string }
- `POST https://api.mcp.ai/api/tally/update/workspace` — Tool to update the details of a specific workspace identified by its ID. Use when you need to rename a workspace after confirming the workspace ID.
  - body: { name?: string, workspaceId: string }

## Example prompts
- "What can I do in Tally?"
- "Show me a summary of my Tally account"

## More
- Page: https://mcp.ai/tally
- Agent spec (llms.txt): https://mcp.ai/tally/llms.txt
- Postman collection: https://mcp.ai/tally/postman.json
