MidOS Research Protocol
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| Authorization | No | API key for Dev/Ops tier access. Should be in the format 'Bearer midos_your_key_here'. |
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
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tasks | {
"list": {},
"cancel": {},
"requests": {
"tools": {
"call": {}
},
"prompts": {
"get": {}
},
"resources": {
"read": {}
}
}
} |
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_knowledgeC | Search the Midos knowledge base for relevant information. Args: query: Search query (keywords or topic) max_results: Maximum results to return (default: 5) |
| get_skillB | Get a specific skill/capability document by name. Args: name: Skill name (e.g., 'RAG_SYSTEMS_2026_SOTA') |
| list_skillsA | List all available skills/capabilities. Args: filter: Optional filter for skill names stack: Optional stack filter, comma-separated (e.g. 'python,react'). Skills with matching compatibility.json are prioritized. |
| get_protocolC | Get a specific protocol document. Args: name: Protocol name (e.g., 'PROTOCOL_NEURAL_LINK') |
| get_eurekaB | Get a specific EUREKA breakthrough document. Args: name: EUREKA name (e.g., 'EUREKA_CACHE_SEMANTICA' or 'ATOM_001') |
| get_truthC | Get a specific truth patch document. Args: name: Truth patch name (e.g., 'AGENT_MITIGATIONS_CONTEXT_OVERFLOW') |
| hive_statusB | Get current status of the Midos hive system. |
| semantic_searchA | Semantic search using LanceDB vectors (Gemini embeddings). More intelligent than keyword search. Args: query: Natural language query (e.g., 'how to implement RAG pipelines') top_k: Number of results (default: 5) stack: Optional stack filter, comma-separated (e.g. 'python,fastapi'). Results mentioning these are boosted. |
| research_youtubeB | Queue a YouTube video for research. Midos will transcribe and extract insights. Args: url: YouTube URL to research priority: Priority: 'high', 'normal', 'low' |
| memory_statsA | Get statistics about the Midos memory system (LanceDB chunks, cache status). |
| pool_signalC | Signal an action to the multi-instance coordination pool. Args: action: Action type: 'completed', 'blocked', 'claimed', 'signaling' topic: Topic/task name summary: Brief description of the action affects: Files/resources affected (optional) |
| pool_statusB | Get multi-instance coordination pool status and recent activity. |
| episodic_searchA | Search episodic memory for similar past experiences using vector similarity. Args: query: Search query describing the experience/task limit: Maximum results (default: 5) |
| episodic_storeA | Store a new episodic memory/reflection for future learning. Args: task_type: Type of task: CODE, RESEARCH, DEBUG, REVIEW input_preview: Brief description of the input/context success: Whether the task was successful |
| chunk_codeA | Parse code file into semantic chunks (functions, classes, methods) for better RAG retrieval. Args: file_path: Path to code file to chunk |
| agent_handshakeA | Personalized agent onboarding. Declare your environment and get optimal config. Call this FIRST when connecting to MidOS. Pass as much info as you know. Unknown fields can be left empty -- you'll get sensible defaults. Args: model: Your model ID (e.g. 'claude-opus-4-6', 'gemini-2.5-pro', 'opus') context_window: Your context window in tokens (e.g. 200000). 0 = auto-detect from model. client: Your CLI/IDE (e.g. 'claude-code', 'cursor', 'windsurf', 'cline') languages: Comma-separated languages (e.g. 'python,typescript') frameworks: Comma-separated frameworks (e.g. 'fastapi,react') platform: Your OS (e.g. 'windows', 'linux', 'macos') project_goal: What you're working on (e.g. 'manga engine with SVG rendering') |
| project_statusA | Live MidOS system status + quick-start guide for your agent. Call this anytime to get:
This is your /status command. Use it to orient yourself and teach your agent how to leverage MidOS. |
| agent_bootstrapA | [DEPRECATED -- use agent_handshake instead] Generic agent onboarding. Returns default config for unknown agents. |
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 18 tools
Multiple tools have overlapping purposes. 'get_eureka', 'get_protocol', 'get_skill', and 'get_truth' all retrieve named documents with minimal distinction. Status tools like 'hive_status', 'memory_stats', 'pool_status', and 'project_status' also overlap, with 'project_status' subsuming many others. Additionally, a deprecated 'agent_bootstrap' adds confusion.
Tool names are consistently in snake_case, but the pattern is mixed: some start with verbs (get_, list_, chunk_), others with nouns (agent_, episodic_, hive_). This inconsistency makes it harder for an agent to predict tool names, though they remain readable.
With 18 tools, the server is on the higher end of the recommended range. While each tool has a distinct function, the count feels slightly heavy for a research protocol, especially given the overlaps. It could be streamlined.
The server covers onboarding, memory, knowledge retrieval, status monitoring, and research queuing, but lacks write operations for many document types (e.g., no create/update for skills, eurekas, or protocols). The research queue only has an enqueue tool, with no management or listing beyond status.