io.github.DotNova/context-layer
Official62 toolsContextLayer
Intelligent context infrastructure for AI teams: knowledge graph, sessions, tasks, documents.
Knowledge graph and session management infrastructure for AI teams to organize tasks and documents.
Captured live from the server via tools/list.
accept_org_invite
Accept a pending organization invite by organization name.
Parameters (1)
- org_namestringrequired
Organization name to accept the invite for
add_task_dependency
Add a dependency between tasks. Use this to express that a task is blocked by another task (must complete first) or relates to it. This prevents context contamination: when Task B depends on Task A, agents working on Task B will be warned if Task A is still in progress.
Parameters (3)
- dependency_typestring | null
Dependency type: 'blocks' (must complete before) or 'relates_to' (informational link). Default: blocks
- depends_on_task_idstringrequired
The task that blocks (the dependency / prerequisite)
- task_idstringrequired
The task that is blocked (depends on the other task)
add_team_member
Add a member to a team. Find the team by name or ID, and the user by name or email.
Parameters (4)
- rolestring | null
Role in team: member or lead (default: member)
- team_idstring | null
Team ID (optional if team_name is provided)
- team_namestring | null
Team name (optional if team_id is provided)
- userstringrequired
User name or email to add
assign_task
Assign a user to a task by name or email. The user is added to the task's assignees and linked in the knowledge graph.
Parameters (2)
- task_idstringrequired
Task ID
- userstringrequired
User name or email to assign
create_position
Create a new job position/title in your organization (admin only).
Parameters (3)
- descriptionstring | null
Position description (optional)
- permissionsany
JSON object mapping permission keys to booleans, e.g. {"can_view_all_projects": true, "can_manage_documents": false}. Use list_positions to see all available permission keys.
- titlestringrequired
Position title (e.g. 'Frontend Developer')
create_project
Create a new project in your organization. You will be added as the project owner.
Parameters (2)
- descriptionstring | null
Project description (optional)
- namestringrequired
Project name
create_sprint
Create a new sprint for a project. Automatically migrates non-completed tasks (todo/in_progress) from the previous sprint. On first use, creates Sprint 0 (Backlog) for existing tasks and Sprint 1 as the active sprint.
Parameters (4)
- goalstring | null
Sprint goal (optional)
- namestring | null
Sprint name (default: 'Sprint N')
- project_idstring | null
Project ID (alternative to project_name)
- project_namestring | null
Project name
create_task
Create a new task in a project. Tasks track work items and can be assigned to team members and linked to sessions.
Parameters (12)
- assigneesarray | null
Assignee names or emails (optional — resolves to user IDs)
- depends_onarray | null
Task IDs that this task depends on / is blocked by (optional). Creates 'blocks' dependencies.
- descriptionstring | null
Task description (optional)
- due_atstring | null
Due date in ISO 8601 format (e.g. '2026-03-15T00:00:00Z')
- prioritystring | null
Priority: low, medium, high, urgent (default: medium)
- project_idstring | null
Project ID (alternative to project_name)
- project_namestring | null
Project name to create the task in
- sprint_numberinteger | null
Sprint number to assign the task to (optional — auto-assigns to current sprint if omitted)
- tagsarray | null
Tags for categorization (e.g. ['bug', 'frontend'])
- team_idstring | null
Team ID (alternative to team_name)
- team_namestring | null
Team name to assign to (optional — resolves to team ID)
- titlestringrequired
Task title
create_team
Create a new team in your organization. You will be added as team lead.
Parameters (3)
- descriptionstring | null
Team description (optional)
- namestringrequired
Team name
- objectivesarray | null
Team objectives as a list of strings (optional)
delete_document
Delete a document from the knowledge base. This permanently removes the document.
Parameters (1)
- document_idstringrequired
Document ID to delete
delete_position
Delete a position permanently (admin only). Find by title or ID.
Parameters (2)
- position_idstring | null
Position ID (optional if position_title is provided)
- position_titlestring | null
Position title (optional if position_id is provided)
delete_project
Delete a project permanently (admin only). Find by name or ID.
Parameters (2)
- project_idstring | null
Project ID (optional if project_name is provided)
- project_namestring | null
Project name (optional if project_id is provided)
delete_task
Delete a task permanently. The task and all its assignee links are removed.
Parameters (1)
- task_idstringrequired
Task ID to delete
delete_team
Delete a team permanently (admin only). Find by name or ID.
Parameters (2)
- team_idstring | null
Team ID (optional if team_name is provided)
- team_namestring | null
Team name (optional if team_id is provided)
delete_user
Delete (soft-delete) a user from your organization (admin/owner only).
Parameters (1)
- userstringrequired
User name or email to delete
end_session
End a work session. This triggers context block generation — your activities are summarized and stored in the knowledge graph for future reference.
Parameters (3)
- outcomestringrequired
Outcome: success, failure, partial, abandoned
- session_idstringrequired
Session ID to end
- token_usageany
Token usage for this session. JSON object with fields: input_tokens (int), output_tokens (int), total_tokens (int), model (string), estimated_cost_usd (float). Optional — set when the agent can report consumption.
find_documents
Search documents in the organization's knowledge base. Filter by category, tags, project, or free-text query. Returns document metadata — use get_document to read the full content.
Parameters (6)
- categorystring | null
Filter by category: template, policy, procedure, reference, contract, guide, checklist
- limitinteger | null
Maximum results (default 10)
- project_namestring | null
Filter by project name
- querystring | null
Search query (matches title and content)
- tagsarray | null
Filter by tags
- team_namestring | null
Filter by team name
get_context
Get intelligent context from the knowledge graph. Pass a query describing what you need — the system will automatically route to the right data sources (tasks, sessions, documents, teams, blocks) based on intent analysis + graph traversal + semantic similarity. Optionally narrow scope with project name or session ID.
Parameters (5)
- max_tokensinteger | null
Maximum tokens for the response (default 500)
- project_idstring | null
Project ID (optional — if omitted, returns across all projects)
- project_namestring | null
Project name (optional, alternative to project_id)
- querystringrequired
The user's question or intent — used for intelligent context routing. Describe what context is needed.
- session_idstring | null
Session ID (optional — if omitted, returns user-level context)
get_context_routing
Get the current context routing mode for the organization. Returns 'keyword_llm', 'keyword_only', or 'llm_only'.
No parameters.
get_document
Get the full content of a document by its ID. Use find_documents first to search, then get_document to read the content. For binary documents (PDFs, images), content is returned base64-encoded with encoding='base64' and the mime_type field.
Parameters (1)
- document_idstringrequired
Document ID
get_live_activity
See what's happening right now: active sessions, recent events, traces, and tasks being worked on.
Parameters (4)
- project_namestring | null
Filter by project name (optional)
- recent_minutesinteger | null
Time window for recent events in minutes (default: 30)
- team_namestring | null
Filter by team name (optional)
- user_namestring | null
Filter by user name (optional, partial match)
get_my_stats
Get your personal activity statistics: total sessions, events, active days, projects worked on, and recent activity summary.
No parameters.
get_org_stats
Get comprehensive organization statistics: counts, engagement metrics, task velocity.
No parameters.
get_project_status
Get the current status of a project including recent activity. You can use either the project name or ID.
Parameters (2)
- project_idstring | null
Project ID (optional if project_name is provided)
- project_namestring | null
Project name (optional, alternative to project_id)
get_session_details
Get full details of a session including all events/activities logged during it. Shows who did what, when, and the session block summary if available. Admins can view any session in the org; members can only view their own.
Parameters (1)
- session_idstringrequired
Session ID to get details for
get_team_details
Get detailed information about a team: members (with roles), linked projects, and recent activity. Use team name or ID.
Parameters (2)
- team_idstring | null
Team ID (optional if team_name is provided)
- team_namestring | null
Team name (optional if team_id is provided)
invite_user
Invite a new member to your organization (admin/owner only).
Parameters (6)
- emailstringrequired
User email address
- namestringrequired
Full name
- positionsarray | null
Position titles to assign (optional — resolves by name)
- rolestring | null
Role: member or admin (default: member)
- skillsarray | null
Skills list (optional)
- team_namestring | null
Team name to add user to (optional)
link_task_session
Link a work session to a task. This records that the session was used to work on the task, connecting them in the knowledge graph.
Parameters (2)
- session_idstringrequired
Session ID to link to the task
- task_idstringrequired
Task ID to link
link_team_project
Link a project to a team. Find both by name or ID.
Parameters (4)
- project_idstring | null
Project ID (optional if project_name is provided)
- project_namestring | null
Project name (optional if project_id is provided)
- team_idstring | null
Team ID (optional if team_name is provided)
- team_namestring | null
Team name (optional if team_id is provided)
list_colleagues
List colleagues in your organization. Shows name, email, role, and optionally filters by team. Admins see all users; members see users in their own teams.
Parameters (2)
- limitinteger | null
Maximum results (default 20)
- team_namestring | null
Filter by team name (optional — shows only members of that team)
list_notifications
List your notifications — task assignments, status changes, sprint updates, invites, and more. Returns unread notifications by default.
Parameters (2)
- limitinteger | null
Maximum results (default 20)
- unread_onlyboolean | null
Only return unread notifications (default: true)
list_pending_invites
List pending organization invites for the current user.
No parameters.
list_positions
List all job positions/titles in your organization with member counts.
No parameters.
list_project_members
List all members involved in a project. Includes users who have sessions in the project and users from teams linked to the project.
Parameters (2)
- project_idstring | null
Project ID
- project_namestring | null
Project name (alternative to project_id)
list_project_teams
List teams linked to a project.
Parameters (2)
- project_idstring | null
Project ID
- project_namestring | null
Project name (alternative to project_id)
list_projects
List projects in your organization. No parameters needed — just call it to see all your projects.
Parameters (1)
- org_idstring | null
Optional organization ID (uses default org if omitted)
list_sessions
List your recent work sessions. Optionally filter by project name or ID. Shows task type, status, and event count.
Parameters (3)
- limitinteger | null
Maximum results (default 10)
- project_idstring | null
Filter by project ID (optional)
- project_namestring | null
Filter by project name (optional, alternative to project_id)
list_sprints
List sprints for a project. Shows sprint number, name, goal, status (current/completed), and task count.
Parameters (2)
- project_idstring | null
Project ID (alternative to project_name)
- project_namestring | null
Project name
list_tasks
List tasks. Filter by project, status (todo/in_progress/done/cancelled), sprint number, or show only your tasks. Shows title, status, priority, assignees, sprint, and linked sessions.
Parameters (5)
- limitinteger | null
Maximum results (default 20)
- mine_onlyboolean | null
Filter tasks assigned to me only (default: false)
- project_namestring | null
Filter by project name (optional)
- sprint_numberinteger | null
Filter by sprint number (optional)
- statusstring | null
Filter by status: todo, in_progress, done, cancelled (optional)
list_teams
List all teams in your organization. Shows team name, member count, project count, and description.
No parameters.
log_activity
Log an activity or event. If no session_id is provided, a session is automatically created or reused for the project. Just pass project_name and content — no need to start a session first.
Parameters (6)
- contentstringrequired
Free-form content describing the activity
- event_typestringrequired
Event type: code_change, file_edit, command_run, decision, note, conversation, discovery
- project_idstring | null
Project ID (optional if project_name is provided)
- project_namestring | null
Project name (optional, alternative to project_id — used for auto-session)
- session_idstring | null
Session ID (optional — if omitted, a session is auto-created or reused for the project)
- sourcestring | null
Source of the event (e.g. 'claude-code', 'cursor', 'user')
log_trace
Log a granular agent action trace. High-frequency, no LLM processing.
Parameters (11)
- duration_msinteger | null
Duration in milliseconds (optional)
- metadataany
Free-form JSON metadata (optional)
- parent_trace_idstring | null
Parent trace ID for nesting (e.g. tool_call -> file_reads)
- project_idstring | null
Project ID (optional, alternative to project_name)
- project_namestring | null
Project name (optional, used for auto-session resolution)
- session_idstring | null
Session ID (optional — auto-resolved from project if omitted)
- statusstring | null
Status: started, completed, failed (default: completed)
- summarystringrequired
Short description of the action
- task_idstring | null
Task ID to link this trace to (optional — auto-links session to task)
- trace_idstring | null
Logical trace group ID (auto-generated if omitted)
- trace_typestringrequired
Trace type: tool_call, file_read, file_write, code_search, code_edit, api_call, thinking, error
log_traces_batch
Log multiple traces in a single batch.
Parameters (1)
- tracesarrayrequired
Array of traces to log in a single batch
mark_notification_read
Mark a notification as read, or mark all notifications as read at once.
Parameters (2)
- mark_allboolean | null
Set to true to mark ALL notifications as read
- notification_idstring | null
Notification ID to mark as read (omit to use mark_all)
move_task_to_sprint
Move a task to a different sprint. Specify the target sprint by number or ID.
Parameters (4)
- project_namestring | null
Project name (needed if using sprint_number)
- sprint_idstring | null
Target sprint ID (alternative to sprint_number)
- sprint_numberinteger | null
Target sprint number
- task_idstringrequired
Task ID to move
remove_task_dependency
Remove a dependency between tasks. This unblocks the task from the other task.
Parameters (2)
- depends_on_task_idstringrequired
The task that was blocking it
- task_idstringrequired
The task that was blocked
remove_team_member
Remove a member from a team. Find the team by name or ID, and the user by name or email.
Parameters (3)
- team_idstring | null
Team ID (optional if team_name is provided)
- team_namestring | null
Team name (optional if team_id is provided)
- userstringrequired
User name or email to remove
remove_user_from_org
Remove a user from the current organization without deleting their account. Admin/owner only.
Parameters (1)
- userstringrequired
User name or email to remove from the organization
search_entities
Search entities in the knowledge graph by name. Finds people, companies, documents, concepts, tools, etc. that have been mentioned in your activities.
Parameters (3)
- entity_typestring | null
Entity type filter: person, company, document, concept, tool, template, process
- limitinteger | null
Maximum results (default 10)
- querystringrequired
Search query string (matches entity names)
set_context_routing
Set the context routing mode for the organization. Requires admin role. Options: 'keyword_llm' (balanced), 'keyword_only' (fastest), 'llm_only' (most accurate).
Parameters (1)
- modestringrequired
Routing mode: 'keyword_llm' (keyword + LLM fallback), 'keyword_only' (fastest), or 'llm_only' (most accurate)
setup_organization
Set up your organization in one step (admin only). Use this for onboarding.
Parameters (7)
- business_modelstringrequired
Business model description
- custom_contextstring | null
Custom context for AI agents (optional)
- descriptionstringrequired
Organization description
- linksarray | null
Links: [{"label": "...", "url": "...", "type": "website|repository|documentation|slack|jira|notion|figma|other"}]
- objectivesarrayrequired
Organization objectives
- projectsarray | null
Projects to create: [{"name": "...", "description": "..."}]
- teamsarray | null
Teams to create: [{"name": "...", "description": "..."}]
start_session
Start a work session. If a project is provided (project_name or project_id), the session is bound to it; if neither is provided, an unbound (projectless) session is created — useful when the work isn't tied to a specific project. Reuses an existing active session for the same scope (per-project, or one global projectless session per user). Task type: coding, review, planning, debugging, research, meeting, other.
Parameters (4)
- project_idstring | null
Project ID to start the session in (optional if project_name provided)
- project_namestring | null
Project name (optional, alternative to project_id)
- sourcestring | null
Source client identifier (e.g. 'claude-code', 'claude-web', 'chatgpt', 'cursor'). Helps track which tool created the session.
- task_typestringrequired
Type of task: coding, review, planning, debugging, research, meeting, other
unassign_task
Remove a user from a task's assignees.
Parameters (2)
- task_idstringrequired
Task ID
- user_idstringrequired
User ID to remove from assignees
unlink_team_project
Unlink a project from a team. Find both by name or ID.
Parameters (4)
- project_idstring | null
Project ID (optional if project_name is provided)
- project_namestring | null
Project name (optional if project_id is provided)
- team_idstring | null
Team ID (optional if team_name is provided)
- team_namestring | null
Team name (optional if team_id is provided)
update_org
Update your organization's details (owner only). Set name, description, business model, objectives, custom context for AI, or links.
Parameters (6)
- business_modelstring | null
Business model description (optional)
- custom_contextstring | null
Custom context for AI agents (optional)
- descriptionstring | null
Organization description (optional)
- linksany
Links as JSON array: [{"label": "...", "url": "...", "type": "..."}] (optional)
- namestring | null
Organization name (optional)
- objectivesarray | null
Objectives as a list of strings (optional)
update_position
Update a position's title, description, or permissions (admin only). Find by title or ID.
Parameters (5)
- new_descriptionstring | null
New description (optional)
- new_permissionsany
New permissions JSON object mapping permission keys to booleans, e.g. {"can_view_all_projects": true}. Use list_positions to see all available keys.
- new_titlestring | null
New title (optional)
- position_idstring | null
Position ID (optional if position_title is provided)
- position_titlestring | null
Position title to find (optional if position_id is provided)
update_project
Update a project's name, description, or links. Find by name or ID.
Parameters (5)
- linksany
Links as JSON array: [{"label": "...", "url": "...", "type": "..."}] (optional)
- new_descriptionstring | null
New description (optional)
- new_namestring | null
New name (optional)
- project_idstring | null
Project ID (optional if project_name is provided)
- project_namestring | null
Project name to find (optional if project_id is provided)
update_task
Update a task's status, title, description, priority, or team assignment. Use this to move tasks through the workflow (todo -> in_progress -> done) or reassign to a team.
Parameters (9)
- descriptionstring | null
New description
- due_atstring | null
Due date in ISO 8601 format (e.g. '2026-03-15T00:00:00Z'), or null to clear
- prioritystring | null
New priority: low, medium, high, urgent
- statusstring | null
New status: todo, in_progress, done, cancelled
- tagsarray | null
New tags (replaces existing tags)
- task_idstringrequired
Task ID to update
- team_idstring | null
Team ID to assign (optional)
- team_namestring | null
Team name to assign (optional, alternative to team_id)
- titlestring | null
New title
update_team
Update a team's name, description, or objectives. Find by name or ID.
Parameters (5)
- new_descriptionstring | null
New description (optional)
- new_namestring | null
New name (optional)
- new_objectivesarray | null
New objectives (optional)
- team_idstring | null
Team ID (optional if team_name is provided)
- team_namestring | null
Team name to find (optional if team_id is provided)
update_user
Update an existing user's name, role, positions, or skills (admin/owner only).
Parameters (5)
- new_namestring | null
New name (optional)
- new_rolestring | null
New role: member or admin (optional)
- positionsarray | null
Position titles to assign (optional — replaces existing)
- skillsarray | null
Skills list (optional — replaces existing)
- userstringrequired
User name or email to find
upload_document
Upload a document to the organization's knowledge base. Documents can be templates, policies, contracts, procedures, guides, or references. They are indexed in the knowledge graph and automatically surfaced as context when relevant to a task. Supports both text and binary files: for binary files (PDFs, images, etc.), set is_base64=true and provide the content as a base64-encoded string, along with the appropriate mime_type (e.g. 'application/pdf', 'image/png'). Optionally set file_name for the original filename. Embeddings are generated automatically for search.
Parameters (11)
- categorystringrequired
Category: template, policy, procedure, reference, contract, guide, checklist, other
- contentstringrequired
Full document content (text/markdown)
- file_namestring | null
Original file name (e.g. 'contract.pdf'). Optional.
- is_base64boolean | null
Set to true if content is base64-encoded (for binary files like PDFs, images)
- mime_typestring | null
MIME type of the content (default: text/plain). Use application/pdf, image/png, etc. for binary files.
- project_idstring | null
Project ID to associate with (optional, alternative to project_name)
- project_namestring | null
Project name to associate with (optional)
- tagsarray | null
Tags for categorization and search (e.g. ['tax', 'contract', 'template'])
- team_idsarray | null
Team IDs to associate with (optional, alternative to team_names)
- team_namesarray | null
Team names to associate the document with (optional, for team-level access control)
- titlestringrequired
Document title
whoami
Get your profile, organization, projects, recent sessions, and top entities. This is the best starting point — call this first to understand what's available. No parameters needed.
No parameters.
README not available yet.
Install
claude_desktop_config.json
{
"mcpServers": {
"context-layer": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.dotnova.io/mcp"
]
}
}
}Desktop config is stdio-only; this bridges via mcp-remote. Native remote: Settings > Connectors.