此 MCP 可以做什么
Manages Nestr workspaces, roles, circles, tensions, governance proposals, comments, daily plans, graph relationships, agents, and connected tools for self-organizing teams.
工具
输入模式
{'type': 'object', 'required': ['nestId', 'body'], 'properties': {'body': {'type': 'string', 'description': "Comment text. Supports HTML and @mentions. Mentions MUST use literal curly braces: `@{userId:roleId}`, NOT `@userId`. Without braces nothing is linked and nobody is notified. Forms: `@{userId:roleId}` (preferred, names the role), `@{userId}`, `@{email}`, `@{circle}` (all fillers in the nearest ancestor circle). The second id MUST be a ROLE or CIRCLE nest, never the project, task or tension you are commenting on: the mention renders that nest's title where the role name belongs, so a project id produces 'Henk as Write a weekly blog post', which reads as though the project were his role. When you do not know which role the person is acting in, use `@{userId}` rather than substituting the nest you happen to be working on."}, 'labels': {'type': 'array', 'items': {'type': 'string'}, 'description': "Optional label IDs to attach at creation (e.g. 'decision', 'question', or a custom ID). Personal labels are auto-scoped to the caller. Discover IDs via nestr_list_labels / nestr_list_personal_labels."}, 'nestId': {'type': 'string', 'description': 'Nest or conversation the comment belongs to. A comment ID instead replies inside that thread. Direct-message conversations are flat, so a message ID there lands on the conversation and the response says where.'}}}
输入模式
{'type': 'object', 'required': ['nestId', 'relation', 'targetId'], 'properties': {'nestId': {'type': 'string', 'description': 'Source nest ID'}, 'relation': {'type': 'string', 'description': "Relation name (e.g., 'meeting' to link a tension to a meeting)"}, 'targetId': {'type': 'string', 'description': 'Target nest ID to link to'}}}
输入模式
{'type': 'object', 'required': ['nestId', 'labelId'], 'properties': {'nestId': {'type': 'string', 'description': 'Nest ID'}, 'labelId': {'type': 'string', 'description': "Label ID to add (e.g., 'project', 'now', or a custom label ID)"}}}
输入模式
{'type': 'object', 'required': ['nestId', 'tensionId'], 'properties': {'_id': {'type': 'string', 'description': 'ID of an existing governance item to change or remove. Omit to propose a new item.'}, 'due': {'type': 'string', 'description': 'Due or re-election date, ISO. For an election, the term end; omit for no term.'}, 'role': {'type': 'string', 'description': 'The role this output belongs to, for an operational output (pathway 3/4). Pair with users: users is WHO does it, role is the role it is asked of, and the work request names both ("Ada as Systems: ..."). A role id, not a title. Distinct from roleId, which is election mode.'}, 'title': {'type': 'string', 'description': 'Title for the governance item'}, 'users': {'type': 'array', 'items': {'type': 'string'}, 'description': 'User IDs to assign. For an election (with roleId), the one user being elected.'}, 'labels': {'type': 'array', 'items': {'type': 'string'}, 'description': "Item type, e.g. ['role'], ['circle'], ['policy'], ['accountability'], ['domain']"}, 'nestId': {'type': 'string', 'description': 'ID of the circle or role the tension belongs to'}, 'roleId': {'type': 'string', 'description': 'ELECTION mode: the electable role to fill (Facilitator, Secretary, Rep Link or any electable role). Pair with users:[oneUserId] and optional due. Never with _id.'}, 'domains': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Domain titles on a role (replaces all; children tools for individual edits)'}, 'purpose': {'type': 'string', 'description': 'Only for workspaces, circles and roles: a short aspirational statement. Details belong in description, not here. Supports HTML.'}, 'parentId': {'type': 'string', 'description': 'Parent ID — use to move/restructure items (e.g., move role to different circle)'}, 'tensionId': {'type': 'string', 'description': 'Tension ID'}, 'removeNest': {'type': 'boolean', 'description': 'With _id, propose deleting that governance item; it goes when the proposal is accepted. Not nestr_remove_tension_part, which undoes a part you already added.'}, 'description': {'type': 'string', 'description': 'The primary content field — detailed information about the item. Supports Markdown and HTML.'}, 'accountabilities': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Accountability titles on a role (replaces all; children tools for individual edits)'}}}
输入模式
{'type': 'object', 'required': ['nestIds'], 'properties': {'nestIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Array of nest IDs to add to the daily plan'}}}
输入模式
{'type': 'object', 'required': ['workspaceId', 'username'], 'properties': {'fullName': {'type': 'string', 'description': 'Full name (for new accounts)'}, 'language': {'type': 'string', 'description': "Language preference (e.g., 'en', 'nl')"}, 'username': {'type': 'string', 'description': 'Email address of the user to add'}, 'workspaceId': {'type': 'string', 'description': 'Workspace ID'}}}
输入模式
{'type': 'object', 'properties': {'path': {'type': 'string', 'description': "Return the full schema for one path, e.g. '/nests/{id}/children'."}, 'search': {'type': 'string', 'description': "Filter operations by keyword against path and summary, e.g. 'meeting', 'tension', 'duration'."}}}
输入模式
{'type': 'object', 'required': ['workspaceId', 'connectorId', 'ownerType', 'ownerId'], 'properties': {'ownerId': {'type': 'string', 'description': "Owner ID. role: the role nest ID. role-domain: the domain nest ID. workspace: the workspace ID. user: the person's user ID. agent: the bot's user ID."}, 'ownerType': {'enum': ['role', 'workspace', 'role-domain', 'user', 'agent'], 'type': 'string', 'description': "Owner type. 'role' is the usual path: pass the role nest ID and the server finds or creates the connector's domain under it. 'role-domain' targets an existing domain directly. 'workspace' gives everyone. 'user' is one person's own account and 'agent' is one bot's own: both are personal, both are workspace-admin only, and both are wrong unless the thing really belongs to that single principal."}, 'connectorId': {'type': 'string', 'description': 'ID of an enabled connector from nestr_list_connectors'}, 'workspaceId': {'type': 'string', 'description': 'Workspace ID the connector and owner belong to'}}}
输入模式
{'type': 'object', 'required': ['workspaceId', 'nestIds'], 'properties': {'nestIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Array of nest IDs in the desired order'}, 'workspaceId': {'type': 'string', 'description': 'Workspace ID'}}}
输入模式
{'type': 'object', 'required': ['workspaceId', 'name'], 'properties': {'name': {'type': 'string', 'description': "The AGENT's own name, as its identity calls it (e.g. 'Collab'). Not the name of the work: that belongs to the role this agent will fill."}, 'agentConfig': {'type': 'object', 'description': "Runtime wiring, not persona: { runtimeCallbackUrl (https, or http to a *.svc.cluster.local service), tokenTtlSeconds (30-1800) }. Omit for an agent that runs on Nestr's own runtime."}, 'description': {'type': 'string', 'description': 'What the agent is LIKE: its character and what it is careful about. Not its instructions, which belong in a skill on the role.'}, 'workspaceId': {'type': 'string', 'description': 'Workspace ID to create the agent in'}, 'roleAssignable': {'type': 'boolean', 'description': 'Defaults to true, meaning it MAY be assigned to a role. It still assists while it holds none; assigning it to one is what ends that. Pass false for an ASSISTANT, which can never be assigned and so can never stop acting for a person. See the tool description.'}}}
输入模式
{'type': 'object', 'required': ['title'], 'properties': {'title': {'type': 'string', 'description': 'Title of the inbox item (plain text, HTML stripped)'}, 'description': {'type': 'string', 'description': 'Additional details or context (supports Markdown and HTML)'}}}
输入模式
{'type': 'object', 'required': ['parentId', 'title'], 'properties': {'due': {'type': 'string', 'description': 'Due date (ISO 8601). SET THIS whenever the item is meant to happen at a time. It is a field, not a title: the sweep that fires dated work reads `due` and nothing else, so a task called "Daily digest, 28 Aug" with no due is invisible to it and simply never runs, with nothing anywhere saying so. For projects/tasks: deadline. For meetings: start time.'}, 'title': {'type': 'string', 'description': 'Title of the new nest (plain text, HTML tags stripped)'}, 'users': {'type': 'array', 'items': {'type': 'string'}, 'description': "User IDs to assign. ALWAYS set this for projects and tasks — use the role filler's user ID. Placing a nest under a role does NOT auto-assign it."}, 'fields': {'type': 'object', 'description': "Structured field values to set on creation (e.g., { 'project.status': 'Current' }, { 'skill.type': 'process' }). Same shape as nestr_update_nest fields — saves a follow-up update call."}, 'labels': {'type': 'array', 'items': {'type': 'string'}, 'description': "Label IDs to apply (e.g., 'project', 'role', 'circle')"}, 'domains': {'type': 'array', 'items': {'type': 'string'}, 'description': "Domain titles for roles/circles. Each becomes a domain child nest. Only used when labels include 'role' or 'circle'. Requires workspaceId."}, 'purpose': {'type': 'string', 'description': 'Only for workspaces, circles and roles: a short aspirational statement. Details belong in description, not here. Supports HTML.'}, 'parentId': {'type': 'string', 'description': 'Parent nest ID (workspace, circle, or project)'}, 'description': {'type': 'string', 'description': 'The primary content field: details, context, acceptance criteria. Structured data goes in fields, progress in comments. Supports Markdown and HTML.'}, 'workspaceId': {'type': 'string', 'description': 'Workspace ID. Required when creating roles/circles with accountabilities or domains.'}, 'accountabilities': {'type': 'array', 'items': {'type': 'string'}, 'description': "Accountability titles for roles/circles. Each becomes an accountability child nest. Only used when labels include 'role' or 'circle'. Requires workspaceId."}}}
输入模式
{'type': 'object', 'required': ['title'], 'properties': {'icon': {'type': 'string', 'description': 'Label icon identifier'}, 'color': {'type': 'string', 'description': "Label color (hex code, e.g., '#FF5733')"}, 'title': {'type': 'string', 'description': 'Label title'}, 'description': {'type': 'string', 'description': 'Label description'}}}
输入模式
{'type': 'object', 'required': ['nestId', 'title'], 'properties': {'needs': {'type': 'string', 'description': 'The need that is alive — what personal or organizational need is not being met (plain text)'}, 'title': {'type': 'string', 'description': 'The gap — what is the difference between current reality and desired state (plain text)'}, 'nestId': {'type': 'string', 'description': 'ID of the role or circle to create the tension on. Place on a role to indicate that role is sensing the tension. Place on a circle for cross-role or governance tensions (use individual-action label if sensed personally without role authority).'}, 'feeling': {'type': 'string', 'description': 'The feeling this tension evokes — separated to keep the organizational response clean (plain text)'}, 'description': {'type': 'string', 'description': 'The observable facts — what you see/hear/experience (supports Markdown and HTML)'}}}
输入模式
{'type': 'object', 'required': ['nestId', 'tensionId', 'partId', 'title', 'labels'], 'properties': {'title': {'type': 'string', 'description': 'Title for the new accountability or domain'}, 'labels': {'type': 'array', 'items': {'type': 'string'}, 'description': "Labels defining the type: ['accountability'] or ['domain']"}, 'nestId': {'type': 'string', 'description': 'ID of the circle or role the tension belongs to'}, 'partId': {'type': 'string', 'description': 'Part ID'}, 'tensionId': {'type': 'string', 'description': 'Tension ID'}}}
输入模式
{'type': 'object', 'required': ['title'], 'properties': {'apps': {'type': 'array', 'items': {'enum': ['okr', 'feedback', 'insights'], 'type': 'string'}, 'description': "Apps to enable (e.g., ['okr', 'feedback']). 'insights' requires pro plan."}, 'plan': {'enum': ['starter', 'pro'], 'type': 'string', 'description': "Subscription plan for collaborative workspaces. Defaults to 'pro' (17-day trial)."}, 'type': {'enum': ['personal', 'collaborative'], 'type': 'string', 'description': "'personal' for individual use (free forever), 'collaborative' for team use (free trial). Defaults to 'collaborative'."}, 'title': {'type': 'string', 'description': 'Workspace name'}, 'layout': {'enum': ['board', 'list'], 'type': 'string', 'description': "Layout style for personal workspaces. 'board' creates kanban columns (Todo, Doing, Done)."}, 'purpose': {'type': 'string', 'description': 'Aspirational future state of the organization — a short north-star statement, not project details'}, 'governance': {'enum': ['holacracy', 'sociocracy', 'roles_circles'], 'type': 'string', 'description': "Self-organization model. Defaults to 'roles_circles' (generic role-based)."}}}
输入模式
{'type': 'object', 'required': ['commentId'], 'properties': {'commentId': {'type': 'string', 'description': 'Comment ID to delete'}}}
输入模式
{'type': 'object', 'required': ['nestId', 'fileId'], 'properties': {'fileId': {'type': 'string', 'description': 'File ID from nestr_get_nest_files'}, 'nestId': {'type': 'string', 'description': 'Nest or comment ID the file is attached to'}}}
输入模式
{'type': 'object', 'required': ['nestId'], 'properties': {'nestId': {'type': 'string', 'description': 'Nest ID to delete'}}}
输入模式
{'type': 'object', 'required': ['nestId'], 'properties': {'nestId': {'type': 'string', 'description': 'The series, or any occurrence of it.'}}}
输入模式
{'type': 'object', 'required': ['nestId', 'tensionId'], 'properties': {'nestId': {'type': 'string', 'description': 'ID of the circle or role the tension belongs to'}, 'tensionId': {'type': 'string', 'description': 'Tension ID to delete'}}}
输入模式
{'type': 'object', 'required': ['nestId', 'tensionId', 'partId', 'childId'], 'properties': {'nestId': {'type': 'string', 'description': 'ID of the circle or role the tension belongs to'}, 'partId': {'type': 'string', 'description': 'Part ID'}, 'childId': {'type': 'string', 'description': 'Child ID to soft-delete'}, 'tensionId': {'type': 'string', 'description': 'Tension ID'}}}
输入模式
{'type': 'object', 'properties': {}}
输入模式
{'type': 'object', 'required': ['threadId', 'reason'], 'properties': {'reason': {'type': 'string', 'description': 'One or two sentences for whoever picks this up: what is needed and what has been tried. They can read the thread, so do not summarise it.'}, 'threadId': {'type': 'string', 'description': 'Thread id to escalate'}}}
输入模式
{'type': 'object', 'required': ['nestId'], 'properties': {'nestId': {'type': 'string', 'description': 'The nest to diagnose (a single id).'}, 'whoCan': {'type': 'string', 'description': 'Comma-separated ops (read,update,delete,create) to also list who can perform each on this nest.'}, 'forUser': {'type': 'string', 'description': 'Diagnose rights for this user id instead of the caller. Requires the caller to be an admin of the nest.'}}}
输入模式
{'type': 'object', 'required': ['workspaceId', 'agentUserId'], 'properties': {'agentUserId': {'type': 'string', 'description': "The agent's bot user ID"}, 'workspaceId': {'type': 'string', 'description': 'Workspace ID the agent belongs to'}}}
输入模式
{'type': 'object', 'required': ['workspaceId', 'circleId'], 'properties': {'circleId': {'type': 'string', 'description': 'Circle ID'}, 'workspaceId': {'type': 'string', 'description': 'Workspace ID'}, 'stripDescription': {'type': 'boolean', 'description': 'Strip description fields to shrink the response. Use for bulk or index reads.'}}}
输入模式
{'type': 'object', 'required': ['workspaceId', 'circleId'], 'properties': {'page': {'type': 'number', 'description': 'Page number (1-indexed)'}, 'sort': {'type': 'string', 'description': "Sort field: title, createdAt, updatedAt, due, activityAt, order. Prefix '-' to reverse. For 'recently active' use '-activityAt' (includes children), not '-updatedAt' (own edits only)."}, 'limit': {'type': 'number', 'description': 'Omit on first call to see meta.total count'}, 'circleId': {'type': 'string', 'description': 'Circle ID'}, 'workspaceId': {'type': 'string', 'description': 'Workspace ID'}, 'stripDescription': {'type': 'boolean', 'description': 'Strip description fields to shrink the response. Use for bulk or index reads.'}}}
输入模式
{'type': 'object', 'required': ['nestId'], 'properties': {'depth': {'oneOf': [{'type': 'number'}, {'enum': ['all'], 'type': 'string'}], 'description': "How deep below the context nest to look for comments. 0 (default) returns only comments directly on this nest; N includes comments on descendants up to N levels deep; 'all' includes comments on this nest and every descendant."}, 'nestId': {'type': 'string', 'description': "Nest ID to get comments from. Pass a workspace ID to gather communication across the whole workspace (combine with depth='all')."}, 'unread': {'type': 'boolean', 'description': 'true for comments you have not read, false for the ones you have. Omit for all. Combine with depth to sweep a circle for what you have missed.'}}}
输入模式
{'type': 'object', 'required': ['workspaceId', 'connectionId'], 'properties': {'workspaceId': {'type': 'string', 'description': 'Workspace ID the binding belongs to'}, 'connectionId': {'type': 'string', 'description': 'Binding ID from nestr_list_connections'}}}
输入模式
{'type': 'object', 'properties': {'stripDescription': {'type': 'boolean', 'description': 'Strip description fields to shrink the response. Use for bulk or index reads.'}}}
输入模式
{'type': 'object', 'required': ['threadId'], 'properties': {'depth': {'type': ['number', 'string'], 'description': "Include posts on descendant nests, or 'all'"}, 'unread': {'type': 'boolean', 'description': 'true for unread posts, false for read ones. Omit for all.'}, 'threadId': {'type': 'string', 'description': 'Thread id'}}}
输入模式
{'type': 'object', 'required': ['threadId'], 'properties': {'unread': {'type': 'boolean', 'description': 'true embeds unread posts, false embeds read ones'}, 'threadId': {'type': 'string', 'description': 'Thread id'}}}
输入模式
{'type': 'object', 'required': ['nestId', 'relation'], 'properties': {'page': {'type': 'number', 'description': 'Page number for pagination'}, 'limit': {'type': 'number', 'description': 'Max results per page (default 50)'}, 'nestId': {'type': 'string', 'description': 'Nest ID to get graph links for'}, 'relation': {'type': 'string', 'description': "Relation name (e.g., 'meeting' for meeting agenda items)"}, 'direction': {'enum': ['outgoing', 'incoming'], 'type': 'string', 'description': "Link direction: 'outgoing' (default) = links FROM this nest, 'incoming' = links TO this nest"}}}
输入模式
{'type': 'object', 'required': ['nestId'], 'properties': {'nestId': {'type': 'string', 'description': 'Inbox item ID'}, 'stripDescription': {'type': 'boolean', 'description': 'Strip description fields to shrink the response. Use for bulk or index reads.'}}}
输入模式
{'type': 'object', 'required': ['workspaceId', 'metricId'], 'properties': {'metricId': {'type': 'string', 'description': "Metric ID/type from getInsights (e.g., 'role_count', 'tactical_completed')"}, 'workspaceId': {'type': 'string', 'description': 'Workspace ID'}}}
输入模式
{'type': 'object', 'required': ['workspaceId', 'metricId'], 'properties': {'to': {'type': 'string', 'description': 'End date (ISO format)'}, 'from': {'type': 'string', 'description': 'Start date (ISO format)'}, 'limit': {'type': 'number', 'description': 'Maximum data points'}, 'metricId': {'type': 'string', 'description': 'Metric ID from getInsights'}, 'workspaceId': {'type': 'string', 'description': 'Workspace ID'}}}
输入模式
{'type': 'object', 'required': ['workspaceId'], 'properties': {'nestId': {'type': 'string', 'description': 'Filter metrics for a specific circle/nest (Pro plan only). Cannot be combined with userId.'}, 'userId': {'type': 'string', 'description': 'Filter metrics for a specific user (Pro plan only). Cannot be combined with nestId.'}, 'endDate': {'type': 'string', 'description': 'End date for metrics query (ISO format)'}, 'workspaceId': {'type': 'string', 'description': 'Workspace ID'}, 'includeSubCircles': {'type': 'boolean', 'description': 'Include metrics from sub-circles (default: true). Cannot be false when userId is provided.'}}}
输入模式
{'type': 'object', 'required': ['workspaceId', 'labelId'], 'properties': {'labelId': {'type': 'string', 'description': 'Label ID'}, 'workspaceId': {'type': 'string', 'description': 'Workspace ID'}}}
输入模式
{'type': 'object', 'properties': {'fullWorkspaces': {'type': 'boolean', 'description': 'Set true to include full workspace details. Recommended on first call.'}}}
输入模式
{'type': 'object', 'required': ['nestId'], 'properties': {'hints': {'enum': ['summary', 'full', True, False], 'type': ['string', 'boolean'], 'description': "Contextual hints. 'summary' keeps the per-nest signal (type, severity, count, url, and the `query` that finds every other nest with the same problem) and drops the fixed teaching prose and endpoint list. 'full' is the whole payload. false for none. Defaults to 'full' on a single read, which is what you want when you asked about one nest."}, 'nestId': {'type': 'string', 'description': "Nest ID, or comma-separated IDs for a batch (e.g. 'id1,id2'). Keep the URL under 2000 chars."}, 'rights': {'type': 'boolean', 'description': "Single nest. The caller's composed rights (self read/update/delete) plus a deny trace naming what blocks each op, and why."}, 'whoCan': {'type': 'string', 'description': 'Single nest. Comma-separated ops (read,update,delete,create): who can perform each (admins + role-holders), with contact for admin callers.'}, 'forUser': {'type': 'string', 'description': 'Single nest, with rights=true. Rights for this user id instead of the caller. Caller must be a nest admin.'}, 'hintTypes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Keep only these hint types.'}, 'provenance': {'type': 'boolean', 'description': 'Single nest. Which label and circle context defines each field and property, e.g. why a role has a given icon.'}, 'minSeverity': {'enum': ['info', 'suggestion', 'warning', 'alert'], 'type': 'string', 'description': 'Drop hints below this severity.'}, 'fieldsMetaData': {'type': 'boolean', 'description': 'Set to true to include field schema metadata (available options, field types)'}, 'stripDescription': {'type': 'boolean', 'description': 'Strip description fields to shrink the response. Use for bulk or index reads.'}}}
输入模式
{'type': 'object', 'required': ['nestId'], 'properties': {'page': {'type': 'number', 'description': 'Page number (1-indexed)'}, 'sort': {'type': 'string', 'description': "Sort field: title, createdAt, updatedAt, due, activityAt, order. Prefix '-' to reverse. For 'recently active' use '-activityAt' (includes children), not '-updatedAt' (own edits only)."}, 'hints': {'enum': ['summary', 'full', True, False], 'type': ['string', 'boolean'], 'description': "Contextual hints. 'summary' keeps the per-nest signal (type, severity, count, url, and the `query` that finds every other nest with the same problem) and drops the fixed teaching prose and endpoint list. 'full' is the whole payload. false for none. Defaults to 'summary' here: a listing at 'full' repeats the same paragraph once per row."}, 'limit': {'type': 'number', 'description': 'Omit on first call to see meta.total count'}, 'nestId': {'type': 'string', 'description': 'Parent nest ID'}, 'search': {'type': 'string', 'description': "Search scoped to this nest, full operator syntax. Ask for the subset you want instead of fetching every child and filtering: `label:role` for a circle's roles, `label:project fields.project.status:Waiting` for its waiting projects. `depth:1` is applied when you set no depth and the response says so in `appliedDefaults`; pass `depth:2` or higher to reach further down."}, 'hintTypes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Keep only these hint types.'}, '_listTitle': {'type': 'string', 'description': 'Short descriptive title for the list UI header (e.g., "Tasks for Website Redesign", "API project sub-tasks"). Include the parent name for context.'}, 'linkedUsers': {'type': 'boolean', 'description': 'Resolve every user id in the results to a full user, returned once in `linked.users`. One request instead of one per id.'}, 'minSeverity': {'enum': ['info', 'suggestion', 'warning', 'alert'], 'type': 'string', 'description': 'Drop hints below this severity.'}, 'stripDescription': {'type': 'boolean', 'description': 'Strip description fields to shrink the response. Use for bulk or index reads.'}}}
输入模式
{'type': 'object', 'required': ['nestId'], 'properties': {'nestId': {'type': 'string', 'description': 'Nest or comment ID whose file attachments to list'}}}
输入模式
{'type': 'object', 'required': ['workspaceId'], 'properties': {'page': {'type': 'number', 'description': 'Page number (1-indexed)'}, 'sort': {'type': 'string', 'description': "Sort field: title, createdAt, updatedAt, due, activityAt, order. Prefix '-' to reverse. For 'recently active' use '-activityAt' (includes children), not '-updatedAt' (own edits only)."}, 'limit': {'type': 'number', 'description': 'Omit on first call to see meta.total count'}, '_listTitle': {'type': 'string', 'description': 'Short descriptive title for the list UI header (e.g., "Engineering projects", "All projects"). Omit for default.'}, 'linkedUsers': {'type': 'boolean', 'description': 'Resolve every user id in the results to a full user, returned once in `linked.users`. One request instead of one per id.'}, 'workspaceId': {'type': 'string', 'description': 'Workspace ID'}, 'stripDescription': {'type': 'boolean', 'description': 'Strip description fields to shrink the response. Use for bulk or index reads.'}}}
输入模式
{'type': 'object', 'required': ['nestId', 'tensionId'], 'properties': {'nestId': {'type': 'string', 'description': 'ID of the circle or role the tension belongs to'}, 'tensionId': {'type': 'string', 'description': 'Tension ID'}}}
输入模式
{'type': 'object', 'required': ['nestId', 'tensionId', 'partId'], 'properties': {'nestId': {'type': 'string', 'description': 'ID of the circle or role the tension belongs to'}, 'partId': {'type': 'string', 'description': 'Part ID to get changes for'}, 'tensionId': {'type': 'string', 'description': 'Tension ID'}}}
输入模式
{'type': 'object', 'required': ['nestId', 'tensionId', 'partId'], 'properties': {'nestId': {'type': 'string', 'description': 'ID of the circle or role the tension belongs to'}, 'partId': {'type': 'string', 'description': 'Part ID'}, 'tensionId': {'type': 'string', 'description': 'Tension ID'}}}
输入模式
{'type': 'object', 'required': ['nestId', 'tensionId'], 'properties': {'nestId': {'type': 'string', 'description': 'ID of the circle or role the tension belongs to'}, 'tensionId': {'type': 'string', 'description': 'Tension ID'}}}
输入模式
{'type': 'object', 'required': ['nestId', 'tensionId'], 'properties': {'nestId': {'type': 'string', 'description': 'ID of the circle or role the tension belongs to'}, 'tensionId': {'type': 'string', 'description': 'Tension ID'}}}
输入模式
{'type': 'object', 'required': ['workspaceId', 'userId'], 'properties': {'userId': {'type': 'string', 'description': 'User ID'}, 'workspaceId': {'type': 'string', 'description': 'Workspace ID'}}}
输入模式
{'type': 'object', 'required': ['workspaceId'], 'properties': {'workspaceId': {'type': 'string', 'description': 'Workspace ID'}, 'stripDescription': {'type': 'boolean', 'description': 'Strip description fields to shrink the response. Use for bulk or index reads.'}}}
输入模式
{'type': 'object', 'required': ['workspaceId'], 'properties': {'workspaceId': {'type': 'string', 'description': 'Workspace ID'}}}
输入模式
{'type': 'object', 'properties': {'topic': {'type': 'string', 'description': "Internal topic key or help-article slug. Use 'topics' for the full list of internal topics."}, 'search': {'type': 'string', 'description': 'Free-text query against the public help articles. Returns slugs to fetch via `topic`.'}, 'maxImages': {'type': 'integer', 'minimum': 1, 'description': 'Article mode. Caps the default selection (first N content images). Default 3, max 6. Ignored when imageIndexes is set.'}, 'imageIndexes': {'type': 'array', 'items': {'type': 'integer', 'minimum': 0}, 'description': 'Article mode. Attach screenshots by [index] from the numbered list in a prior response, e.g. [4,5,6]. Overrides the default selection and the maxImages cap, attaching exactly these in order.'}, 'includeImages': {'type': 'boolean', 'description': 'Article mode. Default false (markdown plus a numbered image-URL list). True attaches the first maxImages content screenshots inline, downscaled. Header, thumbnail and uncaptioned images are never auto-attached; reach those with imageIndexes.'}}}
输入模式
{'type': 'object', 'required': ['nestId'], 'properties': {'nestId': {'type': 'string', 'description': 'Nest to roll up. A circle or the workspace root is the useful scope.'}, 'hintTypes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Count only these hint types. Omit for every type this can compute.'}, 'sampleSize': {'type': 'number', 'description': 'Example nests per type. Default 10, max 100, 0 for counts only.'}, 'minSeverity': {'enum': ['info', 'suggestion', 'warning', 'alert'], 'type': 'string', 'description': 'Drop rules below this severity. \'warning\' is the useful floor for "what needs attention".'}}}
输入模式
{'type': 'object', 'required': ['workspaceId'], 'properties': {'page': {'type': 'number', 'description': 'Page number (1-indexed)'}, 'sort': {'type': 'string', 'description': "Sort field: title, createdAt, updatedAt, due, activityAt, order. Prefix '-' to reverse. For 'recently active' use '-activityAt' (includes children), not '-updatedAt' (own edits only)."}, 'limit': {'type': 'number', 'description': 'Omit on first call to see meta.total count'}, 'workspaceId': {'type': 'string', 'description': 'Workspace ID'}, 'stripDescription': {'type': 'boolean', 'description': 'Strip description fields to shrink the response. Use for bulk or index reads.'}}}
输入模式
{'type': 'object', 'required': ['workspaceId'], 'properties': {'workspaceId': {'type': 'string', 'description': 'Workspace ID whose bindings to list'}, 'includeDisabled': {'type': 'boolean', 'description': 'Include removed bindings. Default false.'}}}
输入模式
{'type': 'object', 'required': ['workspaceId'], 'properties': {'workspaceId': {'type': 'string', 'description': 'Workspace ID whose connector catalog to list'}}}
输入模式
{'type': 'object', 'required': ['workspaceId'], 'properties': {'workspaceId': {'type': 'string', 'description': 'Workspace ID whose available connector templates to list'}}}
输入模式
{'type': 'object', 'properties': {'page': {'type': 'number', 'description': 'Page number, 1-based'}, 'limit': {'type': 'number', 'description': 'Threads per page (default 50, max 200)'}, 'unread': {'type': 'boolean', 'description': 'Only threads with messages you have not read'}, 'withUser': {'type': 'string', 'description': 'Only threads with this person: user id, username or email'}, 'includeCompleted': {'type': 'boolean', 'description': 'Also return closed conversations (left out by default)'}}}
输入模式
{'type': 'object', 'properties': {'completedAfter': {'type': 'string', 'description': 'Include completed items from this date (ISO format). If omitted, only non-completed items are returned. For reordering, this default is usually sufficient — nestr_reorder_inbox only requires the IDs of items you want to reposition.'}, 'stripDescription': {'type': 'boolean', 'description': 'Strip description fields to shrink the response. Use for bulk or index reads.'}}}
输入模式
{'type': 'object', 'required': ['workspaceId'], 'properties': {'page': {'type': 'number', 'description': 'Page number (1-indexed)'}, 'limit': {'type': 'number', 'description': 'Omit on first call to see meta.total count'}, 'search': {'type': 'string', 'description': 'Search query'}, 'workspaceId': {'type': 'string', 'description': 'Workspace ID'}}}
输入模式
{'type': 'object', 'properties': {'context': {'type': 'string', 'description': 'Optional context filter (e.g., workspace ID or circle ID)'}}}
输入模式
{'type': 'object', 'properties': {'skip': {'type': 'number', 'description': 'Number of results to skip (default 0)'}, 'type': {'enum': ['all', 'me', 'relevant'], 'type': 'string', 'description': "Filter by type: 'all' (default), 'me' (direct), 'relevant' (delayed)"}, 'group': {'type': 'string', 'description': 'Filter by group (mentions, replies, direct_message, reactions, updates, governance)'}, 'limit': {'type': 'number', 'description': 'Max results (default 50, max 200)'}, 'showRead': {'type': 'boolean', 'description': 'Include already-read notifications (default false)'}}}
输入模式
{'type': 'object', 'required': ['nestId'], 'properties': {'limit': {'type': 'number', 'description': 'Occurrences per page. Default 10, capped at 50.'}, 'cursor': {'type': ['number', 'string'], 'description': 'Walk outward from this instant, exclusive. Pass back nextCursor from the previous page. Defaults to now.'}, 'nestId': {'type': 'string', 'description': 'The series, or any occurrence of it. Both resolve to the same series.'}, 'direction': {'enum': ['future', 'past'], 'type': 'string', 'description': "'future' (default) lists upcoming occurrences, soonest first. 'past' lists history, most recent first."}}}
输入模式
{'type': 'object', 'properties': {}}
输入模式
{'type': 'object', 'properties': {}}
输入模式
{'type': 'object', 'required': ['key'], 'properties': {'key': {'type': 'string', 'description': "Queue key, e.g. 'support'"}, 'unread': {'type': 'boolean', 'description': 'Only threads you have not read'}}}
输入模式
{'type': 'object', 'required': ['workspaceId'], 'properties': {'page': {'type': 'number', 'description': 'Page number (1-indexed)'}, 'sort': {'type': 'string', 'description': "Sort field: title, createdAt, updatedAt, due, activityAt, order. Prefix '-' to reverse. For 'recently active' use '-activityAt' (includes children), not '-updatedAt' (own edits only)."}, 'limit': {'type': 'number', 'description': 'Omit on first call to see meta.total count'}, 'linkedUsers': {'type': 'boolean', 'description': 'Resolve every user id in the results to a full user, returned once in `linked.users`. One request instead of one per id.'}, 'workspaceId': {'type': 'string', 'description': 'Workspace ID'}, 'stripDescription': {'type': 'boolean', 'description': 'Strip description fields to shrink the response. Use for bulk or index reads.'}}}
输入模式
{'type': 'object', 'required': ['nestId'], 'properties': {'page': {'type': 'number', 'description': 'Page number (1-indexed)'}, 'sort': {'type': 'string', 'description': "Sort field: title, createdAt, updatedAt, due, activityAt, order. Prefix '-' to reverse. For 'recently active' use '-activityAt' (includes children), not '-updatedAt' (own edits only)."}, 'limit': {'type': 'number', 'description': 'Max results to return'}, 'nestId': {'type': 'string', 'description': 'ID of the circle or role to list tensions for'}, 'search': {'type': 'string', 'description': 'Search query to filter tensions'}}}
输入模式
{'type': 'object', 'properties': {'context': {'type': 'string', 'description': 'Optional context filter (e.g., workspace ID or circle ID)'}}}
输入模式
{'type': 'object', 'properties': {'userId': {'type': 'string', 'description': 'User ID to look up. Omit for yourself. Requires workspaceId when set.'}, 'workspaceId': {'type': 'string', 'description': 'Workspace ID. Required when userId is set; omit to answer across every workspace you belong to.'}}}
输入模式
{'type': 'object', 'required': ['workspaceId'], 'properties': {'page': {'type': 'number', 'description': 'Page number (1-indexed)'}, 'limit': {'type': 'number', 'description': 'Omit on first call to see meta.total count'}, 'agents': {'enum': ['only', 'exclude'], 'type': 'string', 'description': "'only' for this workspace's agents, 'exclude' for its people. Omit for both."}, 'search': {'type': 'string', 'description': 'Search by name or email'}, 'workspaceId': {'type': 'string', 'description': 'Workspace ID'}}}
输入模式
{'type': 'object', 'properties': {'page': {'type': 'number', 'description': 'Page number (1-indexed) for pagination'}, 'sort': {'type': 'string', 'description': "Sort field: title, createdAt, updatedAt, due, activityAt, order. Prefix '-' to reverse. For 'recently active' use '-activityAt' (includes children), not '-updatedAt' (own edits only)."}, 'limit': {'type': 'number', 'description': 'Omit on first call to see meta.total count'}, 'search': {'type': 'string', 'description': 'Search query to filter workspaces'}, 'stripDescription': {'type': 'boolean', 'description': 'Strip description fields to shrink the response. Use for bulk or index reads.'}}}
输入模式
{'type': 'object', 'properties': {}}
输入模式
{'type': 'object', 'required': ['postId'], 'properties': {'postId': {'type': 'string', 'description': 'Post to mark read up to'}}}
输入模式
{'type': 'object', 'required': ['nestId', 'tensionId', 'partId'], 'properties': {'due': {'type': 'string', 'description': 'Updated due date (ISO format)'}, 'role': {'type': 'string', 'description': 'Updated role for an operational output. A role id; pass an empty string to clear it.'}, 'title': {'type': 'string', 'description': 'Updated title'}, 'users': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Updated user assignments'}, 'labels': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Updated labels'}, 'nestId': {'type': 'string', 'description': 'ID of the circle or role the tension belongs to'}, 'partId': {'type': 'string', 'description': 'Part ID to modify'}, 'domains': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Updated domains (replaces all; children tools for individual edits)'}, 'purpose': {'type': 'string', 'description': 'Only for workspaces, circles and roles: a short aspirational statement. Details belong in description, not here. Supports HTML.'}, 'parentId': {'type': 'string', 'description': 'Updated parent ID'}, 'tensionId': {'type': 'string', 'description': 'Tension ID'}, 'description': {'type': 'string', 'description': 'Updated description — the primary content field. Supports Markdown and HTML.'}, 'accountabilities': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Updated accountabilities (replaces all; children tools for individual edits)'}}}
输入模式
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Max activity items to return (default 50, max 200).'}, 'withUser': {'type': 'string', 'description': "Scope DM considerations to the conversation with this user id. Agent internal considerations from direct-message runs are redacted to an anonymous marker unless you name that conversation's counterpart here."}}}
输入模式
{'type': 'object', 'required': ['threadId', 'body'], 'properties': {'body': {'type': 'string', 'description': 'Message text. Supports HTML and Markdown.'}, 'threadId': {'type': 'string', 'description': 'Thread id'}}}
输入模式
{'type': 'object', 'required': ['nestId', 'fileId'], 'properties': {'fileId': {'type': 'string', 'description': 'File ID from nestr_get_nest_files'}, 'nestId': {'type': 'string', 'description': 'Nest or comment ID the file is attached to'}}}
输入模式
{'type': 'object', 'required': ['workspaceId'], 'properties': {'name': {'type': 'string', 'description': "Unique connector name within the workspace catalog. Required unless templateId is given, where it defaults to the template's own name."}, 'type': {'enum': ['mcp', 'cli', 'api'], 'type': 'string', 'description': "Transport: 'mcp' (MCP server over a url), 'api' (REST endpoint over a url), or 'cli' (a command). Required unless templateId is given."}, 'config': {'type': 'object', 'description': 'Transport config, no secret. mcp/api need a url, cli a command. Optional non-secret headers go under headers.'}, 'exposure': {'type': 'object', 'description': "Which owners may bind: { userAgent: boolean, domainGated: boolean }. domainGated:true allows binding to a role's domain."}, 'templateId': {'type': 'string', 'description': 'Id of a template from nestr_list_connector_templates. Given this, everything else is filled in from the template and you should omit type/config/capabilities/exposure/authStrategy. ALWAYS prefer this over hand-registering a vendor the deployment already knows.'}, 'workspaceId': {'type': 'string', 'description': 'Workspace ID to register the connector in'}, 'authStrategy': {'enum': ['secret', 'oauth2'], 'type': 'string', 'description': "How a principal connects: 'secret' (one-time, via the Connect button) or 'oauth2'. The agent never sees it."}, 'capabilities': {'type': 'object', 'description': '{ discover: boolean, tools: [{ name, description, inputSchema }] }. discover:true lets the connector self-describe its tools at runtime.'}}}
输入模式
{'type': 'object', 'required': ['workspaceId', 'connectionId'], 'properties': {'workspaceId': {'type': 'string', 'description': 'Workspace ID the binding belongs to'}, 'connectionId': {'type': 'string', 'description': 'Binding ID from nestr_list_connections'}}}
输入模式
{'type': 'object', 'required': ['workspaceId', 'connectorId'], 'properties': {'connectorId': {'type': 'string', 'description': 'ID of the connector to remove'}, 'workspaceId': {'type': 'string', 'description': 'Workspace ID the connector belongs to'}}}
输入模式
{'type': 'object', 'required': ['nestIds'], 'properties': {'nestIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Array of nest IDs to remove from the daily plan'}}}
输入模式
{'type': 'object', 'required': ['nestId', 'relation', 'targetId'], 'properties': {'nestId': {'type': 'string', 'description': 'Source nest ID'}, 'relation': {'type': 'string', 'description': "Relation name (e.g., 'meeting')"}, 'targetId': {'type': 'string', 'description': 'Target nest ID to unlink'}}}
输入模式
{'type': 'object', 'required': ['nestId', 'labelId'], 'properties': {'nestId': {'type': 'string', 'description': 'Nest ID'}, 'labelId': {'type': 'string', 'description': 'Label ID to remove'}}}
输入模式
{'type': 'object', 'required': ['nestId', 'tensionId', 'partId'], 'properties': {'nestId': {'type': 'string', 'description': 'ID of the circle or role the tension belongs to'}, 'partId': {'type': 'string', 'description': 'Part ID to remove from the proposal'}, 'tensionId': {'type': 'string', 'description': 'Tension ID'}}}
输入模式
{'type': 'object', 'required': ['nestIds'], 'properties': {'nestIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Array of inbox item IDs in the desired order'}}}
输入模式
{'type': 'object', 'required': ['nestId', 'position', 'relatedNestId'], 'properties': {'nestId': {'type': 'string', 'description': 'ID of the inbox item to reorder'}, 'position': {'enum': ['before', 'after'], 'type': 'string', 'description': 'Position relative to the reference item'}, 'relatedNestId': {'type': 'string', 'description': 'ID of the reference inbox item to position relative to'}}}
输入模式
{'type': 'object', 'required': ['nestId', 'position', 'relatedNestId'], 'properties': {'nestId': {'type': 'string', 'description': 'ID of the nest to reorder'}, 'position': {'enum': ['before', 'after'], 'type': 'string', 'description': 'Position relative to the reference nest'}, 'relatedNestId': {'type': 'string', 'description': 'ID of the reference nest to position relative to'}}}
输入模式
{'type': 'object', 'required': ['workspaceId', 'connectionId'], 'properties': {'workspaceId': {'type': 'string', 'description': 'Workspace ID the binding belongs to'}, 'connectionId': {'type': 'string', 'description': 'Binding ID from nestr_list_connections'}}}
输入模式
{'type': 'object', 'required': ['workspaceId', 'agentUserId', 'nestId'], 'properties': {'nestId': {'type': 'string', 'description': 'The nest the run is pinned to: a role, a project, a task'}, 'message': {'type': 'string', 'description': "What this run is for. Omit for a plain 'advance this item' run."}, 'agentUserId': {'type': 'string', 'description': "The agent's bot user ID"}, 'workspaceId': {'type': 'string', 'description': 'Workspace ID the agent belongs to'}}}
输入模式
{'type': 'object', 'required': ['workspaceId', 'query'], 'properties': {'page': {'type': 'number', 'description': 'Page number (1-indexed) for fetching additional pages'}, 'sort': {'type': 'string', 'description': "Sort field: title, createdAt, updatedAt, due, activityAt, order. Prefix '-' to reverse. For 'recently active' use '-activityAt' (includes children), not '-updatedAt' (own edits only). Takes precedence over sort:/sort-order: operators in the query."}, 'limit': {'type': 'number', 'description': 'Max results per page. Omit on the first call so meta.total shows the match count.'}, 'query': {'type': 'string', 'description': "Search query with optional operators (e.g., 'label:role', 'assignee:me completed:false')"}, 'strict': {'type': 'boolean', 'description': 'Reject the search when any operator, label or field filter in it was not recognised, rather than silently returning a broader result. Use it whenever you are counting rather than browsing: without it, a mistyped filter comes back as a real and larger answer with nothing to say the filter was dropped.'}, '_listTitle': {'type': 'string', 'description': 'Short title for the list UI header, 2-4 words, e.g. Marketing projects. Say what is shown, not the query.'}, 'linkedUsers': {'type': 'boolean', 'description': 'Resolve every user id in the results to a full user, returned once in `linked.users`. Prefer this over calling nestr_get_user per id.'}, 'workspaceId': {'type': 'string', 'description': 'Workspace ID to search in'}, 'stripDescription': {'type': 'boolean', 'description': 'Strip description fields to shrink the response. Use for bulk or index reads.'}}}
输入模式
{'type': 'object', 'required': ['nestId', 'rrule'], 'properties': {'rrule': {'type': ['string', 'null'], 'description': 'RFC-5545 RRULE string to set recurrence, or null to remove it. Required: pass null explicitly rather than omitting the field.'}, 'nestId': {'type': 'string', 'description': 'Nest ID to set or remove recurrence on'}}}
输入模式
{'type': 'object', 'required': ['nestId', 'instant'], 'properties': {'scope': {'enum': ['occurrence', 'following'], 'type': 'string', 'description': "'occurrence' (default) skips this one occurrence and never ends the series. 'following' deletes this occurrence and every later one, keeping the history before it."}, 'nestId': {'type': 'string', 'description': 'The series, or any occurrence of it.'}, 'instant': {'type': ['number', 'string'], 'description': 'Which occurrence: the `instant` value from nestr_list_occurrences, in epoch milliseconds. An ISO-8601 date is accepted only with a Z or an offset, and must be the exact instant the rule produces.'}}}
输入模式
{'type': 'object', 'required': ['user'], 'properties': {'user': {'type': 'string', 'description': 'Who to message: user id, username or email'}, 'title': {'type': 'string', 'description': 'Optional title. Defaults to a dated one, as the app uses.'}}}
输入模式
{'type': 'object', 'required': ['commentId', 'body'], 'properties': {'body': {'type': 'string', 'description': "Updated comment text. Supports HTML and @mentions. Mentions MUST use literal curly braces: `@{userId:roleId}`, NOT `@userId`. Without braces nothing is linked and nobody is notified. Forms: `@{userId:roleId}` (preferred, names the role), `@{userId}`, `@{email}`, `@{circle}` (all fillers in the nearest ancestor circle). The second id MUST be a ROLE or CIRCLE nest, never the project, task or tension you are commenting on: the mention renders that nest's title where the role name belongs, so a project id produces 'Henk as Write a weekly blog post', which reads as though the project were his role. When you do not know which role the person is acting in, use `@{userId}` rather than substituting the nest you happen to be working on."}, 'labels': {'type': 'array', 'items': {'type': 'string'}, 'description': "Optional full set of label IDs for the comment. When provided, this REPLACES the comment's existing labels. To incrementally add or remove a single label without replacing the rest, use nestr_add_label / nestr_remove_label with the commentId as the nestId."}, 'commentId': {'type': 'string', 'description': 'Comment ID to update'}}}
输入模式
{'type': 'object', 'required': ['workspaceId', 'connectorId'], 'properties': {'name': {'type': 'string', 'description': 'Unique connector name within the workspace catalog'}, 'type': {'enum': ['mcp', 'cli', 'api'], 'type': 'string', 'description': 'Transport'}, 'config': {'type': 'object', 'description': 'Per-type transport config, no secret'}, 'enabled': {'type': 'boolean', 'description': 'Switch the connector on or off in this workspace'}, 'exposure': {'type': 'object', 'description': 'Exposure policy: { userAgent, domainGated }'}, 'connectorId': {'type': 'string', 'description': 'ID of the connector to update'}, 'workspaceId': {'type': 'string', 'description': 'Workspace ID the connector belongs to'}, 'authStrategy': {'enum': ['secret', 'oauth2'], 'type': 'string', 'description': 'How a principal connects'}, 'capabilities': {'type': 'object', 'description': 'Capability descriptor'}}}
输入模式
{'type': 'object', 'required': ['threadId'], 'properties': {'title': {'type': 'string', 'description': 'New thread title'}, 'users': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The participant list you want, replacing the current one'}, 'threadId': {'type': 'string', 'description': 'Thread id'}, 'completed': {'type': ['boolean', 'null'], 'description': 'true closes the conversation, null reopens it'}}}
输入模式
{'type': 'object', 'required': ['nestId'], 'properties': {'data': {'type': 'object', 'description': 'Custom data storage'}, 'title': {'type': 'string', 'description': 'Updated title (plain text, HTML stripped)'}, 'nestId': {'type': 'string', 'description': 'Inbox item ID'}, 'completed': {'type': 'boolean', 'description': 'Mark as completed (processed)'}, 'description': {'type': 'string', 'description': 'Updated description (supports Markdown and HTML)'}}}
输入模式
{'type': 'object', 'required': ['nestId'], 'properties': {'due': {'type': 'string', 'description': 'Due date (ISO format). For projects/tasks: deadline. For roles: re-election date. For meetings: start time.'}, 'data': {'type': 'object', 'description': "Key-value data store shared with Nestr internals — never overwrite existing keys. Namespace your own data under 'mcp.' (e.g., { 'mcp.lastSync': '...' }). For AI knowledge persistence, use skills instead."}, 'title': {'type': 'string', 'description': 'New title (plain text, HTML tags stripped)'}, 'users': {'type': 'array', 'items': {'type': 'string'}, 'description': 'User IDs to assign'}, 'fields': {'type': 'object', 'description': "Field updates (e.g., { 'project.status': 'Current' })"}, 'labels': {'type': 'array', 'items': {'type': 'string'}, 'description': "Label IDs to set (e.g., ['project'] to convert an item into a project)"}, 'nestId': {'type': 'string', 'description': 'Nest ID to update'}, 'domains': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Domain titles for roles/circles (replaces existing). Requires workspaceId.'}, 'purpose': {'type': 'string', 'description': 'Only for workspaces, circles and roles: a short aspirational statement. Details belong in description, not here. Supports HTML.'}, 'parentId': {'type': 'string', 'description': 'New parent ID (move nest to different location)'}, 'completed': {'type': 'boolean', 'description': "Mark task as completed (root-level field, not in fields). Note: Projects use fields['project.status'] = 'Done' instead."}, 'description': {'type': 'string', 'description': 'The primary content field: details, context, acceptance criteria. Structured data goes in fields, progress in comments. Supports Markdown and HTML.'}, 'workspaceId': {'type': 'string', 'description': 'Workspace ID. Required when updating accountabilities or domains.'}, 'accountabilities': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Accountability titles for roles/circles (replaces existing). Requires workspaceId.'}}}
输入模式
{'type': 'object', 'required': ['nestId', 'instant'], 'properties': {'due': {'type': 'string', 'description': 'Due date (ISO format). For projects/tasks: deadline. For roles: re-election date. For meetings: start time.'}, 'data': {'type': 'object', 'description': "Key-value data store shared with Nestr internals — never overwrite existing keys. Namespace your own data under 'mcp.' (e.g., { 'mcp.lastSync': '...' }). For AI knowledge persistence, use skills instead."}, 'title': {'type': 'string', 'description': 'New title (plain text, HTML tags stripped)'}, 'users': {'type': 'array', 'items': {'type': 'string'}, 'description': 'User IDs to assign'}, 'fields': {'type': 'object', 'description': "Field updates (e.g., { 'project.status': 'Current' })"}, 'labels': {'type': 'array', 'items': {'type': 'string'}, 'description': "Label IDs to set (e.g., ['project'] to convert an item into a project)"}, 'nestId': {'type': 'string', 'description': 'The series, or any occurrence of it.'}, 'instant': {'type': ['number', 'string'], 'description': 'Which occurrence: the `instant` value from nestr_list_occurrences, in epoch milliseconds. An ISO-8601 date is accepted only with a Z or an offset, and must be the exact instant the rule produces.'}, 'purpose': {'type': 'string', 'description': 'Only for workspaces, circles and roles: a short aspirational statement. Details belong in description, not here. Supports HTML.'}, 'parentId': {'type': 'string', 'description': 'New parent ID (move nest to different location)'}, 'completed': {'type': 'boolean', 'description': "Mark task as completed (root-level field, not in fields). Note: Projects use fields['project.status'] = 'Done' instead."}, 'description': {'type': 'string', 'description': 'The primary content field: details, context, acceptance criteria. Structured data goes in fields, progress in comments. Supports Markdown and HTML.'}}}
输入模式
{'type': 'object', 'required': ['nestId', 'tensionId'], 'properties': {'needs': {'type': 'string', 'description': 'Updated need that is alive (plain text)'}, 'title': {'type': 'string', 'description': 'Updated title — the gap being sensed (plain text)'}, 'nestId': {'type': 'string', 'description': 'ID of the circle or role the tension belongs to'}, 'feeling': {'type': 'string', 'description': 'Updated feeling this tension evokes (plain text)'}, 'tensionId': {'type': 'string', 'description': 'Tension ID'}, 'description': {'type': 'string', 'description': 'Updated description — the observable facts (supports Markdown and HTML)'}}}
输入模式
{'type': 'object', 'required': ['nestId', 'tensionId', 'partId', 'childId', 'title'], 'properties': {'title': {'type': 'string', 'description': 'Updated title'}, 'nestId': {'type': 'string', 'description': 'ID of the circle or role the tension belongs to'}, 'partId': {'type': 'string', 'description': 'Part ID'}, 'childId': {'type': 'string', 'description': 'Child ID to update'}, 'tensionId': {'type': 'string', 'description': 'Tension ID'}}}
输入模式
{'type': 'object', 'required': ['nestId', 'tensionId', 'status'], 'properties': {'nestId': {'type': 'string', 'description': 'ID of the circle or role the tension belongs to'}, 'status': {'enum': ['proposed', 'draft'], 'type': 'string', 'description': "'proposed' to submit for voting, 'draft' to retract back to draft"}, 'tensionId': {'type': 'string', 'description': 'Tension ID'}}}
输入模式
{'type': 'object', 'required': ['nestId', 'name', 'contentType'], 'properties': {'name': {'type': 'string', 'description': 'File name including extension (e.g. "notes.md", "data.csv")'}, 'nestId': {'type': 'string', 'description': 'Nest or comment ID to attach the file to'}, 'content': {'type': 'string', 'description': 'File content as UTF-8 text (for text-native files: .md, .txt, .csv, .json, .html, .svg, code). Stored verbatim. Provide this OR dataBase64.'}, 'dataBase64': {'type': 'string', 'description': 'File bytes, base64-encoded. Provide this OR content.'}, 'contentType': {'type': 'string', 'description': 'MIME type (e.g. "text/markdown", "text/csv", "image/png")'}}}
输入模式
{'type': 'object', 'required': ['userId'], 'properties': {'limit': {'type': 'number', 'description': 'Max activity items to return (default 50, max 200).'}, 'userId': {'type': 'string', 'description': 'The user whose activity to fetch.'}}}
输入模式
{'type': 'object', 'properties': {'fileId': {'type': 'string', 'description': 'Read one document, from the index or from a search hit.'}, 'offset': {'type': 'number', 'description': "With fileId, continue from a previous nextOffset, or from a search hit's offset."}, 'search': {'type': 'string', 'description': "Find the passages across all the documents that match this. Use words the document would use, not the user's phrasing."}, 'workspaceId': {'type': 'string', 'description': 'Workspace whose documents to read. Omit when you can only reach one.'}}}
近期工具变更
类似的 MCP 服务器
Stable Baseline
Manages company documents, knowledge graphs, whiteboards, projects, plans, tasks, teams, and improvement workflows.
CollHub
Exposes CollHub documents, projects, comments, workflows, and connected data sources.
mcp
Provides access to company operations such as motions, plans, files, approvals, and shared organizational knowledge.
freedom-mcp
Supports company operations through commitments, teams, agents, customer evidence, leads, content workflows, spreadsheets, commer…
Dayze — Life Context
Provides authenticated personal life-context data and tools for contacts, memories, events, expenses, trips, assets, places, and …
YouSpot
Connects personal contacts, companies, notes, files, CRM records, email, Slack, LinkedIn, and calendars, with search, relationshi…
TaScan
Manages field-service projects, workers, task lists, subtasks, dispatch, geofenced work zones, inspections, remediation workflows…
Tango
Manages shared work between humans and agents through tasks, leases, handoffs, approvals, artifacts, comments, integrations, prog…