Skip to content

MCP Tools Reference

TeamLoop provides a comprehensive set of MCP tools for querying, building, and synthesizing temporal knowledge.

Query your knowledge across connected integrations (GitHub, Notion, Linear).

Parameters:

ParameterTypeRequiredDescription
querystringYesThe search query
sourcesstringNoComma-separated list: github, notion, linear
modestringNoQuery mode: current (default) or as_of
as_ofstringNoDate in YYYY-MM-DD format (required when mode is as_of)
retrievalstringNoRetrieval strategy: hybrid (default) or standard

Retrieval Strategies:

  • hybrid (default) — Combines vector semantic search with BM25 full-text search using reciprocal rank fusion (RRF), then refines results with cross-encoder reranking. Catches both semantically similar results and exact keyword matches, with high precision in the top results.
  • standard — Vector-only semantic search (legacy behavior).

Example:

Query: "JWT token rotation policy"
Sources: "github,notion"
Mode: "current"
Retrieval: "hybrid"

Returns: Search results with extraction instructions for building your knowledge graph. When using hybrid retrieval, results include a retrieval_metadata field:

FieldTypeDescription
methodstringhybrid, vector_only, or text_only
vector_countintCandidates from vector search
text_countintCandidates from full-text search
fused_countintResults after fusion and reranking
rerankedboolWhether cross-encoder reranking was applied
rerank_modelstringReranker model used (e.g., rerank-2, cohere.rerank-v3-5:0)

Get a temporal timeline showing how knowledge has evolved.

Parameters:

ParameterTypeRequiredDescription
querystringNo*Topic to build timeline for
entity_idstringNo*Get lineage for specific entity
limitnumberNoMax entries (default: 20)

*Either query or entity_id is required.

Example:

Query: "database architecture"
Limit: 10

Returns: Chronological timeline of decisions, changes, and documents.


Track how knowledge evolved over a time range.

Parameters:

ParameterTypeRequiredDescription
querystringYesTopic to track
from_datestringYesStart date (YYYY-MM-DD)
to_datestringYesEnd date (YYYY-MM-DD)

Example:

Query: "authentication"
From: "2024-01-01"
To: "2024-12-31"

Returns: Evolution of knowledge grouped by month with supersession events.


Compare knowledge between two points in time.

Parameters:

ParameterTypeRequiredDescription
querystringYesTopic to compare
date_astringYesFirst date (YYYY-MM-DD)
date_bstringYesSecond date (YYYY-MM-DD)

Example:

Query: "infrastructure decisions"
Date A: "2024-01-01"
Date B: "2024-06-01"

Returns: What was added, removed, superseded, or unchanged.

Save extracted entities and relationships to your knowledge graph.

Parameters:

ParameterTypeRequiredDescription
entitiesarrayYesArray of entity objects
relationshipsarrayNoArray of relationship objects

Entity Object:

FieldTypeRequiredDescription
typestringYesDECISION, PERSON, PROJECT, COMPONENT, DOCUMENT, CHANGE, FACT
namestringYesEntity name
descriptionstringNoDetailed description
event_datestringNoWhen event occurred (YYYY-MM-DD)
rationalestringNoFor decisions: why this was chosen
alternativesarrayNoFor decisions: other options considered
statusstringNoCurrent status
source_urlstringNoLink to original source
source_integrationstringNogithub, notion, or linear
source_external_idstringNoID in source system

Relationship Object:

FieldTypeRequiredDescription
source_namestringYesName of source entity
source_typestringYesType of source entity
target_namestringYesName of target entity
target_typestringYesType of target entity
relationship_typestringYesDECIDED_BY, AUTHORED_BY, PART_OF, RELATES_TO, SUPERSEDES, DEPENDS_ON, IMPLEMENTS

Example:

{
"entities": [
{
"type": "DECISION",
"name": "Adopt PostgreSQL for main database",
"description": "Chose PostgreSQL over MySQL for better JSON support",
"event_date": "2024-03-15",
"rationale": "Need JSONB for flexible schema",
"alternatives": ["MySQL", "MongoDB"],
"status": "active"
}
],
"relationships": [
{
"source_name": "Adopt PostgreSQL",
"source_type": "DECISION",
"target_name": "Alice",
"target_type": "PERSON",
"relationship_type": "DECIDED_BY"
}
]
}

Save extracted atomic facts from an entity. Call this after extracting facts from a DOCUMENT or DECISION entity’s description. Each fact becomes an independently searchable unit linked to the parent entity via a PART_OF relationship.

Parameters:

