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.
MCP access uses the signed-in Support Station user account. Tools only operate inside the organization connected to that user.
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
}
}
}