DriftOS MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DRIFTOS_API_URL | No | The URL of the DriftOS backend API | http://localhost:3000 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| driftos_route_messageA | Route a message to the appropriate conversation branch using semantic drift detection. Returns one of three actions:
Args:
Returns: { "action": "BRANCH" | "STAY" | "ROUTE", "branchId": string, "branchTopic": string, "confidence": number, "isNewBranch": boolean } Example:
|
| driftos_get_contextA | Get assembled context for a conversation branch, including messages and facts from related branches. This is what you pass to an LLM instead of the entire conversation history. Returns only the relevant messages from the current branch plus accumulated facts. Args:
Returns: { "branchId": string, "branchTopic": string, "messages": [ { "role": "user" | "assistant", "content": string } ], "allFacts": [ { "branchTopic": string, "isCurrent": boolean, "facts": [{ "key": string, "value": string, "confidence": number }] } ] } Use this to build focused LLM context windows instead of dumping entire conversation history. |
| driftos_build_promptA | Build a ready-to-use prompt for LLM calls with context and facts. Args:
Returns: { "system": string, // Full system prompt with topic and facts "messages": [{ "role": string, "content": string }] // Conversation messages } Use this to get a complete prompt ready for OpenAI/Anthropic/etc API calls. |
| driftos_list_branchesA | List all branches in a conversation with their topics and message counts. Use this to understand the structure of a conversation and see what topics have been discussed. Args:
Returns: [ { "id": string, "topic": string, "messageCount": number, "isActive": boolean } ] |
| driftos_get_factsB | Get extracted facts from a specific branch. Args:
Returns: [{ "key": string, "value": string, "confidence": number }] |
| driftos_extract_factsA | Trigger fact extraction for a branch. Use when you want to explicitly extract facts from the current conversation state. Args:
Returns: { "facts": [{ "key": string, "value": string }] } |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 6 tools
Each tool has a clearly distinct purpose with no overlap: route_message handles message routing, list_branches lists branches, get_context assembles context, build_prompt constructs prompts, get_facts retrieves facts, and extract_facts triggers fact extraction. The descriptions clearly differentiate their functions, making tool selection unambiguous.
All tools follow a consistent verb_noun naming pattern with the 'driftos_' prefix (e.g., driftos_route_message, driftos_list_branches). The structure is uniform throughout, using snake_case consistently without any deviations or mixed conventions.
With 6 tools, this server is well-scoped for managing conversation branches, context, and facts in a drift detection system. Each tool serves a specific, necessary function (routing, listing, context assembly, prompt building, fact retrieval, and fact extraction), and none feel redundant or missing for the domain.
The tool set provides complete coverage for the conversation drift management domain: routing messages, listing branches, getting context, building prompts, and handling facts (both retrieval and extraction). There are no obvious gaps; agents can perform all core operations from routing to LLM integration without dead ends.