ParameterTypeRequiredDescription
parent_entity_idstringYesUUID of the parent entity these facts were extracted from
factsarrayYesArray of fact objects

Fact Object:

FieldTypeRequiredDescription
textstringYesThe complete atomic fact as a standalone sentence
attributionstringNoPerson name if the fact is attributed to someone
datestringNoWhen the fact occurred (YYYY-MM-DD)

Example:

{
"parent_entity_id": "abc123-...",
"facts": [
{
"text": "Sarah Chen approved the PostgreSQL migration on January 15, 2026.",
"attribution": "Sarah Chen",
"date": "2026-01-15"
},
{
"text": "PostgreSQL was chosen over MongoDB due to pgvector support for embeddings.",
"attribution": null,
"date": null
}
]
}

Returns: Summary of facts created and any duplicates skipped.

How it works:

When teamloop_save_knowledge saves a DOCUMENT or DECISION entity with a description longer than 200 characters, the response includes fact extraction instructions telling the host LLM to extract atomic facts and call teamloop_save_facts. This is the primary extraction path (zero LLM cost to TeamLoop).

For entities ingested via teamloop_remember or the REST API, facts are extracted server-side using Bedrock as a fallback.

Facts are stored as entities with type FACT and participate in all search pipelines (hybrid, vector, text) automatically. When a fact surfaces in search results, its parent entity provides additional context via the PART_OF relationship.


List auto-detected entity clusters as suggested subgraphs. Clusters form automatically as entities are saved.

Parameters:

ParameterTypeRequiredDescription
min_sizenumberNoMinimum entities for a cluster to be shown (default: 3)

Example:

teamloop_list_clusters

Returns: Markdown-formatted list of clusters with labels, entity counts, and date ranges.


Get active foresight predictions — forward-looking consequences of decisions. Query by topic, decision ID, or list all. Predictions are auto-generated when DECISION entities are saved and auto-fulfilled when matching DECISION/CHANGE entities appear.

Parameters:

ParameterTypeRequiredDescription
querystringNoSearch predictions by topic (e.g., “API migration”, “SDK updates”)
decision_idstringNoGet predictions for a specific decision by UUID
statusstringNoFilter by status: active (default), fulfilled, dismissed, expired, all

If no parameters are provided, all active predictions are returned.

Example:

Query: "API migration"
Status: "active"

Returns: List of predictions with confidence scores, time horizons, status, and source decision links. See the Foresight feature page for full details on prediction lifecycle and auto-fulfillment.


Manage organizational preferences, standards, and constraints. Traits persist across queries and surface in context reconstruction as standing context.

Parameters:

ParameterTypeRequiredDescription
actionstringYeslist, add, remove, or infer
traitstringFor add/removeThe trait text (e.g., “Prefer TypeScript over JavaScript”)
categorystringFor addpreference (default), standard, constraint, or deprecation

List active traits:

Action: "list"

Declare a trait:

Action: "add"
Trait: "All new services must use gRPC"
Category: "standard"

Remove a trait:

Action: "remove"
Trait: "All new services must use gRPC"

Infer from decisions:

Action: "infer"

Analyzes DECISION entities from the last 6 months and generates up to 10 traits with supporting decision IDs. Requires 3+ decisions. See the Org Profile feature page for full details on inference, provenance, and context reconstruction integration.


Create a curated collection of entities for specific topics.

Parameters:

ParameterTypeRequiredDescription
namestringYesSubgraph name
descriptionstringNoWhat this subgraph represents
entity_idsarrayNo*Specific entity IDs to include
querystringNo*Semantic query to find entities
limitnumberNoMax entities when using query (default: 20, max: 50)

*Use either entity_ids or query, not both.

Example:

Name: "Auth System Decisions"
Query: "authentication and authorization"
Limit: 30

Retrieve a subgraph with all its entities.

Parameters:

ParameterTypeRequiredDescription
subgraph_idstringNo*The subgraph UUID
namestringNo*Find by name instead of ID

*Either subgraph_id or name is required.


Find related entities to expand a subgraph.

Parameters:

ParameterTypeRequiredDescription
subgraph_idstringYesThe subgraph to expand
depthnumberNoRelationship hops (1-3, default: 1)
include_typesarrayNoFilter by entity types
auto_addbooleanNoAutomatically add found entities

Example:

Subgraph ID: "abc123..."
Depth: 2
Include Types: ["DECISION", "COMPONENT"]
Auto Add: true

Capture thoughts, decisions, or context as journal entries.

Parameters:

