{"serverId":"mcp-registry/io.github.dotnova/context-layer","tools":[{"name":"accept_org_invite","fixed":{"name":"accept_org_invite","description":"Accept a pending organization invite by organization name.","inputSchema":{"type":"object","title":"AcceptOrgInviteParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["org_name"],"properties":{"org_name":{"type":"string","description":"Organization name to accept the invite for"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":98,"tokensAfter":98},{"name":"add_task_dependency","fixed":{"name":"add_task_dependency","description":"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.","inputSchema":{"type":"object","title":"AddTaskDependencyParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["task_id","depends_on_task_id"],"properties":{"task_id":{"type":"string","description":"The task that is blocked (depends on the other task)"},"dependency_type":{"type":["string","null"],"description":"Dependency type: 'blocks' (must complete before) or 'relates_to' (informational link). Default: blocks"},"depends_on_task_id":{"type":"string","description":"The task that blocks (the dependency / prerequisite)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":242,"tokensAfter":242},{"name":"add_team_member","fixed":{"name":"add_team_member","description":"Add a member to a team. Find the team by name or ID, and the user by name or email.","inputSchema":{"type":"object","title":"AddTeamMemberParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["user"],"properties":{"role":{"type":["string","null"],"description":"Role in team: member or lead (default: member)"},"user":{"type":"string","description":"User name or email to add"},"team_id":{"type":["string","null"],"description":"Team ID (optional if team_name is provided)"},"team_name":{"type":["string","null"],"description":"Team name (optional if team_id is provided)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":178,"tokensAfter":178},{"name":"assign_task","fixed":{"name":"assign_task","description":"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.","inputSchema":{"type":"object","title":"AssignTaskParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["task_id","user"],"properties":{"user":{"type":"string","description":"User name or email to assign"},"task_id":{"type":"string","description":"Task ID"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":123,"tokensAfter":123},{"name":"create_position","fixed":{"name":"create_position","description":"Create a new job position/title in your organization (admin only).","inputSchema":{"type":"object","title":"CreatePositionParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["title"],"properties":{"title":{"type":"string","description":"Position title (e.g. 'Frontend Developer')"},"description":{"type":["string","null"],"description":"Position description (optional)"},"permissions":{"description":"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.","type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: permissions. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":181,"tokensAfter":185},{"name":"create_project","fixed":{"name":"create_project","description":"Create a new project in your organization. You will be added as the project owner.","inputSchema":{"type":"object","title":"CreateProjectParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["name"],"properties":{"name":{"type":"string","description":"Project name"},"description":{"type":["string","null"],"description":"Project description (optional)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":117,"tokensAfter":117},{"name":"create_sprint","fixed":{"name":"create_sprint","description":"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.","inputSchema":{"type":"object","title":"CreateSprintParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"goal":{"type":["string","null"],"description":"Sprint goal (optional)"},"name":{"type":["string","null"],"description":"Sprint name (default: 'Sprint N')"},"project_id":{"type":["string","null"],"description":"Project ID (alternative to project_name)"},"project_name":{"type":["string","null"],"description":"Project name"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":199,"tokensAfter":199},{"name":"create_task","fixed":{"name":"create_task","description":"Create a new task in a project. Tasks track work items and can be assigned to team members and linked to sessions.","inputSchema":{"type":"object","title":"CreateTaskParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["title"],"properties":{"tags":{"type":["array","null"],"items":{"type":"string"},"description":"Tags for categorization (e.g. ['bug', 'frontend'])"},"title":{"type":"string","description":"Task title"},"due_at":{"type":["string","null"],"description":"Due date in ISO 8601 format (e.g. '2026-03-15T00:00:00Z')"},"team_id":{"type":["string","null"],"description":"Team ID (alternative to team_name)"},"priority":{"type":["string","null"],"description":"Priority: low, medium, high, urgent (default: medium)"},"assignees":{"type":["array","null"],"items":{"type":"string"},"description":"Assignee names or emails (optional — resolves to user IDs)"},"team_name":{"type":["string","null"],"description":"Team name to assign to (optional — resolves to team ID)"},"depends_on":{"type":["array","null"],"items":{"type":"string"},"description":"Task IDs that this task depends on / is blocked by (optional). Creates 'blocks' dependencies."},"project_id":{"type":["string","null"],"description":"Project ID (alternative to project_name)"},"description":{"type":["string","null"],"description":"Task description (optional)"},"project_name":{"type":["string","null"],"description":"Project name to create the task in"},"sprint_number":{"type":["integer","null"],"format":"int32","description":"Sprint number to assign the task to (optional — auto-assigns to current sprint if omitted)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":461,"tokensAfter":461},{"name":"create_team","fixed":{"name":"create_team","description":"Create a new team in your organization. You will be added as team lead.","inputSchema":{"type":"object","title":"CreateTeamParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["name"],"properties":{"name":{"type":"string","description":"Team name"},"objectives":{"type":["array","null"],"items":{"type":"string"},"description":"Team objectives as a list of strings (optional)"},"description":{"type":["string","null"],"description":"Team description (optional)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":147,"tokensAfter":147},{"name":"delete_document","fixed":{"name":"delete_document","description":"Delete a document from the knowledge base. This permanently removes the document.","inputSchema":{"type":"object","title":"DeleteDocumentParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["document_id"],"properties":{"document_id":{"type":"string","description":"Document ID to delete"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":99,"tokensAfter":99},{"name":"delete_position","fixed":{"name":"delete_position","description":"Delete a position permanently (admin only). Find by title or ID.","inputSchema":{"type":"object","title":"DeletePositionParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"position_id":{"type":["string","null"],"description":"Position ID (optional if position_title is provided)"},"position_title":{"type":["string","null"],"description":"Position title (optional if position_id is provided)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":130,"tokensAfter":130},{"name":"delete_project","fixed":{"name":"delete_project","description":"Delete a project permanently (admin only). Find by name or ID.","inputSchema":{"type":"object","title":"DeleteProjectParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"project_id":{"type":["string","null"],"description":"Project ID (optional if project_name is provided)"},"project_name":{"type":["string","null"],"description":"Project name (optional if project_id is provided)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":126,"tokensAfter":126},{"name":"delete_task","fixed":{"name":"delete_task","description":"Delete a task permanently. The task and all its assignee links are removed.","inputSchema":{"type":"object","title":"DeleteTaskParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["task_id"],"properties":{"task_id":{"type":"string","description":"Task ID to delete"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":92,"tokensAfter":92},{"name":"delete_team","fixed":{"name":"delete_team","description":"Delete a team permanently (admin only). Find by name or ID.","inputSchema":{"type":"object","title":"DeleteTeamParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"team_id":{"type":["string","null"],"description":"Team ID (optional if team_name is provided)"},"team_name":{"type":["string","null"],"description":"Team name (optional if team_id is provided)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":119,"tokensAfter":119},{"name":"delete_user","fixed":{"name":"delete_user","description":"Delete (soft-delete) a user from your organization (admin/owner only).","inputSchema":{"type":"object","title":"DeleteUserParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["user"],"properties":{"user":{"type":"string","description":"User name or email to delete"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":92,"tokensAfter":92},{"name":"end_session","fixed":{"name":"end_session","description":"End a work session. This triggers context block generation — your activities are summarized and stored in the knowledge graph for future reference.","inputSchema":{"type":"object","title":"EndSessionParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["session_id","outcome"],"properties":{"outcome":{"type":"string","description":"Outcome: success, failure, partial, abandoned"},"session_id":{"type":"string","description":"Session ID to end"},"token_usage":{"description":"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.","type":"string"}}}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: token_usage. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":210,"tokensAfter":214},{"name":"find_documents","fixed":{"name":"find_documents","description":"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.","inputSchema":{"type":"object","title":"FindDocumentsParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"tags":{"type":["array","null"],"items":{"type":"string"},"description":"Filter by tags"},"limit":{"type":["integer","null"],"format":"int32","description":"Maximum results (default 10)"},"query":{"type":["string","null"],"description":"Search query (matches title and content)"},"category":{"type":["string","null"],"description":"Filter by category: template, policy, procedure, reference, contract, guide, checklist"},"team_name":{"type":["string","null"],"description":"Filter by team name"},"project_name":{"type":["string","null"],"description":"Filter by project name"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":260,"tokensAfter":260},{"name":"get_context","fixed":{"name":"get_context","description":"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.","inputSchema":{"type":"object","title":"GetContextParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["query"],"properties":{"query":{"type":"string","description":"The user's question or intent — used for intelligent context routing. Describe what context is needed."},"max_tokens":{"type":["integer","null"],"format":"int32","description":"Maximum tokens for the response (default 500)"},"project_id":{"type":["string","null"],"description":"Project ID (optional — if omitted, returns across all projects)"},"session_id":{"type":["string","null"],"description":"Session ID (optional — if omitted, returns user-level context)"},"project_name":{"type":["string","null"],"description":"Project name (optional, alternative to project_id)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":312,"tokensAfter":312},{"name":"get_context_routing","fixed":{"name":"get_context_routing","description":"Get the current context routing mode for the organization. Returns 'keyword_llm', 'keyword_only', or 'llm_only'.","inputSchema":{"type":"object","title":"GetContextRoutingParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":79,"tokensAfter":83},{"name":"get_document","fixed":{"name":"get_document","description":"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.","inputSchema":{"type":"object","title":"GetDocumentParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["document_id"],"properties":{"document_id":{"type":"string","description":"Document ID"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":139,"tokensAfter":139},{"name":"get_live_activity","fixed":{"name":"get_live_activity","description":"See what's happening right now: active sessions, recent events, traces, and tasks being worked on.","inputSchema":{"type":"object","title":"GetLiveActivityParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"team_name":{"type":["string","null"],"description":"Filter by team name (optional)"},"user_name":{"type":["string","null"],"description":"Filter by user name (optional, partial match)"},"project_name":{"type":["string","null"],"description":"Filter by project name (optional)"},"recent_minutes":{"type":["integer","null"],"format":"int32","description":"Time window for recent events in minutes (default: 30)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":192,"tokensAfter":192},{"name":"get_my_stats","fixed":{"name":"get_my_stats","description":"Get your personal activity statistics: total sessions, events, active days, projects worked on, and recent activity summary.","inputSchema":{"type":"object","title":"EmptyParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":77,"tokensAfter":81},{"name":"get_org_stats","fixed":{"name":"get_org_stats","description":"Get comprehensive organization statistics: counts, engagement metrics, task velocity.","inputSchema":{"type":"object","title":"GetOrgStatsParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":68,"tokensAfter":72},{"name":"get_project_status","fixed":{"name":"get_project_status","description":"Get the current status of a project including recent activity. You can use either the project name or ID.","inputSchema":{"type":"object","title":"GetProjectStatusParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"project_id":{"type":["string","null"],"description":"Project ID (optional if project_name is provided)"},"project_name":{"type":["string","null"],"description":"Project name (optional, alternative to project_id)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":140,"tokensAfter":140},{"name":"get_session_details","fixed":{"name":"get_session_details","description":"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.","inputSchema":{"type":"object","title":"GetSessionDetailsParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["session_id"],"properties":{"session_id":{"type":"string","description":"Session ID to get details for"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":142,"tokensAfter":142},{"name":"get_team_details","fixed":{"name":"get_team_details","description":"Get detailed information about a team: members (with roles), linked projects, and recent activity. Use team name or ID.","inputSchema":{"type":"object","title":"GetTeamDetailsParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"team_id":{"type":["string","null"],"description":"Team ID (optional if team_name is provided)"},"team_name":{"type":["string","null"],"description":"Team name (optional if team_id is provided)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":138,"tokensAfter":138},{"name":"invite_user","fixed":{"name":"invite_user","description":"Invite a new member to your organization (admin/owner only).","inputSchema":{"type":"object","title":"InviteUserParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["email","name"],"properties":{"name":{"type":"string","description":"Full name"},"role":{"type":["string","null"],"description":"Role: member or admin (default: member)"},"email":{"type":"string","description":"User email address"},"skills":{"type":["array","null"],"items":{"type":"string"},"description":"Skills list (optional)"},"positions":{"type":["array","null"],"items":{"type":"string"},"description":"Position titles to assign (optional — resolves by name)"},"team_name":{"type":["string","null"],"description":"Team name to add user to (optional)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":219,"tokensAfter":219},{"name":"list_colleagues","fixed":{"name":"list_colleagues","description":"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.","inputSchema":{"type":"object","title":"ListColleaguesParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"limit":{"type":["integer","null"],"format":"int32","description":"Maximum results (default 20)"},"team_name":{"type":["string","null"],"description":"Filter by team name (optional — shows only members of that team)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":153,"tokensAfter":153},{"name":"list_notifications","fixed":{"name":"list_notifications","description":"List your notifications — task assignments, status changes, sprint updates, invites, and more. Returns unread notifications by default.","inputSchema":{"type":"object","title":"ListNotificationsParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"limit":{"type":["integer","null"],"format":"int32","description":"Maximum results (default 20)"},"unread_only":{"type":["boolean","null"],"description":"Only return unread notifications (default: true)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":146,"tokensAfter":146},{"name":"list_pending_invites","fixed":{"name":"list_pending_invites","description":"List pending organization invites for the current user.","inputSchema":{"type":"object","title":"ListPendingInvitesParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":64,"tokensAfter":68},{"name":"list_positions","fixed":{"name":"list_positions","description":"List all job positions/titles in your organization with member counts.","inputSchema":{"type":"object","title":"ListPositionsParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":65,"tokensAfter":69},{"name":"list_project_members","fixed":{"name":"list_project_members","description":"List all members involved in a project. Includes users who have sessions in the project and users from teams linked to the project.","inputSchema":{"type":"object","title":"ListProjectMembersParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"project_id":{"type":["string","null"],"description":"Project ID"},"project_name":{"type":["string","null"],"description":"Project name (alternative to project_id)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":135,"tokensAfter":135},{"name":"list_project_teams","fixed":{"name":"list_project_teams","description":"List teams linked to a project.","inputSchema":{"type":"object","title":"ListProjectTeamsParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"project_id":{"type":["string","null"],"description":"Project ID"},"project_name":{"type":["string","null"],"description":"Project name (alternative to project_id)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":106,"tokensAfter":106},{"name":"list_projects","fixed":{"name":"list_projects","description":"List projects in your organization. No parameters needed — just call it to see all your projects.","inputSchema":{"type":"object","title":"ListProjectsParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"org_id":{"type":["string","null"],"description":"Optional organization ID (uses default org if omitted)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":105,"tokensAfter":105},{"name":"list_sessions","fixed":{"name":"list_sessions","description":"List your recent work sessions. Optionally filter by project name or ID. Shows task type, status, and event count.","inputSchema":{"type":"object","title":"ListSessionsParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"limit":{"type":["integer","null"],"format":"int32","description":"Maximum results (default 10)"},"project_id":{"type":["string","null"],"description":"Filter by project ID (optional)"},"project_name":{"type":["string","null"],"description":"Filter by project name (optional, alternative to project_id)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":165,"tokensAfter":165},{"name":"list_sprints","fixed":{"name":"list_sprints","description":"List sprints for a project. Shows sprint number, name, goal, status (current/completed), and task count.","inputSchema":{"type":"object","title":"ListSprintsParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"project_id":{"type":["string","null"],"description":"Project ID (alternative to project_name)"},"project_name":{"type":["string","null"],"description":"Project name"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":124,"tokensAfter":124},{"name":"list_tasks","fixed":{"name":"list_tasks","description":"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.","inputSchema":{"type":"object","title":"ListTasksParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"limit":{"type":["integer","null"],"format":"int32","description":"Maximum results (default 20)"},"status":{"type":["string","null"],"description":"Filter by status: todo, in_progress, done, cancelled (optional)"},"mine_only":{"type":["boolean","null"],"description":"Filter tasks assigned to me only (default: false)"},"project_name":{"type":["string","null"],"description":"Filter by project name (optional)"},"sprint_number":{"type":["integer","null"],"format":"int32","description":"Filter by sprint number (optional)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":244,"tokensAfter":244},{"name":"list_teams","fixed":{"name":"list_teams","description":"List all teams in your organization. Shows team name, member count, project count, and description.","inputSchema":{"type":"object","title":"EmptyParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":69,"tokensAfter":74},{"name":"log_trace","fixed":{"name":"log_trace","description":"Log a granular agent action trace. High-frequency, no LLM processing.","inputSchema":{"type":"object","title":"LogTraceParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["trace_type","summary"],"properties":{"status":{"type":["string","null"],"description":"Status: started, completed, failed (default: completed)"},"summary":{"type":"string","description":"Short description of the action"},"task_id":{"type":["string","null"],"description":"Task ID to link this trace to (optional — auto-links session to task)"},"metadata":{"description":"Free-form JSON metadata (optional)","type":"string"},"trace_id":{"type":["string","null"],"description":"Logical trace group ID (auto-generated if omitted)"},"project_id":{"type":["string","null"],"description":"Project ID (optional, alternative to project_name)"},"session_id":{"type":["string","null"],"description":"Session ID (optional — auto-resolved from project if omitted)"},"trace_type":{"type":"string","description":"Trace type: tool_call, file_read, file_write, code_search, code_edit, api_call, thinking, error"},"duration_ms":{"type":["integer","null"],"format":"int32","description":"Duration in milliseconds (optional)"},"project_name":{"type":["string","null"],"description":"Project name (optional, used for auto-session resolution)"},"parent_trace_id":{"type":["string","null"],"description":"Parent trace ID for nesting (e.g. tool_call -> file_reads)"}}}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: metadata. Change to number/boolean/array where that's what you accept.","verify":true}],"tokensBefore":407,"tokensAfter":411},{"name":"mark_notification_read","fixed":{"name":"mark_notification_read","description":"Mark a notification as read, or mark all notifications as read at once.","inputSchema":{"type":"object","title":"MarkNotificationReadParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"mark_all":{"type":["boolean","null"],"description":"Set to true to mark ALL notifications as read"},"notification_id":{"type":["string","null"],"description":"Notification ID to mark as read (omit to use mark_all)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":134,"tokensAfter":134},{"name":"move_task_to_sprint","fixed":{"name":"move_task_to_sprint","description":"Move a task to a different sprint. Specify the target sprint by number or ID.","inputSchema":{"type":"object","title":"MoveTaskToSprintParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["task_id"],"properties":{"task_id":{"type":"string","description":"Task ID to move"},"sprint_id":{"type":["string","null"],"description":"Target sprint ID (alternative to sprint_number)"},"project_name":{"type":["string","null"],"description":"Project name (needed if using sprint_number)"},"sprint_number":{"type":["integer","null"],"format":"int32","description":"Target sprint number"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":180,"tokensAfter":180},{"name":"remove_task_dependency","fixed":{"name":"remove_task_dependency","description":"Remove a dependency between tasks. This unblocks the task from the other task.","inputSchema":{"type":"object","title":"RemoveTaskDependencyParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["task_id","depends_on_task_id"],"properties":{"task_id":{"type":"string","description":"The task that was blocked"},"depends_on_task_id":{"type":"string","description":"The task that was blocking it"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":130,"tokensAfter":130},{"name":"remove_team_member","fixed":{"name":"remove_team_member","description":"Remove a member from a team. Find the team by name or ID, and the user by name or email.","inputSchema":{"type":"object","title":"RemoveTeamMemberParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["user"],"properties":{"user":{"type":"string","description":"User name or email to remove"},"team_id":{"type":["string","null"],"description":"Team ID (optional if team_name is provided)"},"team_name":{"type":["string","null"],"description":"Team name (optional if team_id is provided)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":155,"tokensAfter":155},{"name":"remove_user_from_org","fixed":{"name":"remove_user_from_org","description":"Remove a user from the current organization without deleting their account. Admin/owner only.","inputSchema":{"type":"object","title":"RemoveUserFromOrgParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["user"],"properties":{"user":{"type":"string","description":"User name or email to remove from the organization"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":109,"tokensAfter":109},{"name":"search_entities","fixed":{"name":"search_entities","description":"Search entities in the knowledge graph by name. Finds people, companies, documents, concepts, tools, etc. that have been mentioned in your activities.","inputSchema":{"type":"object","title":"SearchEntitiesParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["query"],"properties":{"limit":{"type":["integer","null"],"format":"int32","description":"Maximum results (default 10)"},"query":{"type":"string","description":"Search query string (matches entity names)"},"entity_type":{"type":["string","null"],"description":"Entity type filter: person, company, document, concept, tool, template, process"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":186,"tokensAfter":186},{"name":"set_context_routing","fixed":{"name":"set_context_routing","description":"Set the context routing mode for the organization. Requires admin role. Options: 'keyword_llm' (balanced), 'keyword_only' (fastest), 'llm_only' (most accurate).","inputSchema":{"type":"object","title":"SetContextRoutingParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["mode"],"properties":{"mode":{"type":"string","description":"Routing mode: 'keyword_llm' (keyword + LLM fallback), 'keyword_only' (fastest), or 'llm_only' (most accurate)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":144,"tokensAfter":144},{"name":"setup_organization","fixed":{"name":"setup_organization","description":"Set up your organization in one step (admin only). Use this for onboarding.","inputSchema":{"type":"object","$defs":{"SetupLink":{"type":"object","required":["label","url","type"],"properties":{"url":{"type":"string"},"type":{"type":"string","description":"Link type: website, repository, documentation, slack, jira, notion, figma, other"},"label":{"type":"string"},"description":{"type":["string","null"]}}},"SetupTeam":{"type":"object","required":["name","description"],"properties":{"name":{"type":"string"},"description":{"type":"string"}}},"SetupProject":{"type":"object","required":["name","description"],"properties":{"name":{"type":"string"},"description":{"type":"string"}}}},"title":"SetupOrganizationParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["description","business_model","objectives"],"properties":{"links":{"type":["array","null"],"items":{"$ref":"#/$defs/SetupLink"},"description":"Links: [{\"label\": \"...\", \"url\": \"...\", \"type\": \"website|repository|documentation|slack|jira|notion|figma|other\"}]"},"teams":{"type":["array","null"],"items":{"$ref":"#/$defs/SetupTeam"},"description":"Teams to create: [{\"name\": \"...\", \"description\": \"...\"}]"},"projects":{"type":["array","null"],"items":{"$ref":"#/$defs/SetupProject"},"description":"Projects to create: [{\"name\": \"...\", \"description\": \"...\"}]"},"objectives":{"type":"array","items":{"type":"string"},"description":"Organization objectives"},"description":{"type":"string","description":"Organization description"},"business_model":{"type":"string","description":"Business model description"},"custom_context":{"type":["string","null"],"description":"Custom context for AI agents (optional)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":491,"tokensAfter":491},{"name":"start_session","fixed":{"name":"start_session","description":"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.","inputSchema":{"type":"object","title":"StartSessionParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["task_type"],"properties":{"source":{"type":["string","null"],"description":"Source client identifier (e.g. 'claude-code', 'claude-web', 'chatgpt', 'cursor'). Helps track which tool created the session."},"task_type":{"type":"string","description":"Type of task: coding, review, planning, debugging, research, meeting, other"},"project_id":{"type":["string","null"],"description":"Project ID to start the session in (optional if project_name provided)"},"project_name":{"type":["string","null"],"description":"Project name (optional, alternative to project_id)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":320,"tokensAfter":320},{"name":"update_org","fixed":{"name":"update_org","description":"Update your organization's details (owner only). Set name, description, business model, objectives, custom context for AI, or links.","inputSchema":{"type":"object","title":"UpdateOrgParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"name":{"type":["string","null"],"description":"Organization name (optional)"},"links":{"description":"Links as JSON array: [{\"label\": \"...\", \"url\": \"...\", \"type\": \"...\"}] (optional)","type":"string"},"objectives":{"type":["array","null"],"items":{"type":"string"},"description":"Objectives as a list of strings (optional)"},"description":{"type":["string","null"],"description":"Organization description (optional)"},"business_model":{"type":["string","null"],"description":"Business model description (optional)"},"custom_context":{"type":["string","null"],"description":"Custom context for AI agents (optional)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: links. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":254,"tokensAfter":258},{"name":"update_position","fixed":{"name":"update_position","description":"Update a position's title, description, or permissions (admin only). Find by title or ID.","inputSchema":{"type":"object","title":"UpdatePositionParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"new_title":{"type":["string","null"],"description":"New title (optional)"},"position_id":{"type":["string","null"],"description":"Position ID (optional if position_title is provided)"},"position_title":{"type":["string","null"],"description":"Position title to find (optional if position_id is provided)"},"new_description":{"type":["string","null"],"description":"New description (optional)"},"new_permissions":{"description":"New permissions JSON object mapping permission keys to booleans, e.g. {\"can_view_all_projects\": true}. Use list_positions to see all available keys.","type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: new_permissions. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":236,"tokensAfter":241},{"name":"update_project","fixed":{"name":"update_project","description":"Update a project's name, description, or links. Find by name or ID.","inputSchema":{"type":"object","title":"UpdateProjectParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"links":{"description":"Links as JSON array: [{\"label\": \"...\", \"url\": \"...\", \"type\": \"...\"}] (optional)","type":"string"},"new_name":{"type":["string","null"],"description":"New name (optional)"},"project_id":{"type":["string","null"],"description":"Project ID (optional if project_name is provided)"},"project_name":{"type":["string","null"],"description":"Project name to find (optional if project_id is provided)"},"new_description":{"type":["string","null"],"description":"New description (optional)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"schema","detail":"Added \"type\":\"string\" to untyped parameters: links. Change to number/boolean/array where that's what you accept.","verify":true},{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":207,"tokensAfter":212},{"name":"update_task","fixed":{"name":"update_task","description":"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.","inputSchema":{"type":"object","title":"UpdateTaskParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["task_id"],"properties":{"tags":{"type":["array","null"],"items":{"type":"string"},"description":"New tags (replaces existing tags)"},"title":{"type":["string","null"],"description":"New title"},"due_at":{"type":["string","null"],"description":"Due date in ISO 8601 format (e.g. '2026-03-15T00:00:00Z'), or null to clear"},"status":{"type":["string","null"],"description":"New status: todo, in_progress, done, cancelled"},"task_id":{"type":"string","description":"Task ID to update"},"team_id":{"type":["string","null"],"description":"Team ID to assign (optional)"},"priority":{"type":["string","null"],"description":"New priority: low, medium, high, urgent"},"team_name":{"type":["string","null"],"description":"Team name to assign (optional, alternative to team_id)"},"description":{"type":["string","null"],"description":"New description"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":329,"tokensAfter":329},{"name":"update_team","fixed":{"name":"update_team","description":"Update a team's name, description, or objectives. Find by name or ID.","inputSchema":{"type":"object","title":"UpdateTeamParams","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"team_id":{"type":["string","null"],"description":"Team ID (optional if team_name is provided)"},"new_name":{"type":["string","null"],"description":"New name (optional)"},"team_name":{"type":["string","null"],"description":"Team name to find (optional if team_id is provided)"},"new_objectives":{"type":["array","null"],"items":{"type":"string"},"description":"New objectives (optional)"},"new_description":{"type":["string","null"],"description":"New description (optional)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":199,"tokensAfter":199},{"name":"update_user","fixed":{"name":"update_user","description":"Update an existing user's name, role, positions, or skills (admin/owner only).","inputSchema":{"type":"object","title":"UpdateUserParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["user"],"properties":{"user":{"type":"string","description":"User name or email to find"},"skills":{"type":["array","null"],"items":{"type":"string"},"description":"Skills list (optional — replaces existing)"},"new_name":{"type":["string","null"],"description":"New name (optional)"},"new_role":{"type":["string","null"],"description":"New role: member or admin (optional)"},"positions":{"type":["array","null"],"items":{"type":"string"},"description":"Position titles to assign (optional — replaces existing)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":211,"tokensAfter":211},{"name":"upload_document","fixed":{"name":"upload_document","description":"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 o","inputSchema":{"type":"object","title":"UploadDocumentParams","$schema":"https://json-schema.org/draft/2020-12/schema","required":["title","category","content"],"properties":{"tags":{"type":["array","null"],"items":{"type":"string"},"description":"Tags for categorization and search (e.g. ['tax', 'contract', 'template'])"},"title":{"type":"string","description":"Document title"},"content":{"type":"string","description":"Full document content (text/markdown)"},"category":{"type":"string","description":"Category: template, policy, procedure, reference, contract, guide, checklist, other"},"team_ids":{"type":["array","null"],"items":{"type":"string"},"description":"Team IDs to associate with (optional, alternative to team_names)"},"file_name":{"type":["string","null"],"description":"Original file name (e.g. 'contract.pdf'). Optional."},"is_base64":{"type":["boolean","null"],"description":"Set to true if content is base64-encoded (for binary files like PDFs, images)"},"mime_type":{"type":["string","null"],"description":"MIME type of the content (default: text/plain). Use application/pdf, image/png, etc. for binary files."},"project_id":{"type":["string","null"],"description":"Project ID to associate with (optional, alternative to project_name)"},"team_names":{"type":["array","null"],"items":{"type":"string"},"description":"Team names to associate the document with (optional, for team-level access control)"},"project_name":{"type":["string","null"],"description":"Project name to associate with (optional)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":575,"tokensAfter":575}],"toolsChanged":55,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}