此 MCP 可以做什么
Stores, searches, edits, and manages persistent user memories, notes, tasks, projects, profiles, and trackers across AI tools.
工具
输入模式
{'type': 'object', 'required': ['entityType'], 'properties': {'ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'entityType:"note"/"tracker_entry" — ids to trash (max 100); "rhythm"/"skill" — exactly one id; "profile_block" — block names to trash.'}, 'tagA': {'type': 'string', 'description': 'entityType:"tag_relation" (required) — one endpoint of the edge to remove.'}, 'tagB': {'type': 'string', 'description': 'entityType:"tag_relation" (required) — the other endpoint.'}, 'scope': {'enum': ['global', 'workspace', 'private'], 'type': 'string', 'description': 'Profile block scope; Project private overrides defaults, workspace requires workspaceId.'}, 'noteIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'entityType:"tracker_note_link" (required) — the notes to unlink.'}, 'projectId': {'type': 'string'}, 'entityType': {'enum': ['project', 'note', 'tracker_entry', 'rhythm', 'skill', 'profile_block', 'tag_relation', 'tracker_note_link'], 'type': 'string', 'description': 'What to trash.'}, 'operationId': {'type': 'string'}, 'trackerEntryId': {'type': 'string', 'description': 'entityType:"tracker_note_link" (required) — the entry to detach notes from.'}, 'expectedRevision': {'type': 'number'}}}
输入模式
{'type': 'object', 'required': ['entityType'], 'properties': {'op': {'enum': ['restore', 'restore_revision', 'apply', 'cancel', 'undo'], 'type': 'string', 'description': 'op:"restore" un-trashes notes or tracker entries by `ids`.'}, 'ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'op:"restore" — ids to un-trash (max 100).'}, 'goal': {'type': 'string', 'description': 'entityType:"rhythm" (required) — what the run should do. On entityType:"skill" this is `instructions`.'}, 'kind': {'type': 'string', 'description': 'entityType:"tracker" — habit | metric | goal | log | status | custom.'}, 'name': {'type': 'string', 'description': 'Area/project/tracker name; entityType:"skill" names prepare a preview of the replacement (rhythm names upsert).'}, 'unit': {'type': 'string', 'description': 'entityType:"tracker" — unit of measure.'}, 'actor': {'type': 'string', 'description': 'entityType:"task"/"area"/"project"/"heading" — who took the action (me|agent), written to the activity ledger.'}, 'notes': {'type': 'string', 'description': 'entityType:"task"/"area"/"project" — markdown body.'}, 'order': {'type': 'number', 'description': 'entityType:"task"/"area"/"project"/"heading" — sort order.'}, 'orgId': {'type': 'string', 'description': 'entityType:"area"/"project"/"heading" (required) — the container to update.'}, 'owner': {'enum': ['me', 'agent', 'unassigned'], 'type': 'string', 'description': 'entityType:"task" — assignee.'}, 'patch': {'type': 'object', 'description': 'Project patch: full schema on penny_write.'}, 'runId': {'type': 'string', 'description': 'entityType:"skill_run" (required) — the run to complete; same field on the legacy "rhythm_run".'}, 'scope': {'enum': ['global', 'workspace', 'private'], 'type': 'string', 'description': 'Profile: global|workspace. Projects: private; workspace requires workspaceId.'}, 'title': {'type': 'string', 'description': 'entityType:"task"/"heading" — the title/label.'}, 'areaId': {'type': 'string', 'description': 'entityType:"project" — the area the project belongs to.'}, 'fields': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Restore selection: field names or step:<stepId>; fields/resourceIds required.'}, 'status': {'type': 'string', 'description': 'task: open|in_progress|done|canceled. Repeating completion returns nextTaskId: act on that new occurrence; the completed ID rejects further status writes. skill_run/rhythm_run: done|error|skipped.'}, 'taskId': {'type': 'string', 'description': 'entityType:"task" (required) — the task to update.'}, 'whenAt': {'type': 'number', 'description': 'entityType:"task"/"project" — schedule date (ms epoch).'}, 'content': {'type': 'string', 'description': 'entityType:"profile" (required) — the new block content.'}, 'deliver': {'type': 'object', 'description': 'entityType:"skill": required with trigger (also rhythm); omit for on-demand. See penny_write for shape.'}, 'enabled': {'type': 'boolean', 'description': 'entityType:"skill": false pauses due signals, true resumes; requires skillId. MyPenny does not run skills.'}, 'entryId': {'type': 'string'}, 'payload': {'type': ['object', 'string']}, 'posture': {'type': 'string', 'description': 'entityType:"skill" with a `trigger` set (or legacy "rhythm") — read | propose | act.'}, 'skillId': {'type': 'string', 'description': 'entityType:"skill" pause/resume — the skill id (required with enabled).'}, 'trigger': {'type': 'object', 'description': 'entityType:"skill": optional (required for rhythm). Omit to return to on-demand. MyPenny does not run it; the connected agent receives due signals. See penny_write for shape; ALWAYS set IANA timezone, default UTC.'}, 'updates': {'type': 'array', 'items': {'type': 'object', 'required': ['memoryId', 'mode'], 'properties': {'mode': {'enum': ['patch', 'replace'], 'type': 'string'}, 'tags': {'type': 'array', 'items': {'type': 'string'}}, 'content': {'type': 'string', 'description': 'Required when mode is "patch".'}, 'memoryId': {'type': 'string'}, 'supersededBy': {'type': 'string', 'description': 'Required when mode is "replace" — the id of the note that replaces this one.'}, 'expectedUpdatedAt': {'type': 'number'}}}, 'maxItems': 100, 'description': 'entityType:"note" — patch or supersede existing notes (up to 100).'}, 'archived': {'type': 'boolean', 'description': 'Area/project/tracker: archive; false reactivates. Tracker definitions retire only this way.'}, 'deadline': {'type': 'number', 'description': 'entityType:"task"/"project" — hard due date (ms epoch).'}, 'snapshot': {'enum': ['before', 'after'], 'type': 'string', 'description': 'Skill restore_revision: which side of the history entry to restore (default before). Select after to recover a change that was undone.'}, 'agentNote': {'type': 'string'}, 'blockName': {'type': 'string', 'description': 'entityType:"profile" (required) — the profile block to upsert.'}, 'dependsOn': {'type': 'array', 'items': {'type': 'string'}, 'description': 'entityType:"task" — full replacement set of taskIds that must complete first.'}, 'historyId': {'type': 'string', 'description': 'restore_revision: Project history item or skill history item. Skill restoration prepares a preview; requires skillId and expectedUpdatedAt.'}, 'linkNotes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'entityType:"task" — note ids to link to this task.'}, 'projectId': {'type': 'string', 'description': 'entityType:"heading" (required) — the project the heading belongs to.'}, 'trackerId': {'type': 'string', 'description': 'entityType:"tracker" (required) — the tracker to update. Only the fields you pass are patched — omit any you don\'t want to change.'}, 'entityType': {'enum': ['profile', 'task', 'area', 'project', 'heading', 'tracker', 'rhythm', 'rhythm_run', 'skill', 'skill_run', 'note', 'tracker_entry'], 'type': 'string', 'description': 'Item type.'}, 'proposalId': {'type': 'string', 'description': 'Skill change proposal returned by an edit. op:apply commits after user review; cancel discards; undo restores the previous version if no later edit exists.'}, 'provenance': {'type': 'object', 'properties': {'reads': {'type': 'array', 'items': {'type': 'string'}}, 'writes': {'type': 'array', 'items': {'type': 'string'}}, 'summary': {'type': 'string'}, 'delivered': {'type': 'string'}, 'outsideWorld': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'entityType:"rhythm_run" — accountability summary of what the run did (ids/labels, never full content).'}, 'recordedAt': {'type': 'number'}, 'recurrence': {'type': 'object', 'required': ['cadence'], 'properties': {'at': {'type': 'string', 'description': 'task: set/change recurrence; shape as penny_write. clearFields:["recurrence"] ends the series, preserving history; target currentOccurrenceId.'}, 'cadence': {'enum': ['daily', 'weekly', 'monthly'], 'type': 'string'}, 'timezone': {'type': 'string', 'description': 'IANA timezone (e.g. America/New_York).'}}, 'description': 'entityType:"task" — makes the task repeat, or (on an existing repeating task) changes its schedule. Setting `clearFields: ["recurrence"]` ENDS the series (task becomes a one-off; completed occurrences stay as history) but must target `currentOccurrenceId`, not a stale/completed id.'}, 'targetSpec': {'type': 'object', 'description': 'tracker: replaces the whole target spec; shape as penny_write.'}, 'whenBucket': {'enum': ['anytime', 'someday'], 'type': 'string', 'description': 'entityType:"task"/"project" — undated bucket; mutually exclusive with whenAt.'}, 'clearFields': {'type': 'array', 'items': {'enum': ['whenAt', 'whenBucket', 'deadline', 'projectId', 'headingId', 'recurrence'], 'type': 'string'}, 'description': 'entityType:"task" — names of optional fields to UNSET on the task.'}, 'description': {'type': 'string', 'description': 'entityType:"skill": REQUIRED use-when description; also rhythm. tracker: meaning; log trackers must document payload shape.'}, 'operationId': {'type': 'string', 'description': 'Project receipt key; identical retries only.'}, 'resourceIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Restore selected links.'}, 'instructions': {'type': 'string', 'description': 'entityType:"skill" (required) — the saved know-how (generalizes the rhythm "goal").'}, 'retrievalPlan': {'type': 'array', 'description': 'entityType:"skill" (or legacy "rhythm") — OPTIONAL deterministic steps for a bounded tier.'}, 'expectedRevision': {'type': 'number', 'description': 'Project edit revision from Brief; reconcile conflicts.'}, 'expectedUpdatedAt': {'type': 'number', 'description': 'Source version from the read.'}}}
输入模式
{'type': 'object', 'properties': {'file': {'type': 'string', 'description': 'Exact manifest path, default SKILL.md; read view only.'}, 'view': {'enum': ['read', 'install'], 'type': 'string', 'description': 'Default read. Install returns an archive, not readable guidance.'}}, 'additionalProperties': False}
输入模式
{'type': 'object', 'required': ['target'], 'properties': {'to': {'type': 'number', 'description': 'target:"tracker" entries / tracker_summary — end of window (ms epoch).'}, 'tz': {'type': 'string', 'description': 'target:"tasks" — IANA timezone for Today/Upcoming boundaries.'}, 'from': {'type': 'number', 'description': 'target:"tracker" entries / tracker_summary — start of window (ms epoch).'}, 'name': {'type': 'string', 'description': 'Projects directory: exact-name candidates; continue incomplete coverage.'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Filter by tags. Applies to target "search" and "notes".'}, 'view': {'type': 'string', 'description': 'Projects: directory (default), brief, section, resources, resource, history, scopes (Space metadata), attention (dated candidates), interactions (actor only). Secondary selector: target:"tracker" list|entries; target:"rhythms" list|one|due|runs; target:"skills" list|one|due|runs|history|trash (to run one, use penny_write "skill_invoke"); target:"tags" list|related.'}, 'depth': {'type': 'number', 'description': 'target:"note_links" — hops to expand (1 = direct links; 2-6 = bounded BFS).'}, 'flags': {'type': 'object', 'properties': {'locked': {'type': 'boolean'}, 'pinned': {'type': 'boolean'}}, 'description': 'notes: locked/pinned filter.'}, 'limit': {'type': 'number', 'description': 'Max results. Applies to search, notes, tracker entries, tasks, and rhythm runs.'}, 'owner': {'enum': ['me', 'agent', 'unassigned'], 'type': 'string', 'description': 'target:"tasks" — filter by owner.'}, 'query': {'type': 'string', 'description': 'search: required semantic query. projects directory: name/purpose filter; check coverage.'}, 'scope': {'enum': ['private', 'workspace'], 'type': 'string', 'description': 'Projects: private overrides defaults; workspace requires workspaceId.'}, 'areaId': {'type': 'string', 'description': 'target:"tasks" — filter by area, or organize="project" filter.'}, 'bucket': {'enum': ['today', 'upcoming', 'anytime', 'someday'], 'type': 'string', 'description': 'target:"tasks" — filter by schedule bucket.'}, 'cursor': {'type': 'string', 'description': 'Project cursor; retain view/scope.'}, 'status': {'enum': ['open', 'in_progress', 'done', 'canceled', 'active', 'paused'], 'type': 'string', 'description': 'target:"tasks" — filter by task status.'}, 'target': {'enum': ['profile', 'projects', 'tasks', 'tracker', 'tracker_summary', 'rhythms', 'skills', 'tags', 'note_links', 'notes', 'search'], 'type': 'string', 'description': 'What to read. Walk the ladder in the tool description; first match wins.'}, 'taskId': {'type': 'string', 'description': 'tasks: full detail. A repeating task returns seriesId/currentOccurrenceId; act on the current occurrence, not a completed ID.'}, 'blocked': {'type': 'boolean', 'description': 'target:"tasks" — restrict to tasks with unmet dependsOn.'}, 'section': {'enum': ['purpose', 'progress', 'resources', 'plan', 'instructions'], 'type': 'string', 'description': 'target:projects view:section — one Brief section.'}, 'seedIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'target:"note_links" — note id(s) to start the link-graph walk from (required).'}, 'skillId': {'type': 'string', 'description': 'target:"skills" view:"one" (required) or view:"runs" (optional scope).'}, 'dateAxis': {'enum': ['created', 'valid'], 'type': 'string', 'description': 'target:"notes" — which date timeRange filters (\'created\' = when written, \'valid\' = when the fact holds).'}, 'dueRange': {'type': 'object', 'properties': {'end': {'type': 'number'}, 'start': {'type': 'number'}}, 'description': 'target:"tasks" — due-date window (ms epoch).'}, 'eventKey': {'type': 'string', 'description': 'Projects interactions: actor event key; omit to page.'}, 'maxDepth': {'type': 'number', 'description': 'tags/related: maximum traversal depth.'}, 'maxNodes': {'type': 'number', 'description': 'target:"note_links" — cap on returned nodes when depth > 1 (default 50).'}, 'organize': {'enum': ['area', 'project', 'heading'], 'type': 'string', 'description': 'target:"tasks" — enumerate containers instead of tasks.'}, 'rhythmId': {'type': 'string', 'description': 'target:"rhythms" view:"one" (required) or view:"runs" (optional scope).'}, 'seriesId': {'type': 'string', 'description': 'tasks: one recurring series’ complete occurrence history, newest first (includes completed).'}, 'edgeTypes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'target:"note_links" — only follow/return edges of these relationship types.'}, 'minWeight': {'type': 'number', 'description': 'tags/related: minimum edge weight (default 0.4).'}, 'orgStatus': {'enum': ['active', 'paused', 'done', 'canceled'], 'type': 'string', 'description': 'target:"tasks" organize="project" — filter projects by status.'}, 'projectId': {'type': 'string', 'description': 'target:projects brief/section/resources/resource/history — required stable Project ID. target:tasks — Project filter, or heading parent.'}, 'timeRange': {'type': 'object', 'properties': {'end': {'type': 'number'}, 'start': {'type': 'number'}}, 'description': 'Time window (ms epoch). Applies to target "search" and "notes".'}, 'trackerId': {'type': 'string', 'description': 'target:"tracker" view:"entries" (required), or target:"tracker_summary" (required).'}, 'blockNames': {'type': 'array', 'items': {'type': 'string'}, 'description': 'profile: exact block names.'}, 'confidence': {'type': 'object', 'properties': {'max': {'type': 'number'}, 'min': {'type': 'number'}}, 'description': 'notes: confidence range.'}, 'projectKey': {'type': 'string', 'description': 'profile: include subconscious:<projectKey>.'}, 'resourceId': {'type': 'string', 'description': 'Projects resource: read the authorized current source.'}, 'enabledOnly': {'type': 'boolean', 'description': 'target:"rhythms" view:"list" — only enabled rhythms.'}, 'resourceState': {'enum': ['attached', 'suggested', 'removed'], 'type': 'string'}, 'graphTraversal': {'type': 'boolean', 'description': 'search: opt into tag/link graph expansion (default false; measured recall loss). Use only for deliberate graph exploration.'}, 'includeArchived': {'type': 'boolean', 'description': 'Include archived trackers, Projects, or task containers.'}, 'includeCompleted': {'type': 'boolean', 'description': 'target:"tasks" — include done/canceled tasks (default false).'}, 'includeRelations': {'type': 'boolean', 'description': 'tags/list: include parents/children/synonyms.'}}}
输入模式
{'type': 'object', 'properties': {'tz': {'type': 'string', 'description': 'IANA timezone for deriving today/overdue date boundaries (e.g. America/New_York). Defaults to UTC when omitted.'}, 'projectKey': {'type': 'string', 'description': 'Includes only the matching subconscious:<projectKey> block; other subconscious blocks are always excluded.'}, 'installedSkillSha256': {'type': 'string', 'description': 'Exact metadata.bundle_sha256; report absent metadata as unversioned.'}, 'installedSkillSource': {'enum': ['standalone', 'plugin', 'unsupported', 'unknown'], 'type': 'string', 'description': 'How the skill is managed; plugin copies update through the plugin manager, standalone copies through approved archive installation.'}, 'installedSkillStatus': {'enum': ['versioned', 'unversioned', 'missing'], 'type': 'string', 'description': 'Report after reading the installed Penny skill. Omission is retained only for legacy clients and returns not_reported.'}, 'installedSkillVersion': {'type': 'string', 'description': 'Exact metadata.version from the installed skill; omit if missing or unversioned.'}}}
输入模式
{'type': 'object', 'properties': {'client': {'type': 'string', 'description': "Optional client hint: 'claude-desktop' | 'chatgpt' | 'claude-web' | other. Tailors the snippet's where-to-paste guidance."}}}
输入模式
{'type': 'object', 'required': ['entityType'], 'properties': {'goal': {'type': 'string', 'description': 'entityType:"rhythm" (required) — natural-language instruction: what the run should do. On entityType:"skill" this is `instructions`.'}, 'kind': {'type': 'string', 'description': 'entityType:"tracker" (required) — habit | metric | goal | log | status | custom.'}, 'name': {'type': 'string', 'description': 'Required for tracker/area/project and entityType:"skill" (also rhythm); for skill_invoke/skill_run, an alternative to skillId. Existing skill names prepare a change preview; new names create. Active tracker duplicates are rejected; archived names reactivate.'}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'entityType:"task" — tags to attach.'}, 'unit': {'type': 'string', 'description': 'entityType:"tracker" — unit of measure.'}, 'actor': {'type': 'string', 'description': 'entityType:"task"/"area"/"project"/"heading" — who took the action (me|agent), written to the activity ledger.'}, 'child': {'type': 'string', 'description': 'entityType:"tag_relation" (required) — the child tag.'}, 'notes': {'type': ['array', 'string'], 'description': 'note: array (max 100), each requires content and confidence (0–1), plus tags and exactly 3 sampleQuestions in the user’s voice; optional source/memoryType (episodic|semantic|procedural)/validFrom. task/area/project: markdown string.'}, 'order': {'type': 'number', 'description': 'entityType:"task"/"area"/"project"/"heading" — sort order.'}, 'owner': {'enum': ['me', 'agent', 'unassigned'], 'type': 'string', 'description': 'entityType:"task" — assignee.'}, 'patch': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'notes': {'type': 'string'}, 'order': {'type': 'number'}, 'steps': {'type': 'array', 'items': {'type': 'object', 'required': ['op', 'stepId'], 'properties': {'op': {'enum': ['suggest', 'edit', 'dismiss', 'accept'], 'type': 'string'}, 'text': {'type': 'string'}, 'order': {'type': 'number'}, 'stepId': {'type': 'string'}}}, 'maxItems': 25, 'description': 'accept converts a saved suggestion into a To-do.'}, 'areaId': {'type': ['string', 'null']}, 'status': {'enum': ['active', 'paused', 'done', 'canceled'], 'type': 'string'}, 'whenAt': {'type': ['number', 'null']}, 'purpose': {'type': 'string'}, 'archived': {'type': 'boolean'}, 'deadline': {'type': ['number', 'null']}, 'progress': {'type': 'string'}, 'resources': {'type': 'array', 'items': {'type': 'object', 'required': ['op'], 'properties': {'op': {'enum': ['attach', 'suggest', 'remove', 'restore'], 'type': 'string'}, 'url': {'type': ['string', 'null']}, 'role': {'enum': ['reference', 'method'], 'type': 'string'}, 'label': {'type': ['string', 'null']}, 'reason': {'enum': ['created_for', 'deliberately_used', 'suggested'], 'type': 'string'}, 'source': {'type': 'object', 'required': ['kind', 'id', 'scope'], 'properties': {'id': {'type': 'string'}, 'kind': {'enum': ['note', 'task', 'tracker', 'tracker_entry', 'skill', 'profile_block', 'external'], 'type': 'string'}, 'scope': {'type': 'object', 'required': ['kind'], 'properties': {'kind': {'enum': ['private', 'workspace'], 'type': 'string'}, 'orgId': {'type': 'string'}, 'workspaceId': {'type': 'string'}}}}}, 'resourceId': {'type': 'string'}}}, 'maxItems': 25, 'description': 'Attach created_for/deliberately_used sources; otherwise suggest. Removed links need restore; links do not share source content.'}, 'checkpoint': {'type': 'string', 'description': 'Factual handoff: changes, unfinished work, next step (4 KiB).'}, 'whenBucket': {'enum': ['anytime', 'someday', None], 'type': ['string', 'null']}, 'instructions': {'type': 'string'}}, 'description': 'Project sparse changes; omitted fields stay. Max 25 step/resource changes.', 'additionalProperties': False}, 'scope': {'enum': ['global', 'workspace', 'private'], 'type': 'string', 'description': 'Profile: global|workspace. Projects: private; workspace requires workspaceId.'}, 'title': {'type': 'string', 'description': 'entityType:"task" (required) or "heading" (required) — the title/label.'}, 'areaId': {'type': 'string', 'description': 'entityType:"project" (required) — the area the project belongs to.'}, 'parent': {'type': 'string', 'description': 'entityType:"tag_relation" (required) — the parent tag in the child_of edge.'}, 'source': {'type': 'string', 'description': 'entityType:"note"/"tracker_entry" — provenance label (defaults \'conversation\' / \'agent-mcp\').'}, 'status': {'enum': ['open', 'in_progress', 'done', 'canceled'], 'type': 'string', 'description': 'entityType:"task" — initial status.'}, 'whenAt': {'type': 'number', 'description': 'entityType:"task"/"project" — schedule date (ms epoch).'}, 'content': {'type': 'string', 'description': 'entityType:"profile" (required) — the block content.'}, 'deliver': {'type': 'object', 'description': 'entityType:"skill" — REQUIRED once `trigger` is set (and on the legacy entityType:"rhythm"); omit on an on-demand skill. Where a scheduled run\'s output lands: { kind:\'note\', tags?:string[] } | { kind:\'profile_block\', blockName:string } | { kind:\'notify\' }.'}, 'entries': {'type': 'array', 'description': 'tracker_entry: batch up to 100 entries for one trackerId; each {payload,loggedAt?,agentNote?,noteIds?,source?,metadata?}. Mutually exclusive with top-level payload. Receipts report each saved/failed item; do not claim all saved from a partial result.'}, 'noteIds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'entityType:"tracker_entry" — archival note ids to attach; or "tracker_note_link" (required) — the notes to link.'}, 'payload': {'type': 'object', 'description': 'entityType:"tracker_entry" (required unless `entries` is used) — the structured data point; shape is tracker-defined.'}, 'posture': {'type': 'string', 'description': 'entityType:"skill" with a `trigger` set (or legacy "rhythm") — read | propose | act (defaults \'read\').'}, 'skillId': {'type': 'string', 'description': 'entityType:"skill_invoke" (required, or pass `name`) — the skill to run now. entityType:"skill_run" — the skill to begin a run of (or pass `name`).'}, 'trigger': {'type': 'object', 'description': 'entityType:"skill": optional schedule (required for rhythm), requires deliver. MyPenny does not run it: due signals reach the connected agent. Schedule: {kind:"schedule",cadence:"daily"|"weekly"|"monthly",at?:"Fri 16:00",timezone?:"America/Denver"}. ALWAYS set timezone (IANA); default UTC shifts local times. Event: {kind:"event",on:"note.created",where?:{tags?:string[]}}.'}, 'deadline': {'type': 'number', 'description': 'entityType:"task"/"project" — hard due date (ms epoch).'}, 'rhythmId': {'type': 'string', 'description': 'entityType:"rhythm_run" — the rhythm to begin a run of (or pass `name`).'}, 'agentNote': {'type': 'string', 'description': 'entityType:"tracker_entry" (single-entry form only) — short caption on this one data point (not searchable).'}, 'blockName': {'type': 'string', 'description': 'entityType:"profile" (required) — the profile block name to upsert.'}, 'dependsOn': {'type': 'array', 'items': {'type': 'string'}, 'description': 'entityType:"task" — full replacement set of taskIds that must complete first.'}, 'headingId': {'type': 'string', 'description': 'entityType:"task" — heading to file the task under.'}, 'linkNotes': {'type': 'array', 'items': {'type': 'string'}, 'description': 'entityType:"task" — note ids to link to this task.'}, 'projectId': {'type': 'string', 'description': 'entityType:"task" — parent project; or "heading" — the project it belongs to (required).'}, 'reasoning': {'type': 'string', 'description': 'entityType:"tag_relation" — short justification (typically a user quote) for the edge.'}, 'trackerId': {'type': 'string', 'description': 'entityType:"tracker_entry" (required) — the tracker to log against.'}, 'entityType': {'enum': ['profile', 'task', 'area', 'project', 'project_interaction', 'heading', 'tracker', 'tracker_entry', 'rhythm', 'rhythm_run', 'skill', 'skill_invoke', 'skill_run', 'tag_relation', 'tracker_note_link', 'note'], 'type': 'string', 'description': 'What to create. Walk the ladder in the tool description; first match wins.'}, 'recordedAt': {'type': 'number', 'description': 'entityType:"tracker_entry" (single-entry form only) — observation time (ms epoch; defaults to now).'}, 'recurrence': {'type': 'object', 'required': ['cadence'], 'properties': {'at': {'type': 'string', 'description': 'Time expression: "HH:MM" for daily, "<Wd> HH:MM" for weekly, "DD HH:MM" for monthly.'}, 'cadence': {'enum': ['daily', 'weekly', 'monthly'], 'type': 'string'}, 'timezone': {'type': 'string', 'description': 'IANA timezone (e.g. America/New_York).'}}, 'description': 'entityType:"task" — makes the task repeat. The returned `taskId` is this task\'s first occurrence; completing it later returns `nextTaskId` for the next one (see penny_edit\'s `status` field) — don\'t cache this id past its first completion.'}, 'targetSpec': {'type': 'object', 'description': 'entityType:"tracker" — JSON target spec, interpreted at retrieval (e.g. { kind: \'daily_minimum\', value: 10000 }).'}, 'whenBucket': {'enum': ['anytime', 'someday'], 'type': 'string', 'description': 'entityType:"task"/"project" — undated bucket; mutually exclusive with whenAt.'}, 'description': {'type': 'string', 'description': 'entityType:"tracker" (required) — natural-language meaning. entityType:"skill" (required — every skill, on-demand or scheduled) or legacy "rhythm" — one-line description of what it is for.'}, 'interaction': {'type': 'object', 'required': ['kind', 'state'], 'properties': {'kind': {'enum': ['proposal', 'attention'], 'type': 'string'}, 'state': {'enum': ['proposed', 'declined', 'deferred', 'presented', 'dismissed', 'accepted'], 'type': 'string'}, 'taskId': {'type': 'string'}, 'content': {'type': 'string', 'description': 'Rationale required for reconsideration.'}, 'eventKey': {'type': 'string'}, 'objective': {'type': 'string', 'description': 'First proposal objective.'}, 'reconsider': {'type': 'boolean'}, 'urgencyKey': {'type': 'string'}, 'deferredUntil': {'type': 'number'}, 'expectedUpdatedAt': {'type': 'number'}}, 'description': 'project_interaction: actor decision; read first, update with expectedUpdatedAt.'}, 'operationId': {'type': 'string', 'description': 'Project receipt key; identical retries only.'}, 'instructions': {'type': 'string', 'description': 'entityType:"skill" (required) — the saved know-how: what to do when the skill is invoked, or when a connected agent picks it up after it comes due. Generalizes the rhythm "goal".'}, 'retrievalPlan': {'type': 'array', 'description': 'entityType:"skill" (or legacy "rhythm") — OPTIONAL deterministic steps [{ tool, args }] for a bounded tier.'}, 'trackerEntryId': {'type': 'string', 'description': 'entityType:"tracker_note_link" (required) — the logged tracker entry to attach notes to.'}, 'expectedRevision': {'type': 'number', 'description': 'Project edit revision from Brief; reconcile conflicts.'}, 'expectedUpdatedAt': {'type': 'number', 'description': 'Source version from the read.'}}}
近期工具变更
类似的 MCP 服务器
Stable Baseline
Manages company documents, knowledge graphs, whiteboards, projects, plans, tasks, teams, and improvement workflows.
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…
mcp
Manages Nestr workspaces, roles, circles, tensions, governance proposals, comments, daily plans, graph relationships, agents, and…
personalbrain-mcp
Provides read and write access to a personal knowledge graph, including thoughts, notes, links, attachments, queries, and change …
Kaiku
Manages team issues, comments, attachments, projects, wiki pages, and related development workflows.
Dock
Provides collaborative workspaces with tables, documents, HTML surfaces, files, formulas, comments, activity tracking, agent mess…
ContextLayer
Stores and retrieves organizational documents and knowledge-graph context while managing projects, tasks, teams and work sessions.