ParameterTypeRequiredDescription
titlestringYesEntry title
contentstringYesEntry content
moodstringNoreflection, planning, decision, note, question
tagsarrayNoCategorization tags
link_entity_idsarrayNoExplicit entity links
auto_linkbooleanNoAuto-find related entities (default: true)

Example:

Title: "Thoughts on microservices migration"
Content: "After reviewing the Auth Service and User Service..."
Mood: "planning"
Tags: ["architecture", "q1-planning"]

Generate documents from a subgraph using templates.

Parameters:

ParameterTypeRequiredDescription
subgraph_idstringYesSource subgraph
template_typestringYesbrief, prd, or adr
additional_contextstringNoExtra instructions

Template Types:

  • brief - Executive summary
  • prd - Product Requirements Document
  • adr - Architecture Decision Record

Returns: Job ID for polling completion.


Check status and get output of a synthesis job.

Parameters:

ParameterTypeRequiredDescription
job_idstringYesThe synthesis job ID

Returns: Job status (pending, processing, completed, failed) and output when complete.


Cancel a pending or in-progress synthesis job.

Parameters:

ParameterTypeRequiredDescription
job_idstringYesThe synthesis job ID

Store a fact, decision, or insight in natural language. TeamLoop automatically extracts entities, relationships, and temporal context using LLM-powered extraction.

Parameters:

ParameterTypeRequiredDescription
contentstringYesWhat to remember, in natural language
tagsarrayNoTags for categorization (e.g., ["auth", "architecture"])
contextstringNoAdditional context (e.g., “from sprint planning meeting”)

Example:

Content: "We decided to use JWT for auth because mobile apps need
stateless tokens. Sarah proposed this on March 15."
Tags: ["auth", "architecture"]

Returns: Summary of entities created, relationships found, and any conflicts detected with existing decisions. For DOCUMENT and DECISION entities with long descriptions (> 200 chars), facts are automatically extracted server-side.


Recall what you know about a topic. Returns a synthesized summary from your knowledge graph — not raw search results. Does not query external integrations.

Parameters:

ParameterTypeRequiredDescription
topicstringYesWhat to recall
scopestringNoall (default), recent (last 30 days), decisions (only decisions)
time_contextstringNoNatural language time filter (e.g., “since January”, “last month”)

Example:

Topic: "authentication decisions"
Scope: "decisions"
Time context: "since January"

Returns: Coherent paragraph summary with temporal context and source counts.


Get a comprehensive briefing on a topic combining entities, relationships, timeline, and conflicts.

Parameters:

ParameterTypeRequiredDescription
topicstringYesTopic to get full context for
depthstringNobrief (default) or full (comprehensive with all relationships and history)

Example:

Topic: "payments service"
Depth: "full"

Returns: Structured briefing with sections: Current State, Key Decisions, Relationships, Timeline, Open Issues.


Generate a natural language narrative of how a topic evolved over time.

Parameters:

ParameterTypeRequiredDescription
querystringYesTopic to narrate
from_datestringYesStart date (YYYY-MM-DD)
to_datestringYesEnd date (YYYY-MM-DD)
focusstringNodecisions, changes, or all (default)

Returns: AI-generated narrative explaining the evolution of a topic over time.

With Agent Memory (recommended):

  1. Recall - Use teamloop_recall to check what’s already known
  2. Query - Use teamloop_query to fetch fresh data from integrations
  3. Remember - Use teamloop_remember to store findings in natural language
  4. Context - Use teamloop_get_context for comprehensive briefings

Manual workflow:

  1. Query - Use teamloop_query to search integrations
  2. Extract - Use teamloop_save_knowledge to save entities
  3. Organize - Use teamloop_create_subgraph to group related knowledge
  4. Expand - Use teamloop_expand_subgraph to find connections
  5. Synthesize - Use teamloop_synthesize to generate documents
  • Use mode: "as_of" to see what was known at a specific date
  • Use teamloop_evolution to track changes over time
  • Use teamloop_compare to diff knowledge between dates
  • Use teamloop_timeline for entity-specific lineage
  • Always include event_date from source documents
  • Use source_url for traceability
  • Create relationships to connect entities
  • Use appropriate entity types for better queries

When you save entities with detailed descriptions via teamloop_save_knowledge, TeamLoop will instruct you to extract atomic facts using teamloop_save_facts. This improves retrieval granularity — instead of matching against an entire document’s embedding, specific facts like “Sarah approved the migration on Jan 15” become independently searchable.

Facts are automatically extracted server-side when using teamloop_remember or the REST API. The teamloop_save_facts tool is for the host LLM extraction path.