Skip to main content
Glama

Tribal

Semantic compression for project knowledge.

Release Build License Docker Homebrew

Tribal captures the engineering knowledge that does not get written down in code or tickets. The reasoning behind a load-bearing decision, the heuristic someone keeps reaching for, the breakthrough that closed a gnarly bug. It runs as a Model Context Protocol server, ingests text on demand, and exposes a graph of items connected by what they support, contradict, or refine. Your agent harness talks to it the same way it talks to any other MCP tool.

Tribal is not trying to remember everything. It preserves what remains useful after the work is done.

Quick start

Start with the skills. Tribal runs inside your agent, and the skills teach it to install, verify, wire, and troubleshoot Tribal. Installing them and letting the agent drive is the most reliable path:

npx skills add tribal-memory/skills

Then ask your agent to set Tribal up. The steps below are what the skills walk it through, or what to run by hand. The agent can help either way.

If you plan to use a cloud provider (OpenAI or Anthropic), export its API key in your shell before you launch the agent harness, so the harness and the Tribal binary it spawns inherit it. A key exported into a terminal the harness is already running in is not picked up until you relaunch. Setting it up front removes a lot of the early configuration friction.

Install Tribal using whichever path fits your environment. Pick one:

Homebrew (macOS)

brew install tribal-memory/homebrew-tap/tribal

Shell installer (macOS or Linux)

curl --proto '=https' --tlsv1.2 -LsSf \
  https://github.com/tribal-memory/tribal/releases/latest/download/tribal-installer.sh | sh

Docker Compose (bundled Postgres)

