MCP Server

Support Station exposes a remote MCP server for assistants and automation tools that need to work on behalf of a signed-in Support Station user. MCP clients authenticate with OAuth, then call tools scoped to the user's organization.

Endpoints

  • Name
    /mcp
    Type
    POST
    Description

    Streamable HTTP MCP endpoint. Send MCP JSON-RPC requests here after OAuth authorization.

  • Name
    /.well-known/oauth-authorization-server
    Type
    GET
    Description

    OAuth authorization server metadata used by MCP clients during discovery.

  • Name
    /.well-known/oauth-protected-resource
    Type
    GET
    Description

    Protected resource metadata advertised in WWW-Authenticate responses.

Authentication

MCP clients should use OAuth discovery rather than hard-coding authorization and token URLs.

Discover OAuth metadata

curl https://api.supportstation.io/.well-known/oauth-authorization-server

When a request to /mcp does not include a valid bearer token, Support Station returns 401 Unauthorized with a WWW-Authenticate header pointing to the protected resource metadata endpoint.

Fresh OAuth authorizations redirect to a Support Station consent screen and require you to explicitly authorize or deny the MCP client. mcp-remote stores OAuth credentials locally in ~/.mcp-auth. If a client connects without opening a browser, it is usually reusing a cached token for the same server URL. Delete the matching cache entry, or clear ~/.mcp-auth, to force a new login and consent prompt.

Tool Response Format

Tools return MCP text content containing formatted JSON:

{
  "content": [
    {
      "type": "text",
      "text": "{ ... }"
    }
  ]
}

Knowledge Base Tools

  • Name
    get_current_account
    Description

    Show the Support Station user, organization ID, organization slug, OAuth client ID, and granted scopes for the current MCP session.

  • Name
    list_kb_articles
    Description

    List knowledge base articles. Accepts page, limit, status, categoryId, and search.

  • Name
    search_kb_articles
    Description

    Search knowledge base articles by title or body. Accepts query and optional limit.

  • Name
    get_kb_article
    Description

    Fetch one knowledge base article by id.

  • Name
    create_kb_article
    Description

    Create an article with title, slug, body, and optional publishing metadata. Body must be a sanitized HTML fragment, not Markdown.

  • Name
    update_kb_article
    Description

    Update an existing article by id. If body is provided, it must be a sanitized HTML fragment, not Markdown.

  • Name
    publish_kb_article
    Description

    Publish an article by id, making it visible in the public knowledge base.

  • Name
    unpublish_kb_article
    Description

    Unpublish an article by id, returning it to draft status and removing it from the public knowledge base.

  • Name
    delete_kb_article
    Description
    Delete an article by id.

Knowledge Base Category Tools

  • Name
    list_kb_categories
    Description

    List knowledge base categories. Accepts optional parentId. Use parentId null for root categories or omit parentId to list all categories.

  • Name
    get_kb_category
    Description

    Fetch one knowledge base category by id.

  • Name
    create_kb_category
    Description

    Create a category with name, slug, and optional description, icon, parentId, and order.

  • Name
    update_kb_category
    Description

    Update a category name, slug, description, icon, parentId, or order.

  • Name
    delete_kb_category
    Description

    Delete a category by id. Categories with articles or subcategories must be emptied first.

Ticket Tools

  • Name
    list_tickets
    Description

    List tickets. Accepts pagination, status, priority, assignment, team, tag, customer, search, and sort filters.

  • Name
    search_tickets
    Description

    Search tickets by subject, ticket number, customer name or email, and ticket message content.

  • Name
    get_ticket
    Description

    Fetch one ticket by id with customer, assignment, tags, messages, activities, and active CC recipients.

  • Name
    create_ticket
    Description

    Create a ticket for an existing customer with an initial message. Content must be a sanitized HTML fragment, not Markdown.

  • Name
    list_ticket_messages
    Description

    List the message thread for one ticket, including customer messages, team replies, internal notes, and attachment metadata.

  • Name
    reply_to_ticket
    Description

    Create a customer-visible reply. This uses normal Support Station reply behavior, including email delivery, threading, status updates, and webhooks.

  • Name
    create_ticket_internal_note
    Description

    Create a private internal note on a ticket.

  • Name
    update_ticket_status
    Description
    Update a ticket status.
  • Name
    update_ticket_priority
    Description
    Update a ticket priority.
  • Name
    assign_ticket
    Description

    Assign a ticket to a team member by user id, or pass null to unassign it.

  • Name
    assign_ticket_team
    Description

    Assign a ticket to a team by team id, or pass null to remove the team assignment.

Customer Profile Tools

  • Name
    get_customer_profile
    Description

    Build a structured activity profile for a customer or external organization. Provide customerId, email, externalUserId, or externalOrganizationId. The response includes matched customers, ticket rollups, ticket messages, widget chats, AI conversations, and a recent timeline. This tool returns structured data, not an AI-generated narrative.

AI Conversation Tools

  • Name
    list_ai_conversations
    Description

    List KB and widget AI conversations. Accepts pagination, source, escalated, search, startDate, and endDate filters.

  • Name
    search_ai_conversations
    Description

    Search KB and widget AI conversations by customer question or AI answer text.

  • Name
    get_ai_conversation
    Description

    Fetch one KB or widget AI conversation by id and source.

Internal Knowledge Tools

  • Name
    list_internal_knowledge
    Description

    List internal knowledge sources. Accepts optional type and status filters.

  • Name
    search_internal_knowledge
    Description

    Search internal knowledge source names, URLs, raw content, and chunks. Accepts query and optional limit.

  • Name
    get_internal_knowledge
    Description

    Fetch one internal knowledge source and preview chunks by id.

  • Name
    create_text_internal_knowledge
    Description

    Create a text source with name and content. Content can be plain text or Markdown-like source material.

  • Name
    update_text_internal_knowledge
    Description

    Update a text source by id. Content can be plain text or Markdown-like source material.

  • Name
    create_url_internal_knowledge
    Description

    Create a URL source with url and optional crawlSchedule.

  • Name
    update_url_internal_knowledge_schedule
    Description

    Update a URL source crawl schedule by id.

  • Name
    create_document_internal_knowledge
    Description

    Create a document source from an existing fileUploadId.

  • Name
    delete_internal_knowledge
    Description

    Delete an internal knowledge source by id.

Example Tool Call

After OAuth completes, initialize the MCP session with your client, then call tools through the MCP transport.

Search knowledge base articles

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "search_kb_articles",
    "arguments": {
      "query": "refund policy",
      "limit": 5
    }
  }
}

Was this page helpful?