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.

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?