briefd
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BRIEFD_SOURCE | No | Knowledge repository: a git URL (https://…, git@…) or a directory. Optional for a smoke test; without it the server serves an empty index. | |
| BRIEFD_API_TOKEN | No | Bearer token for /mcp and /api. Empty means unauthenticated (only on trusted networks). | |
| BRIEFD_GIT_TOKEN | No | Token for private HTTPS git remotes. | |
| BRIEFD_FORGE_TYPE | No | github — opens a pull request for each propose_update. | |
| BRIEFD_FORGE_TOKEN | No | Forge API token with pull_requests:write. | |
| BRIEFD_SYNC_INTERVAL | No | How often the source is re-scanned; 0 disables polling. | 60s |
| BRIEFD_EMBEDDINGS_MODEL | No | Local model; all-MiniLM-L6-v2 is the English-only, faster alternative. | multilingual-e5-small |
| BRIEFD_DEFAULT_MAX_TOKENS | No | Default token budget for search_context and compile_bundle. | 2000 |
| BRIEFD_EMBEDDINGS_PROVIDER | No | local (pure-Go multilingual-e5-small, downloaded on first start), ollama, openai, or none for BM25-only. | local |
| BRIEFD_SYNC_WEBHOOK_SECRET | No | Enables POST /webhook/git (GitHub-style HMAC-SHA256) for immediate syncs. |
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 |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| compile_bundleA | Compile what the team's knowledge base says about a task into one context block within a token budget. Call it once at the start of a task, before code that rules, conventions or past decisions could govern; describe the task in a sentence, not keywords. Sections are deduplicated, ordered domain → conventions → project, each with a source line (path, heading, last-updated date, and a note when the code it governs changed later). Read-only, deterministic, cached: same task, scopes and budget give the same bundle_id and content. Never exceeds max_tokens; a too-small budget truncates the top section with a marker. Afterwards, report which sections helped via report_usage. |
| get_documentA | Return one knowledge document in full (title, tags, Markdown, last-updated date, and the documents it links to and is linked from) by the doc_path given in search or bundle results. Use it when a section is not enough, to follow a link, or before proposing an update. Read-only; not-found for unknown paths, forbidden outside the requested scopes. |
| list_scopesA | List the knowledge scopes this server holds — the shared 'domain' and 'conventions' scopes plus one 'projects/' per project — with document, section and token counts. Read-only, no input. Use it to discover the project scope to pass to search_context or compile_bundle; by default those search only the shared scopes. |
| propose_updateA | Propose a change to a knowledge document — fix an outdated rule, add a missing decision, create a document — for humans to review. Commits the complete new file to a git branch briefd/proposal- (and opens a pull request when a forge is configured); returns branch, commit and PR URL. Never changes what briefd serves until a human merges. Use it for knowledge that is wrong, stale ('code changed since' in bundles) or missing, not for scratch notes. Fails without a writable git source. |
| report_usageA | Record which sections of a compile_bundle result were actually useful for the task, by chunk_id. Optional, best called once after the task is done. An empty useful_chunk_ids list is meaningful: it marks the question as a knowledge gap for the people who maintain the repository. Stores feedback only; it does not change the current bundle or the ranking of this session. |
| search_contextA | Search the team's knowledge base (domain rules, conventions, decisions, project notes) and return the most relevant sections, ranked, within a token budget. Use it to look something up or see what exists; use compile_bundle when you want one context block for a task. Read-only. Each section carries its path, heading, scope, score and last-updated date; results never exceed max_tokens and say how many sections the budget omitted. |
| suggest_linksA | List links the knowledge base is missing: documents that mention another document by name without linking to it, and links whose target does not exist. Read-only. Use it when asked to tidy or connect the knowledge base, then fix the documents with propose_update (add [[wikilinks]] in the text or in a related: front-matter list). Suggestions a maintainer dismissed are left out. |
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 7 tools
Most tools are clearly distinct: get_document for full documents by path, list_scopes for discovery, propose_update for writing, suggest_links for maintenance, and report_usage for feedback. The only real overlap is between search_context and compile_bundle, which both return relevant sections with token budgets, though their descriptions give different intended use cases (lookup vs. task compilation).
All seven tools follow a consistent verb_noun snake_case pattern: get_document, compile_bundle, list_scopes, search_context, suggest_links, propose_update, report_usage. Every name clearly pairs an action with an object, and there are no mixed conventions or vague generic verbs.
Seven tools is a well-scoped set for a team knowledge-base server: discovery, retrieval, search, compilation, writing, link maintenance, and usage feedback each have exactly one dedicated tool. The count feels complete without redundancy or bloat.
The surface covers the main lifecycle well: read via get_document/search_context/compile_bundle, update via propose_update, discover scopes via list_scopes, and maintain quality via suggest_links and report_usage. Minor gaps remain—there is no direct way to list all documents in a scope beyond counts, and propose_update doesn't obviously support deletion.