Connect Claude, Cursor, and other MCP clients to Sayify forms, responses, cases, notes, tasks, and workspace context.
Agent Connector (MCP)
Agent Connector lets an MCP-compatible AI client work with your Sayify workspace through a scoped, auditable connection. Use it to inspect forms, summarize existing response insights, triage cases, create follow-up tasks, or add case notes without giving an agent full user access.
The connector is available on Starter, Pro, Business, and Enterprise plans.
What You Can Connect
Use any MCP client that supports remote Streamable HTTP servers and custom authorization headers.
Common examples include:
- Claude Desktop or Claude-compatible clients with remote MCP server support
- Cursor and other AI coding assistants with MCP configuration
- Internal agent runners that can send
Authorization: Bearer ...headers
Sayify's public MCP endpoint is:
https://mcp.sayify.pro/mcp
Requirements
| Requirement | Details |
|---|---|
| Plan | Starter, Pro, Business, or Enterprise |
| Sayify role | Workspace owner or admin |
| MCP client | Must support remote HTTP MCP servers |
| Authentication | Bearer token generated from Sayify API Management |
| Network | The client must be able to reach https://mcp.sayify.pro/mcp |
Only workspace owners and admins can create, view, or revoke MCP tokens.
Create An MCP Token
- Open Agent Connector in Sayify.
- Click Create MCP Token.
- Enter a token name, such as
Support triage agent. - Choose an expiry:
30 days90 days180 days1 yearNo expiry
- Choose Form access:
- All forms to allow the token to access every form in the workspace.
- Selected forms to limit the token to one or more specific forms.
- Choose the scopes the agent needs.
- Click Create Token.
- Copy the token immediately. The full token is shown only once.
Token format:
mcp_live_<secret>
Sayify stores only a hash of the secret. If you lose the token, revoke it and create a new one.
MCP Client Configuration
Use this configuration shape in clients that support JSON MCP server config:
{
"mcpServers": {
"sayify": {
"url": "https://mcp.sayify.pro/mcp",
"headers": {
"Authorization": "Bearer YOUR_SAYIFY_MCP_TOKEN"
}
}
}
}
Replace YOUR_SAYIFY_MCP_TOKEN with the token copied from Sayify.
Some clients use a different config file location or naming convention. The important parts are:
- Server URL:
https://mcp.sayify.pro/mcp - Header name:
Authorization - Header value:
Bearer mcp_live_...
Recommended Scope Sets
Use the smallest scope set that fits the job.
| Use Case | Recommended Scopes |
|---|---|
| Read-only form discovery | forms:read |
| Review responses | forms:read, responses:read |
| Summarize response trends | forms:read, responses:read, responses:summarize |
| Triage support cases | forms:read, responses:read, cases:read |
| Add internal notes | cases:read, case_notes:write |
| Create follow-up tasks | forms:read, responses:read, cases:read, tasks:write |
| Manage case lifecycle | cases:read, cases:update |
Writable scopes should be granted only to trusted agents.
Scope Reference
| UI Label | Scope | Allows |
|---|---|---|
| Read forms | forms:read |
List and inspect forms the token can access |
| Read responses | responses:read |
Search and inspect response sessions |
| Summarize responses | responses:summarize |
Aggregate existing Sayify AI insights across responses |
| Read cases | cases:read |
Search and inspect inbox cases |
| Write case notes | case_notes:write |
Create internal notes on cases |
| Create tasks | tasks:write |
Create follow-up actions tied to a case, response, or form |
| Update case status | cases:update |
Update case status using valid Sayify lifecycle statuses |
Form Restrictions
When you choose Selected forms, the token can only access those forms and their linked responses or cases. You can select multiple forms.
Use form restrictions when:
- An agent supports only one team or workflow
- A contractor needs access to a limited data set
- You are testing a new agent and want a narrow blast radius
When you choose All forms, the token can access all forms in the workspace, subject to its scopes.
Available Tools
Tools are actions the MCP client can call.
| Tool | Purpose | Required Scope |
|---|---|---|
list_forms |
List workspace forms with status, slug, use case, response count, and created date. Supports search, status, use_case, and limit filters. |
forms:read |
get_form |
Get one form by UUID | forms:read |
search_responses |
Search response summaries by form, dates, status, urgency, sentiment, or text | responses:read |
get_response |
Get full response context, including answers, transcripts, insights, linked case, and extracted data | responses:read |
search_cases |
Search cases by status, priority, form, assignee, or text | cases:read |
get_case |
Get full case context, including notes, tasks, alerts, linked response, and AI fields | cases:read |
summarize_responses |
Aggregate existing Sayify AI insights into themes, notable responses, and next actions | responses:summarize |
create_case_note |
Add an internal note to a case | case_notes:write |
create_followup_task |
Create a follow-up task tied to a case, response, or form | tasks:write |
update_case_status |
Move a case to another valid Sayify status | cases:update |
summarize_responses does not call a new language model. It summarizes existing Sayify AI fields already stored on your responses and cases.
Tool Filters
Use filters to keep agent reads small and focused. Search/list tools default to limit: 20 and are capped at limit: 50.
| Tool | Filters |
|---|---|
list_forms |
search, status, use_case, limit |
search_responses |
form_id, date_from, date_to, status, urgency, sentiment, search, limit |
search_cases |
status, priority, form_id, assignee, search, limit |
Example list_forms arguments:
{
"search": "intake",
"status": "active",
"use_case": "client_intake",
"limit": 10
}
Example search_responses arguments:
{
"form_id": "FORM_UUID",
"date_from": "2026-06-01",
"date_to": "2026-06-26",
"urgency": "high",
"search": "pricing",
"limit": 10
}
Example search_cases arguments:
{
"status": "open",
"priority": "high",
"form_id": "FORM_UUID",
"search": "refund",
"limit": 10
}
Form restrictions still apply to all filtered reads. If a token is limited to selected forms, filters cannot expand access beyond those forms.
Available Resources
Resources are read-only URI targets the MCP client can request.
| Resource | Returns |
|---|---|
sayify://workspace/me |
Workspace and token context |
sayify://forms/{form_id} |
One form summary |
sayify://responses/{response_id} |
One response detail |
sayify://cases/{case_id} |
One case detail |
Available Prompts
Prompts provide reusable agent instructions for common Sayify workflows.
| Prompt | Best For |
|---|---|
summarize_intake_responses |
Summarizing a batch of intake submissions |
qualify_lead |
Evaluating a sales or client intake lead |
triage_support_case |
Prioritizing and routing a support case |
prepare_client_brief |
Creating a concise brief before follow-up |
Security Model
Agent Connector is intentionally scoped and auditable.
Sayify MCP V1 does not expose:
- Delete tools
- Raw SQL
- Arbitrary URL fetch
- Command execution
- Broad export tools
- Direct email sending
- Bulk case mutation
Every token is tied to one workspace. Tokens cannot cross workspace boundaries.
Every tool, resource, and prompt call is audit logged with operation name, result status, client metadata when available, IP address when available, and timestamp. Sensitive request fields such as note bodies and descriptions are redacted in audit arguments.
Revoke A Token
- Open Agent Connector.
- Locate the token.
- Click revoke.
Revoked tokens stop working immediately.
Audit Activity
The Recent Agent Activity table shows recent MCP operations for the workspace.
Use it to answer:
- Which agent called a tool?
- Which operation was attempted?
- Did the call succeed or fail?
- When did it happen?
For deeper investigation, revoke the token and create a narrower replacement.
Test The Connection
After adding the server config to your MCP client:
- Restart or reload the client.
- Open the client's MCP tools list.
- Confirm Sayify tools are visible.
- Run
list_forms. - Run
list_formswith a smalllimit, such as5, or asearchterm. - Run
search_responseswith a smalllimit, such as5.
If list_forms succeeds, authentication, plan access, and workspace routing are working.
Troubleshooting
| Symptom | Likely Cause | Fix |
|---|---|---|
401 Unauthorized |
Missing, malformed, expired, revoked, or incorrect token | Re-copy the token config or create a new token |
403 Forbidden |
Plan, role, scope, workspace, or form restriction blocked the action | Check plan, token scopes, and allowed forms |
| No forms returned | Token is restricted to forms with no matching data | Edit the allowed forms by creating a new token |
| Tool missing in client | Client did not reload MCP config | Restart the client and check config syntax |
| Write action fails | Token lacks a writable scope | Add only the needed write scope on a new token |
| Case status update fails | Invalid status for Sayify cases | Use one of the statuses shown by Sayify case data |
Best Practices
- Create one token per agent or client.
- Give every token a descriptive name.
- Prefer expiry dates over no-expiry tokens.
- Restrict tokens to specific forms when possible.
- Start read-only, then add write scopes only when needed.
- Revoke unused tokens.
- Review audit activity regularly.
Related Guides
- API Authentication - Manage Sayify API keys.
- API Intake - Send machine-to-machine intake data into Sayify.
- Inbox - Review cases, notes, tasks, and AI summaries.
- Integrations - Connect Sayify to Slack, Sheets, Zapier, and webhooks.