이 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…