threadline-core
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| THREADLINE_DATA_DIR | No | Directory for the SQLite database and data files. | ~/.threadline |
| THREADLINE_API_TOKEN | No | Bearer token for REST API authentication. If set, all REST endpoints require Authorization: Bearer <token>. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| start_sessionA | Call at the BEGINNING of every work session on a project. Returns a Returnsdict with keys: |
| end_sessionB | Call at the END of a work session to close it cleanly. Records a Returnsdict with keys: |
| log_agent_eventA | Report a work event to Threadline — call this as you work. Parse and ingest a single WHEN TO CALL
EVENT SHAPE (compact example)Returnsdict with keys: |
| get_project_stateA | Return the raw governed state for a project. Returns durable lifecycle records only — no synthesis, no compiled memory, no LLM output, no ranking. Includes: objective, open loops, active decisions, known traps, confirmed gaps and caveats, evidence IDs, recent session metadata. Returnsdict — the full RaisesLookupError if the project does not exist (surfaced as an error dict). |
| get_open_loopsA | Return all open loops for a project, oldest first. Open loops are deferred threads — things noticed but not finished. Oldest-first because the longest-waiting item is most likely blocking. Returnslist of dicts with keys: |
| mark_open_loop_resolvedA | Mark an open loop resolved — GATED: requires admissible evidence. Evidence refs must be Returnsdict with keys: |
| get_decisionsA | Return the LIVE decisions for a project, newest first. Live = status in (active, accepted, validated). Decisions marked
incorrect/reverted are returned by Returnslist of dicts with keys: |
| get_decisionA | Return one decision + its outcome detail, or an error dict if not found. Returnsdict with keys: |
| mark_decision_outcomeA | Record the real-world OUTCOME of a past decision.
HARD RULE: marking Returnsdict with keys: |
| get_known_trapsA | Return decisions proven wrong on this project + the corrected rule. Read these BEFORE acting so you do not repeat a known mistake. Newest first; each carries the corrected_rule (the lesson), severity, and evidence_refs. Returnslist of dicts with keys: |
| propose_findingA | Propose a gap or caveat finding. PROPOSING IS FREE — a proposed finding is never surfaced in the trusted context bundle. It is a candidate until confirmed with evidence.
Fingerprint dedup: re-proposing an active finding returns the existing id (no duplicate write). Returnsdict with keys: |
| confirm_findingA | Confirm a proposed finding so it enters the trusted bundle. GATED: requires Returnsdict with keys: |
| resolve_findingB | Mark a finding resolved (its resolution_condition was met). GATED exactly like Returnsdict with keys: |
| dismiss_findingC | Dismiss a finding as invalid/irrelevant. GATED exactly like Returnsdict with keys: |
| get_evidenceA | Resolve evidence refs ( Returns bounded snippets only — never full transcript bodies. Bad refs
are reported in Returnsdict with keys: |
| search_memoryA | Full-text search across all stored memory. Searches events, decisions, open loops, daily notes, and compiled context fragments. Results are ranked by BM25 relevance. Parametersquery: Natural-language search string. project_key: When provided, restricts results to that project. limit: Maximum results to return (clamped to 50 server-side). Returnslist of dicts with keys: |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/richardoros/threadline-core'
If you have feedback or need assistance with the MCP directory API, please join our Discord server