Skip to main content
Glama

SuzyQ MCP Server

An MCP (Model Context Protocol) server to interact with the SuzyQ chatbot directly from Cursor IDE.

What is this?

This server allows you to use SuzyQ (your research co-pilot) directly from Cursor using the MCP protocol. You can ask questions about surveys, missions, actions, data analysis, and more — without leaving your IDE.

Related MCP server: Cursor DB MCP Server

Features

  • Chat with SuzyQ: Send messages and receive responses from the chatbot

  • Conversation History: Maintains context across your conversations

  • Multiple Conversations: Support for multiple active conversations

Installation

1. Install dependencies

cd mcp-server-suzyq
npm install

Or use the installation script:

./install.sh

2. Configure in Cursor

Edit your Cursor MCP configuration file (Settings > MCP Servers) or directly edit the configuration file at:

macOS: ~/.cursor/mcp.json

Linux: ~/.config/cursor/mcp.json

Add the following configuration:

{
  "mcpServers": {
    "suzyq": {
      "command": "node",
      "args": ["/path/to/mcp-server-suzyq/index.js"]
    }
  }
}

Important! Replace /path/to/ with the actual absolute path to the project.

3. Restart Cursor

Close and reopen Cursor to load the new MCP server.

Usage

Once configured, you can use the following tools in your conversations with Claude in Cursor:

ask_suzyq

Send a message to SuzyQ and receive a response.

Example usage in Cursor:

"Ask SuzyQ how to create a new mission"
"Ask SuzyQ about data cleaning best practices"

Parameters:

  • message (required): The message to send to SuzyQ

  • conversation_id (optional): Conversation ID to continue a previous conversation

new_suzyq_conversation

Start a new conversation with SuzyQ.

Example:

"Start a new conversation with SuzyQ"

get_suzyq_conversation_history

Get the conversation history for a specific conversation.

Parameters:

  • conversation_id (required): The conversation ID to retrieve history for

Example Prompts

Here are some examples of how you can interact with SuzyQ from Cursor:

  1. General questions:

    • "Ask SuzyQ: How do I create a survey with skip logic?"

    • "Ask SuzyQ about quota management best practices"

  2. Continue conversations:

    • "Continue conversation conv_123456 asking about data cleaning"

  3. Code analysis:

    • "Ask SuzyQ how we can improve the quotas component"

Architecture

The MCP server acts as a bridge between Cursor and the Chatbase API:

Cursor <-> MCP Server <-> Chatbase API <-> SuzyQ
  • Chatbot ID: TujsCRqvQAdt7loeL2b9N

  • API Endpoint: https://www.chatbase.co/api/chat/[chatbotId]

Troubleshooting

Server doesn't appear in Cursor

  1. Verify the path in the configuration is absolute and correct

  2. Check that Node.js is installed (node --version)

  3. Make sure dependencies are installed (npm install)

  4. Completely restart Cursor

Error sending messages

  1. Check your internet connection

  2. Verify the chatbot ID is correct

  3. Check the server logs in the Cursor console

How to view logs?

MCP server logs appear in Cursor's debug output. To view them:

  1. Open the command palette (Cmd/Ctrl + Shift + P)

  2. Search for "Developer: Toggle Developer Tools"

  3. Go to the "Console" tab

Development

To modify the server:

  1. Edit index.js

  2. Restart Cursor to load the changes

Notes

  • Conversations are stored in memory and will be lost when the server restarts

  • The server uses the public Chatbase API, no special authentication required

  • User-specific context (user_id, brand_id, etc.) is not included in this basic version

Roadmap

  • Persist conversations to disk

  • Support for user context (user_id, brand_id)

  • Integration with Azure Functions context hash

  • Support for streaming responses

License

MIT

Available Tools

3 tools
ask_suzyqB