tag=$(curl -fsSL https://api.github.com/repos/tribal-memory/tribal/releases/latest | jq -r .tag_name)
mkdir tribal-docker && cd tribal-docker
curl -fsSL "https://raw.githubusercontent.com/tribal-memory/tribal/$tag/docker-compose.yml" -o docker-compose.yml
docker compose up

The compose file pins the image to a specific release, so fetch it from a release tag rather than reusing an old checkout. The stack bundles its own Postgres and bootstraps itself on first start. To point a stage at a cloud provider instead of a local Ollama, configure .env before the first docker compose up; the installing-tribal skill walks through it.

For the Homebrew and shell-installer paths, bootstrap from inside a git repository. This runs setup, registers the repository as a project, mints a bearer token, and prints the MCP config snippet your harness will need:

tribal bootstrap

Related MCP server: longmem

Prerequisites

  • Postgres 14 or higher with the pgvector extension.

  • A provider for embeddings and inference. Either a local Ollama installation with the required models, or API keys for a supported cloud provider set in your environment.

tribal bootstrap never calls a provider, but it does validate configuration, so a configured cloud provider's API key must already be in your environment when you run it. Provider reachability for ingest is verified separately by tribal check --providers.

Setting up

tribal bootstrap is the canonical first run. It asks the local manager to initialise the configured database, apply model and graph settings, optionally register a working tree, and ensure a namespaced default credential. It is safe to run again against the same durable state:

tribal bootstrap

Flags worth knowing:

  • --project-path DIRECTORY includes project registration in the bootstrap composition. Omit it when initialising an unscoped deployment.

  • --transport stdio|http|sse chooses the integration receipt's connection shape. Omission follows the configured transport.

  • --auth oauth|persisted-bearer selects network authentication. Exporting a bearer is explicit and is not available for stdio.

  • --json emits a structured JSON record of everything that happened. Useful for scripting and for piping into the diagnostic flow described below.

Bootstrap composes the same typed manager capabilities available under tribal database, tribal project, tribal token, and tribal integration; those commands never open the database or credential store independently.

Verifying readiness

tribal check runs the core diagnostic suite: configuration, database reachability, migration state, project resolution, token validity, advertised URL reachability, and binary uniqueness on PATH. It exits non-zero if any check fails.

tribal check

Add --providers to extend the suite with fatal probes of the embedding and inference providers. Run this before your first ingest to confirm the system can do real work:

tribal check --providers

For scripted consumers, --json emits a structured record. Every failed check includes a remediation field with the exact next step:

tribal check --json

Connecting to your agent harness

The canonical MCP config for any compatible harness comes from tribal integration mcp-config. On a local HTTP or SSE deployment the default OAuth document is URL-only. Pass --auth persisted-bearer to make the secret-bearing export explicit for a harness that only supports an Authorization header. The stdio document carries no token and starts explicitly unscoped or with the selected project context.

For per-harness translations, ask your agent to invoke the installing-tribal skill. It walks through wiring Tribal into your harness and produces the exact command to run.

Using Tribal

Day-to-day use happens through your harness. Once the MCP server is wired up, the harness can ingest knowledge, query it, traverse the graph, and rate retrieval quality.

The using-tribal skill teaches your harness when and how to call each tool, and how to phrase ingests so they survive in the graph long after the work is done. It activates whenever the harness sees a signal that prior context might be relevant, or that something worth preserving has just happened.

Recovery

Most operational issues fall into a small set of patterns:

  • Port already in use. Tribal exits with the conflicting address in the error message. Free the port, or switch to --transport stdio to bypass network binding.

  • Bad credentials state. Re-run tribal bootstrap; the manager recovers or replaces the namespaced pending/stable credential pair transactionally.

  • Corrupted Docker volume. Stop the stack with docker compose down -v, then docker compose up. The volume is recreated on the next start.

  • Stale project context. If TRIBAL_PROJECT_ID is set in your environment to a project that no longer exists, unset it or re-run tribal bootstrap against the current directory's git remote.

  • Missing provider env vars. tribal check --providers names which provider stage is failing and walks the resolution chain. Set the missing variable and re-run.

Logs are written to standard error. Every command that has a useful structured form supports --json; the structured output is more amenable to parsing than the human stderr stream.

To re-bootstrap cleanly without losing your knowledge graph, run tribal bootstrap again. It will reuse the existing project if the git remote matches, mint a new bearer token, and re-emit the MCP config snippet.

Troubleshooting

tribal check is the first stop for any operational issue. It surfaces failures with a remediation field describing the next action in plain prose. Pass --json when you need to consume the structured form.

When tribal check reports ok: true and a problem is still visible, the issue is usually network-level rather than Tribal itself. The most common pattern is a VPN or firewall sitting between the binary and the database; MCP errors look like Tribal is down even though the database is what's broken. Confirm connectivity to the configured database before assuming Tribal is at fault.

For runtime failure modes that fall outside the check suite (worker death, transport-layer errors, prompt loading failures), the using-tribal skill bundles a reference covering each pattern. Install it via the Quick start one-liner if you haven't already.

Removing Tribal

Manual steps, in any order:

  • Remove the binary. brew uninstall tribal for Homebrew installs, the installer's removal script for the shell-installer path, or docker compose down -v for the containerised path.

  • Delete the namespaced credential directory at $XDG_CONFIG_HOME/tribal/credentials/.

  • Drop the Postgres database Tribal was using.

  • Remove the skills with npx skills remove installing-tribal using-tribal.

Available Tools

10 tools
tribal_discoverTribal: Discover KnowledgeA

Search Tribal's knowledge base using natural language. Returns knowledge items ranked by semantic similarity to your query, with optional structured filters to narrow results.

Use this as your first step when you need context: before starting work on a feature, debugging an issue, or making a design decision. Ask questions the way you'd ask a colleague: "What do I know about connection pooling in this project?" or "Have I seen this async deadlock pattern before?"

Semantic search is the primary mechanism. Filters (project, kind, tags, time) narrow the candidate set but are not required. If you need to understand an item's evidence, contradictions, or derivation chain, follow up with tribal_explore using the item's ID.

Superseded items (replaced by newer understanding) are excluded by default. Set include_superseded to true for the historical picture.

Results include standing (evidential profile) when requested, which summarises each item's support count, contradiction count, observation frequency, and diversity of supporting evidence.

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorNoOpaque pagination cursor from a previous response's next_cursor.
include_referencesNoReturn references (file paths, URLs, concepts) attached to each item.
include_standingNoCompute and return standing (evidential profile) for each result. Adds minor latency. Recommended when assessing reliability.
include_supersededNoInclude items that have been superseded by newer understanding. Default false.
kindsNoFilter to specific knowledge kinds. Use sparingly; semantic search naturally ranks relevant kinds higher. Most useful for explicit structural queries like 'show me all decision records for this project'.
limitNoMaximum number of results to return.
project_idNoFilter to a specific project. Three-way semantics: omit to use session context project (if set); pass a project ID to filter to that project; pass null to search globally, ignoring session context.
queryYesNatural language query. Describe what you're looking for conversationally. The system embeds this and finds semantically similar knowledge items.
tagsNoFilter by tags (AND semantics: items must have ALL specified tags). Tags are lowercase. For OR semantics, make separate queries.
time_rangeNoFilter by creation time. Either or both bounds may be specified.

Output Schema

ParametersJSON Schema
NameRequiredDescription
applied_project_idYesThe project used for filtering. Set when search was project-scoped (explicit ID or from session context). Null when search was global (no project filter applied, or project_id was explicitly null).
embedding_modelYesWhich embedding model was used for this query.
embedding_profile_idYesThe active embedding profile that produced these results. Cursors and feedback are bound to it; a reindex changes it.
exactYesTrue if all matching results are included. False if truncated by limit.
itemsYes
next_cursorYesPagination cursor. Null if no more results.
trace_idYesTrace ID for this retrieval. Pass to tribal_feedback to rate this session.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It explains default exclusion of superseded items, behavior of include_standing and its latency, project_id three-way semantics, tag AND logic, and pagination via cursor. No contradictions or hidden behaviors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is well-structured and front-loaded with core purpose. Each sentence adds value, though slightly longer than minimal. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 10 parameters, nested objects, and an output schema, the description is comprehensive: covers usage, filters, pagination, standing, superseded items. No gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, but description adds significant value: explains natural language embedding, semantic similarity ranking, project_id semantics, tag AND vs OR, and when to use kinds filter sparingly. Go beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it's for searching Tribal's knowledge base using natural language, with semantic similarity ranking and optional filters. It distinguishes itself from sibling tools like tribal_explore (for exploring item details).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this as your first step when you need context... before starting work on a feature, debugging, design decision.' Provides examples of queries and when to use filters vs not. Advises follow-up with tribal_explore for deeper understanding.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tribal_exploreTribal: Explore RelationshipsA

Traverse the relationship graph from a specific knowledge item. Use this after tribal_discover to understand an item's context: what supports it, what contradicts it, what it was derived from, or what it supersedes.

Typical workflow:

  1. tribal_discover finds relevant items

  2. Pick an item with interesting standing (high support, or contradictions)

  3. tribal_explore to see the evidence, contradictions, or derivation chain

Direction controls traversal:

  • "inbound": What do others assert about this item? (supports, contradictions, what supersedes it)

  • "outbound": What does this item assert about others? (what it's derived from, what it supports)

  • "both": Full neighbourhood in all directions

Relation types:

  • "supports": Evidence that reinforces the item

  • "contradicts": Evidence that challenges the item

  • "supersedes": A newer item that replaces this one

  • "derived_from": Provenance. The input used to produce this item

Depth controls hops: depth 1 = direct relations, depth 2 = relations of relations. Higher depth gives more context but more results. Depth is capped at 3 to avoid mixing unrelated evidence across distant graph regions; use multiple targeted calls for deeper investigation.

ParametersJSON Schema
NameRequiredDescriptionDefault
depthNoMaximum traversal hops from anchor. 1 = direct relations only.
directionNoTraversal direction relative to the anchor item.inbound
include_referencesNoReturn references attached to each item.
include_standingNoCompute standing for each returned item. Adds latency at depth > 1.
item_idYesThe anchor item to explore from. Typically obtained from a tribal_discover result.
limitNoMaximum total results across all depths. Closer relations are returned first.
relation_typesNoFilter to specific relation types. Omit to return all types.
session_trace_idNoTrace ID from a prior tribal_discover call. If provided, this explore is part of the same retrieval session. The returned trace_id will match. Use this to build coherent feedback across discover + explore workflows.

Output Schema

ParametersJSON Schema
NameRequiredDescription
anchorYes
anchor_standingYes
exactYesTrue if all reachable items within depth were returned. False if truncated by limit.
related_itemsYes
trace_idYesTrace ID. Pass to tribal_feedback if rating this session.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses depth cap at 3, latency implications for include_standing at depth > 1, and ordering of results. It does not mention authentication or rate limits, but it adequately describes behavioral traits for a read-like operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (overview, workflow, direction, relation types, depth). It is front-loaded with the main action, and each sentence adds necessary information without redundancy. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (graph traversal, 8 parameters, sibling tools), the description is highly complete. It integrates the tool into a workflow, explains parameter trade-offs, and sets expectations for depth limits. An output schema exists, so return value details are not needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds significant value beyond the schema by explaining the workflow, providing definitions for direction and relation types, and cautioning about depth. This extra context justifies a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Traverse the relationship graph from a specific knowledge item.' It distinguishes itself from siblings like tribal_discover by describing a typical workflow, and the description is specific about traversing relationships (supports, contradicts, etc.).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly recommends using this tool after tribal_discover and outlines a clear workflow: discover, pick an item, then explore. It explains parameters like direction and relation types, aiding decision-making. It lacks explicit 'when not to use' instructions but provides sufficient context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tribal_feedbackTribal: Rate Retrieval QualityA

Record a quality signal about a retrieval session. Use this when Tribal's knowledge meaningfully helped (or failed to help) your current task.

This is NOT about rating individual items. Item-level signals are captured through the Supports/Contradicts relationship system during ingest. This is about rating the combination of items returned for a query, assembled in a particular way.

Rate "positive" when: Tribal surfaced knowledge that directly informed your approach, saved you from a known pitfall, or provided context that improved your decision-making.

Rate "negative" when: The query should have found relevant knowledge but didn't, or the returned items were irrelevant or misleading for the task at hand.

Feedback builds an organic eval dataset. Be selective: only rate when the signal is clear. If no trace_id is available from the retrieval response, do not submit feedback rather than fabricating a trace_id. Incomplete feedback is noise.

ParametersJSON Schema
NameRequiredDescriptionDefault
embedding_profile_idNoThe embedding_profile_id from the tribal_discover response being rated, so the lineage records the profile that produced the results.
explored_anchor_idsNoIDs of items used as anchors in tribal_explore calls during the session.
notesNoOptional reasoning. What was good or what was missing?
query_textYesThe original discovery query that initiated the retrieval session.
ratingYesWas this retrieval session helpful?
returned_item_idsYesIDs of items returned by tribal_discover in the rated session.
trace_idYesTrace ID from the tribal_discover or tribal_explore response being rated.

Output Schema

ParametersJSON Schema
NameRequiredDescription
feedback_idYesID of the recorded feedback.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully carries the burden. It discloses that feedback builds an eval dataset, that submission should be selective and only when signal is clear, and that incomplete feedback (missing trace_id) should not be submitted. This goes beyond basic requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear lead sentence, followed by explicit guidance. It is slightly long but each sentence is informative. It could be slightly more concise, but overall it is front-loaded and well-organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 7 parameters (4 required) and no annotations, the description covers all necessary aspects: purpose, usage, parameter roles, and behavioral expectations. It mentions that feedback forms an eval dataset, which is important context. The description is complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (all parameters described). The description adds context beyond the schema, such as explaining the purpose of embedding_profile_id (for lineage), explored_anchor_ids (anchors used), and notes (optional reasoning). It does not simply repeat schema descriptions but enriches them.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Record a quality signal about a retrieval session.' It uses specific verbs and resources, and distinguishes itself from sibling tools like tribal_discover and tribal_explore by focusing on the combined retrieval session quality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use guidance (when Tribal's knowledge helped or failed), when-not-to-use (not for individual items), and criteria for positive/negative ratings. It also warns against fabricating trace_id and advises to be selective, making it clear how to use the tool correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tribal_get_itemTribal: Get Knowledge Item by IDA

Retrieve one or more knowledge items by their IDs. Use this when you have a specific item ID (from a standing field, a previous session, or a cross-reference) and need the full item.

For semantic search, use tribal_discover. For relationship traversal, use tribal_explore. This tool is for direct lookup when you already know what you want.

The response is keyed by item ID. Missing or unknown IDs map to null.

ParametersJSON Schema
NameRequiredDescriptionDefault
include_referencesNoReturn references attached to each item.
include_standingNoCompute and return standing (evidential profile) for each item.
item_idsYesOne or more knowledge item IDs to retrieve.

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYesMap from requested item ID to result. Keys are the ki_-prefixed IDs from the request. Value is the item with optional standing/references, or null if the ID was not found.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full transparency burden. It reveals response behavior (keyed by ID, missing IDs map to null) and implies read-only usage via 'retrieve.' However, it does not explicitly state side-effect freedom or authorization needs, though the retrieval nature is clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description front-loads the core action, then provides focused usage guidance and response details in just three sentences. Every sentence is necessary and adds value, with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 3 parameters, an output schema, and sibling tools, the description completes the picture by specifying when to use, limitations (direct lookup), and response format. It does not need to explain return values (output schema exists) and covers all essential contextual aspects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description does not add extra meaning to parameters beyond what the schema provides (e.g., include_references, include_standing are described in schema). Thus, it meets the baseline without surpassing it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with 'Retrieve one or more knowledge items by their IDs,' clearly stating the verb and resource. It explicitly distinguishes this tool from siblings (tribal_discover for semantic search, tribal_explore for relationship traversal), making its specific purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage context: 'Use this when you have a specific item ID ... and need the full item.' It also clearly states when not to use it, directing to alternative tools for semantic search and relationship traversal, leaving no ambiguity about selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tribal_ingestTribal: Ingest KnowledgeA

Submit raw text for knowledge extraction into Tribal. The system extracts structured knowledge items (facts, heuristics, procedures, decision records), detects duplicates, identifies relationships with existing knowledge, and stores the results.

This is an asynchronous operation. Returns a job_id immediately. Use tribal_job_status to poll for completion.

Use this tool when you've learned something worth preserving: a debugging insight, an architectural decision, a reusable pattern, a gotcha about a library, or any experience that would help you or another agent working on this codebase in the future.

Do NOT use this for storing code snippets, file contents, or documentation. Tribal stores knowledge about work, not the artefacts themselves.

Project, model, and principal are sourced from session context (see tribal_set_context). You only need to provide the content itself.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesThe raw text to extract knowledge from. Write naturally: describe what you learned, what went wrong, what the fix was, why a decision was made. The system handles structuring. Richer input produces better results: include context, reasoning, and specifics rather than terse summaries.
project_idNoOverride the session's active project for this ingest. Optional; defaults to the project set in session context.

Output Schema

ParametersJSON Schema
NameRequiredDescription
job_idYesUnique identifier for the ingest job. Use with tribal_job_status to track progress.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses key behavioral traits: asynchronous operation with immediate job_id return, knowledge extraction and storage. Mentions that project/model/principal come from context. However, no annotations exist, so the description carries full burden; it could mention idempotency or side effects, but the provided info is sufficient for safe use.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise with clear structure: main action, async note, usage guidance, exclusions, and context sourcing. Every sentence serves a purpose; no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (async, multi-step extraction) and existence of an output schema, the description covers essential operational aspects, usage, and parameter context. It does not detail error handling or output structure (covered by schema), but is complete enough for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (baseline 3). The description adds value: explains how to write content naturally for best results, and clarifies project_id as optional override. This goes beyond the schema's basic descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verbs ('Submit raw text for knowledge extraction') and identifies the resource ('into Tribal'). It explains the system's extraction process (facts, heuristics, etc.) and clearly differentiates from siblings by focusing on ingestion, not discovery, exploration, or other operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance on when to use: 'when you've learned something worth preserving' with concrete examples. Also states when NOT to use: 'Do NOT use this for storing code snippets...'. Recommends polling with tribal_job_status for async completion and notes context sourcing from tribal_set_context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tribal_job_statusTribal: Check Ingest Job StatusA

Check the progress of an ingest job submitted via tribal_ingest.

Job lifecycle: queued → extracting → triaging → relating → completed/failed

Terminal states:

  • "completed": Pipeline ran to conclusion. Check outcome for details:

    • "success": All candidates triaged successfully and relations committed.

    • "partial": Some triage tasks failed permanently; the relation task ran on a subset.

    • "empty": Relation task ran with zero items to relate (all duplicates or all triage failures). If tasks_failed > 0, the pipeline likely failed at triage; treat as degraded rather than "nothing new".

  • "failed": Pipeline could not complete. outcome = "failure". Check error context.

Set wait_seconds to block until the job completes or the timeout expires. This collapses ingest + poll into a single round-trip for fast operations. With wait_seconds=0 (default), returns immediately with current status.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesJob ID returned by tribal_ingest.
wait_secondsNoIf > 0, the server blocks until the job reaches a final status (completed or failed) or the timeout expires, whichever comes first. Returns current status either way. Use this to collapse ingest + poll into fewer round-trips for fast operations.

Output Schema

ParametersJSON Schema
NameRequiredDescription
batch_sizeNoNumber of knowledge candidates extracted. Set after extraction completes.
created_atYes
items_createdYesNew knowledge items stored (novel content).
job_idYes
observations_createdYesDuplicate observations recorded (strengthens existing items).
outcomeNoFinal result. Only set when status is 'completed' or 'failed'.
statusYesCurrent lifecycle state.
tasks_completedYesTriage tasks completed successfully.
tasks_failedYesTriage tasks that failed permanently.
updated_atYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully covers behavioral traits: job lifecycle (queued → extracting → triaging → relating → completed/failed), terminal states (completed, failed, with sub-outcomes), and wait_seconds blocking behavior. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-organized with sections for lifecycle, terminal states, and usage. It is somewhat lengthy but all information is relevant and earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists (not shown), the description need not detail return format. It comprehensively covers job lifecycle, terminal states, and wait_seconds behavior, leaving no gaps for agent understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining the job lifecycle and the effect of wait_seconds beyond schema descriptions, but the schema already describes parameters adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool checks the progress of an ingest job submitted via tribal_ingest, with a specific verb ('Check') and resource ('Ingest Job Status'). It distinguishes from sibling tools by focusing on status polling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Guidance is provided on when to use (after tribal_ingest) and how to use wait_seconds to collapse round-trips. It does not explicitly mention when not to use or alternative tools, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tribal_reindexTribal: Reindex EmbeddingsA

Start a reindex to a new embedding geometry, naming the target provider, model, and dimension on the command. Reads and writes continue against the active profile while the new space fills; the swap is atomic. An unchanged target is a no-op. Operator-only; the worker drives the run to completion.

ParametersJSON Schema
NameRequiredDescriptionDefault
base_urlNoThe target endpoint. The provider's default when omitted.
dimensionsNoThe target vector dimension, between 1 and the halfvec storage ceiling of 4000. Resolved from the model when omitted.
dry_runNoWhen true, resolve the target, validate its credential, and return the item and tag counts without creating a run.
modelYesThe target embedding model.
providerYesThe target embedding provider, for example 'ollama' or 'openai'.

Output Schema

ParametersJSON Schema
NameRequiredDescription
base_urlYesThe resolved, normalised target endpoint.
dimensionsYesThe resolved target dimension.
estimated_itemsYesThe number of items the new geometry must embed.
estimated_tagsYesThe number of tags the new geometry must embed.
modelYesThe resolved target model.
outcomeYesplan: a dry run; no run was created. created: a new run was queued. unchanged: the target already matches the active profile. already_live: a run is already in progress. lock_contended: another create holds the single-flight lock; retry.
providerYesThe resolved target provider.
run_idYesThe run id, present for created and already_live.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses mutation, non-blocking behavior, atomic swap, and no-op condition. It also notes operator-only restriction. The dry_run parameter is documented in the schema but not the description, which is a minor omission.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the main action, and each sentence adds essential information without redundancy. It is highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (5 parameters, output schema present), the description covers the key behavioral aspects. It implies asynchronicity via 'worker drives to completion' and the sibling job_status tool fills the gap. The description is sufficient for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description adds limited value beyond the schema. It mentions naming the target parameters but doesn't elaborate on validation or interaction. The baseline of 3 is appropriate given full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool starts a reindex to a new embedding geometry, specifying the key parameters (provider, model, dimension). It differentiates from sibling tools like cancel and prune by focusing on initiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains that reads/writes continue during reindex, the swap is atomic, and unchanged target is a no-op. It mentions operator-only access and that the worker drives completion. While it could explicitly contrast with alternatives, the context of siblings provides enough guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tribal_reindex_cancelTribal: Cancel ReindexA

Cancel the live reindex run, if any. The run is aborted and its building profile is failed at the next task boundary; the active profile, and every read and write against it, is untouched. Reindex is single-flight, so there is at most one live run. Operator-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
cancelledYesWhether a live run was transitioned to aborted.
run_idYesThe aborted run's id, present only when a run was cancelled.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Explains that the run is aborted, profile failed at next task boundary, active profile untouched, and that it's operator-only. Covers key side effects, though reversibility is not discussed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two efficient sentences: first states purpose, second adds behavioral details. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no parameters and presence of output schema, the description covers essential behavioral details (cancellation effects, auth requirement, single-flight). No apparent gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero parameters, baseline score 4. Description adds meaning by stating 'takes no arguments; reindex is single-flight', confirming no input needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool cancels the live reindex run, with specific behavior (abort, fail profile at next task boundary). Distinguishes from siblings like tribal_reindex and tribal_reindex_prune.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Indicates cancellation is conditional ('if any'), and notes reindex is single-flight. Doesn't explicitly state when not to use, but context implies it's for active runs only.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tribal_reindex_pruneTribal: Prune ReindexesA

Reclaim storage from past reindexes. Every non-active complete profile and every failed profile is superseded, and their embeddings are deleted; the active profile and run history are untouched. Operator-only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
embeddings_deletedYesThe number of item embeddings deleted.
profiles_supersededYesThe number of profiles transitioned to superseded.
tag_embeddings_deletedYesThe number of tag embeddings deleted.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite no annotations, the description fully discloses the tool's behavior: what gets superseded (non-active complete and failed profiles), what gets deleted (embeddings), and what remains untouched (active profile and run history). No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences, front-loading the core purpose and adding necessary details without any wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, straightforward action) and the presence of an output schema, the description is complete. It covers the action, scope, and authorization requirement.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema coverage is 100% (trivially). The description adds value by explaining the cleanup process beyond the schema, meeting the baseline of 4 for zero-parameter tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool's purpose: reclaim storage by superseding non-active and failed profiles and deleting embeddings. It clearly distinguishes from siblings like tribal_reindex and tribal_reindex_cancel.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes 'Operator-only' to indicate restricted usage, implying it should be used by operators for cleanup. While it doesn't list explicit alternatives or when-not-to-use scenarios, the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tribal_set_contextTribal: Set Session ContextA

Set or override session-level context for Tribal. Use this at the start of a session to declare your model identity, or when switching to a different project.

Session context is used as the default for all subsequent tool calls. For example, setting a project here means tribal_ingest and tribal_discover will use it automatically without needing project_id on every call.

The server resolves what it can at connection start (project from git remote, principal from auth). Use this tool to fill in what the server cannot infer (model name, provider) or to override what it resolved (e.g., switching projects).

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoThe model you are running as. e.g., 'claude-sonnet-4-5-20250514'. Set once at session start.
project_idNoOverride the active project. Use when working in a different project than the one resolved from the git remote.
providerNoThe inference provider. e.g., 'anthropic', 'openai'. Set once at session start.

Output Schema

ParametersJSON Schema
NameRequiredDescription
actorYes
principal_keyYes
projectNo

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description bears full responsibility for behavioral disclosure. It explains that session context becomes default for subsequent calls, how server resolution works, and that this tool fills gaps or overrides. The description is transparent about the tool's impact and limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured: first sentence defines purpose, then usage guidance, then behavioral explanation. Every sentence adds value and no waste. It is front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity, full schema coverage, and presence of an output schema, the description adequately covers all necessary information. It explains purpose, usage, parameter details, and behavioral implications, leaving no gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds valuable context beyond the schema: for 'model' and 'provider' it recommends setting once at session start, and for 'project_id' it clarifies override behavior. This improves usability without being verbose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action ('Set or override session-level context for Tribal') and resource ('session context'). It distinguishes itself from siblings by emphasizing that it configures defaults used by other tribal tools, which is a distinct role from data ingestion or discovery tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool ('at the start of a session' or 'when switching projects') and explains the default server inference and when to override. It also implies when not to use it (when server inference suffices), providing clear guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4.5/5.0
Disambiguation5/5

Each tool has a unique and clearly defined purpose. There is no overlap between search, exploration, ingestion, job monitoring, feedback, and administration tools.

Naming Consistency5/5

All tools follow the 'tribal_verb_noun' pattern consistently, making it easy to infer each tool's function from its name.

Tool Count5/5

With 10 tools, the server is well-scoped for managing a knowledge base. Each tool serves a distinct and necessary role without unnecessary bloat.

Completeness4/5

The toolset covers the core lifecycle of knowledge management (search, explore, retrieve, ingest, feedback), but lacks explicit tools for updating or deleting individual items, which is a minor gap.

Maintenance

ActivityActive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Universal AI memory layer that provides cross-client, cross-repo context management with semantic search, automatic code indexing, and session management. Enables persistent developer memory across projects with typed memories, graph-based relationships, and RAG-powered retrieval.
    4
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Hybrid semantic + keyword memory across all your projects. Works with Cursor, Claude Code, and your team.
    11
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Self-hosted semantic memory for AI agents. Save worklogs, decisions, and notes via MCP, then recall them across sessions by meaning rather than keyword. Backed by Postgres + pgvector with local embeddings (multilingual-e5-base).
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    A persistent, trust-scored project memory for AI coding agents, backed by PostgreSQL + pgvector, providing durable memory of architecture decisions, bug patterns, and coding conventions.
    26
    1
    MIT

Latest Blog Posts

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/tribal-memory/tribal'

If you have feedback or need assistance with the MCP directory API, please join our Discord server