Endpoint
type: "http" or transport: "http" depending on the client.
Authentication
Send your SkillDiscs API key as a bearer token:Quick Setup
Claude Code
Claude Code can connect directly to remote HTTP MCP servers.JSON MCP Config
Use this shape for clients that read.mcp.json, ~/.claude.json, or a similar MCP config file:
Claude Agent SDK
When using an SDK that accepts MCP servers programmatically, pass the same HTTP endpoint and authorization header:Tools
All tools return MCP
text content whose text value is formatted JSON.
Discovery ladder
An agent with no screen — a voice agent especially — cannot start withsearch_knowledge, because it does not yet know what the library contains.
The three discovery tiers are meant to be walked in order:
list_topics and browse_topic are both plain indexed reads over data that
already exists (categories, AI tags, concept labels). Neither makes an AI call.
browse_topic only pays for an embedding when the topic matches nothing
lexically, so the common path stays fast enough for a spoken turn.
list_topics
The broad map of the library. Call this before anything else when the user asks
what is available.
Input
Output
topic is the stable category id (use it for list_disks.category); label is
the display string. subtopics are the AI tags that occur most often inside
that topic — these are the specific names an agent can say out loud.
Disks whose original was deleted by their owner are excluded: they are
placeholders with no title, category or content.
browse_topic
Resolve one plain-language topic name to the Disks about it. Resolution is
tiered, and the tier used is reported in resolved_as:
Input
Output
matched_on says why each Disk is in the list, so an agent can justify the
answer instead of asserting relevance. related_subtopics are the sibling tags
of the matched set with the query term removed — the next thing to offer when
the user wants to narrow down.
browse_topic returns metadata only. It never returns source text, so it is
safe to call on any Disk regardless of visibility.
title and summary are returned as plain speakable text: markdown syntax
is stripped (link text is kept, the URL dropped) and the hard line breaks that
Disk titles carry for card layout are collapsed. Accents and umlauts are left
untouched. The same applies to example_titles in list_topics. A voice agent
can read these fields aloud without any cleanup pass.
search_knowledge
Semantic search over owned Disk sections.
Input
Output
The tool returns a JSON array of search hits.snippet instead of section_text:
Search is currently scoped to owned Disks. Saved Disks can be listed with
list_disks and read with get_disk, but semantic search results come from the authenticated user’s own indexed sections.get_disk
Read one Disk by UUID or public_id.
Input
Output
The tool returns one Disk object.text and sections[].text are conditional:
If the Disk is not accessible to the API key, the tool returns JSON text like:
list_disks
List Disks available to the authenticated API key.
Input
Output
The tool returns a list response:Redaction
MCP uses the same redaction policy as the REST API:- Owner-private Disk access can include full source text.
- Owner-published and saved Disk access returns redacted, AI-derived fields.
- Search hits include either
section_textorsnippet.
redacted before assuming verbatim source text is present.
Errors
Authentication and rate-limit errors are returned by the HTTP endpoint before MCP tool execution.Best Practices
- Start with
list_topicswhen the agent has no idea what the library contains — do not guess a search query. - Use
browse_topicwhen the user names a subject; usesearch_knowledgewhen the user asks a question. - Use
get_diskwhen the agent already has a Disk UUID or public ID. - Use
list_disksfor inventory questions (counts, what is still private), not for subject exploration. - For voice agents:
list_topics→browse_topicare the two calls cheap enough to run inside a spoken turn. Defersearch_knowledgeuntil the user has picked a Disk or asked a real question. - Treat all returned content as user-scoped and private to the API key holder.
- Check
redactedand prefersection_text ?? snippetin agent prompts.