Send a message to SuzyQ chatbot and get a response. SuzyQ is your research co-pilot that can help you with questions about surveys, missions, actions, data analysis, and more within the Suzy platform.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesThe message to send to SuzyQ
conversation_idNoOptional conversation ID to continue a previous conversation. If not provided, a new conversation will be started.

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of explaining behavior. It accurately describes the send-and-receive interaction, but it does not disclose that omitting conversation_id starts a new conversation or any other side effects. The behavior is not misleading, but it is minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no fluff. The first sentence front-loads the action, and the second provides useful context about SuzyQ's capabilities. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter tool, the description covers the core purpose and scope. However, it does not explain how it relates to the sibling conversation-management tools, and without an output schema it leaves response expectations vague. It is adequate but has clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add any meaning beyond the schema for the message or conversation_id parameters; it relies entirely on the structured field descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action ('Send a message to SuzyQ chatbot and get a response') and names the resource (SuzyQ). It is easy to understand what the tool does, though it does not explicitly contrast it with sibling tools like new_suzyq_conversation or get_suzyq_conversation_history.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus the sibling tools. The optional conversation_id in the schema hints at continuing vs. starting a conversation, but the description itself gives no usage context, exclusions, or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_suzyq_conversation_historyB

Get the conversation history for a specific conversation with SuzyQ.

ParametersJSON Schema
NameRequiredDescriptionDefault
conversation_idYesThe conversation ID to retrieve history for

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure, yet it only restates the surface-level action. It does not confirm the read-only nature of the operation, describe the return format or ordering of the history, or indicate any limits, pagination behavior, or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single 12-word sentence with no filler; the action verb and object are front-loaded and every word carries meaning. The size is appropriate for a simple single-parameter retrieval tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter read with full schema coverage, the description is minimally viable. However, with no output schema and no annotations, it leaves unstated what the returned history actually looks like (message list, plain text, timestamps) and provides no usage context to help the agent decide when to invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents conversation_id as 'The conversation ID to retrieve history for'. The description adds no parameter-level meaning beyond the schema, which maps to the baseline 3 for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Get'), a concrete resource ('conversation history'), and a clear scope ('for a specific conversation with SuzyQ'). It is internally clear and unambiguous, but it does not explicitly distinguish itself from its siblings ask_suzyq and new_suzyq_conversation, relying on the tool name for that differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to retrieve history versus asking SuzyQ a question or starting a new conversation. The agent must infer usage from the tool name alone, with no stated prerequisites (e.g., that the conversation already exists) and no mention of when this tool is the right choice among the siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

new_suzyq_conversationA

Start a new conversation with SuzyQ. This will clear the current conversation history and start fresh.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden, and it clearly discloses the important side effect: 'This will clear the current conversation history and start fresh.' This is essential behavioral information that goes beyond the tool name and meaningfully warns the agent about the destructive reset.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The primary action is stated first, followed by the critical side effect. Every word contributes meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with no output schema and no annotations, the description provides all essential context: what the tool does and the irreversible impact on conversation history. Nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the schema already covers everything. With no parameters, the description need not explain parameter details, and the baseline score of 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Start a new conversation with SuzyQ') and the resource affected ('current conversation history'). It differentiates from siblings by specifying that this operation clears history and starts fresh, which is distinct from asking a question or retrieving history.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool: when a fresh conversation is needed and the current history should be discarded. However, it does not explicitly contrast with sibling tools like ask_suzyq or get_suzyq_conversation_history, nor does it state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updatesv1.0.0
    • First observedask_suzyq
    • First observedget_suzyq_conversation_history
    • First observednew_suzyq_conversation

TDQS

A3.8/5.0

Scored across 3 tools

Disambiguation5/5

Each tool serves a distinct, non-overlapping function: sending a message, starting a fresh conversation, and retrieving history. There is no ambiguity about which tool to invoke for a given action.

Naming Consistency5/5

All tool names follow a clear verb_suzyq_noun snake_case pattern: ask_suzyq, new_suzyq_conversation, get_suzyq_conversation_history. Naming is predictable and easy to learn.

Tool Count5/5

Three tools is an appropriate, minimal set for the server's stated purpose of interacting with a SuzyQ chatbot session. Each tool is meaningful and there is no bloat or obviously missing core function.

Completeness4/5

The core lifecycle of a chatbot session is covered: start, ask, and retrieve history. Minor gaps like explicitly deleting a conversation or listing past conversations exist, but they are not essential to the primary workflow.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers