Query Markup Documents - On-device hybrid search for markdown files with BM25, vector search, and LLM reranking
Kythene is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Your AI's work, reviewed by your team, remembered - shared artifacts with review, plus team memory.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http kythene-mcp https://kythene.com/mcp/kythene
# 2 — ask your agent for something these tools do
# remember, recall, forget and 45 more
Kythene costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http kythene-mcp https://kythene.com/mcp/kytheneReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
48 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Store a memory (markdown body). Describe it on three axes: project (which body of work - e.g. kythene, haven), type (the KIND of note - decision, how-to, gotcha, reference, person, meeting), and tags (what it is ABOUT - auth, billing, postgres). A kind-word like decision is a type, not a tag; type is optional but set it when the note has a kind. Keep knowledge current by superseding ra
| Parameter | Type | Required | Notes |
|---|---|---|---|
| aliases | array | no | aliases are extra names a [[wikilink]] can use to reach this memory, on top of its title. Each is normalised to a slug, so both "SEO Plan" and "seo-plan" match. Use this on import/migration to carry |
| body | string | yes | body is the memory content (markdown welcome). |
| private | boolean | no | private, when true, stores the memory author-private: visible only to you, never returned by anyone else's recall. Use it when the memory summarises sensitive material. It only tightens - leaving it |
| project | string | no | project scopes the memory (per-project memory); empty = space-wide. |
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
| supersedes | string | no | supersedes optionally names the id of an EXISTING memory to replace, regardless of its title. Use it to be certain you are updating a specific memory rather than trusting a title match - and to heal |
| tags | array | no | tags label the memory for later filtering (created in the space if new). |
| title | string | no | title names the memory; defaults to the body's first line. Re-using a title within a project supersedes that memory. |
| type | string | no | type is an OPTIONAL light classifier for the memory. Suggested values: decision, how-to, gotcha, reference, person, meeting. Free text - any label is accepted and it may be left empty (untyped). It |
Recall the most relevant context, with full content, in one call. By DEFAULT this spans everything you can access - team/project memory AND published, non-memory work (collections/artifacts) - so you pick up what teammates and their agents produced, not just noted. Each result carries kind ("memory" or "collection"), producer (the agent/tool), author (the human), is_mine (true only when YO
| Parameter | Type | Required | Notes |
|---|---|---|---|
| cursor | string | no | cursor pages through a result set larger than one limit. Pass the next_cursor from a previous recall to get the following page; omit it for the first page. Use it to read a whole project to complete |
| includeDeprecated | boolean | no | include_deprecated also returns memories that have been deprecated (flagged via MemoryEntry.deprecated). Default false: deprecated memories are hidden so instances stop applying them. |
| limit | integer | no | default 20, max 100 |
| project | string | no | project narrows recall to this project's memory; empty = space-wide. |
| scope | string | no | scope selects the corpus: "everything" (the default) recalls team/project memory AND published, non-memory collections you can access; "memory" narrows to memory only. Each result's kind says which |
| search | string | no | search matches memory titles. |
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
| tags | array | no | tags narrows recall to memories carrying all of these tags. |
| type | string | no | type optionally narrows recall to memories of this classifier (case-insensitive); empty returns memories of any type. See RememberRequest.type for the suggested set. |
Permanently remove a memory by id.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | id is the memory (collection) id to forget. |
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
Mark a memory stale by id so recall stops surfacing it (agents stop applying it), while it stays retrievable for audit - prefer this over forget when knowledge is superseded rather than wrong. Optionally set replaced_by to the id of the replacement memory. Set restore=true to un-deprecate.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | id is the memory (collection) id to deprecate. |
| replacedBy | string | no | replaced_by optionally names the collection id of the replacement memory (a citable successor). Ignored when restore=true. |
| restore | boolean | no | restore=true un-deprecates the memory (clears deprecated + replaced_by). Default false deprecates it. |
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
Create or remove a link between two memories over the from_id -> to_id edge. Curated relationships in the memory graph; [[wikilinks]] in a memory body already link automatically on remember, so use this for a relationship the body does not spell out. Both ids are memory ids in your space. Pass remove=true to delete the link instead of creating it.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| fromId | string | yes | from_id is the memory the link starts at; to_id is the memory it points to. Both are memory (collection) ids in the caller's space. |
| remove | boolean | no | remove deletes the from_id -> to_id link instead of creating it. |
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
| toId | string | yes | to_id is the target memory the link points to (see from_id). |
Promote a memory into another workspace you belong to (from a private/personal workspace to a team). It is held for REVIEW there: the target workspace's agents do NOT recall or apply it until an owner of that workspace approves. target_space is the workspace to promote INTO (id or name from list_spaces); do not put it in space, which is the workspace you act from. Requires membership of both wor
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | id is the memory (collection) id to promote. |
| space | string | no | space optionally selects which of your spaces to act FROM (an id or name from list_spaces). Omit it when you belong to a single space. |
| targetSpace | string | yes | target_space is the workspace to promote INTO (an id or name from list_spaces) - not your current space. You must belong to it. |
Report what you are working on (areas: file paths, modules, topics). Call when you start on something so teammates' agents see it and conflicts surface early.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| areas | array | yes | areas name what is being worked on: file paths, modules, topics. |
| note | string | no | note is an optional short description of what you are doing now. |
| producer | string | no | producer names this instance; defaults to the user's name. |
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
Who is working on what right now (last 30 minutes), with areas touched by more than one agent flagged as conflicts.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| space | string | no | space optionally selects which of your spaces to act in (id or name from list_spaces). Omit it when you belong to a single space. |
Which agents read a collection or artifact (lineage).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| artifactId | string | no | artifact_id lists readers of a single artifact (from get_artifact); use instead of collection_id. |
| collectionId | string | no | Exactly one of collection_id / artifact_id. |
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
How this workspace is being used over a window (default 30 days): recall volume and the zero-result rate (the share of recalls that came back empty - the product-health canary), the caller mix (mcp/cli/web), reads, publishes, new versions and review/curation counts. Aggregate counts only - no item or person is named. Ask it to check in on your own workspace: "how many recalls this week, how many e
| Parameter | Type | Required | Notes |
|---|---|---|---|
| days | integer | no | days is the window to report over (default 30, clamped to 1..365). |
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
Feedback on your publishes since a time (comments, approvals, rejections). Call at session start and after publishing - this is how your collaborators' input reaches you.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| since | string | no | since bounds the inbox: only feedback created after this instant (RFC 3339). Empty = the last 7 days. |
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
Your personal inbox across ALL your workspaces (#126): items addressed to YOU - approvals/rejections and comments on your work, block feedback, and memories awaiting your review - each with a deep link into its workspace. Read-only (act on them in the app). Call at session start to open with 'what needs me': e.g. two approvals waiting, a comment on the GDPR pack.
No parameter schema on file.
Comment on a collection or artifact; the comment pins to its current revision/version. The response's url opens the comment - hand that to a person, not the id.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| artifactId | string | no | artifact_id comments on a single artifact (from get_artifact); use instead of collection_id. |
| body | string | yes | body is the comment text (markdown welcome). |
| collectionId | string | no | Exactly one of collection_id / artifact_id. |
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
Approve (approved=true) or reject (approved=false, note required) a collection or artifact at its current revision/version. New versions clear approvals. The response's url opens what you reviewed - hand that to a person, not the id.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| approved | boolean | yes | approved=false is a rejection and requires a note. |
| artifactId | string | no | artifact_id approves/rejects a single artifact (from get_artifact); use instead of collection_id. |
| collectionId | string | no | Exactly one of collection_id / artifact_id. |
| note | string | no | note explains the decision; required when approved=false (a rejection). |
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
Flag one block of a renderable artifact and optionally comment on it - the block-level equivalent of comment/approve. First read the artifact with get_artifact to get each block's anchor and text, then call this once per block. Address a block by anchor (preferred) or by quoted_text (a verbatim snippet; the server resolves it). status is exactly one of: needs_review = look at this again
| Parameter | Type | Required | Notes |
|---|---|---|---|
| anchor | string | no | address by anchor (preferred) ... |
| annotationId | string | no | annotation_id addresses an existing thread by id instead - the ONLY way to reach one whose block was rewritten (from get_artifact's block.annotation_id). |
| artifactId | string | yes | the artifact within it (from get_artifact) |
| collectionId | string | no | the collection you are reviewing (access + opt-in) |
| comment | string | no | optional; allowed only when a status is set |
| quotedText | string | no | ... or by quoting the block's text (server resolves) |
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
| status | string | no | status is one of needs_review, needs_work, done, approved, reject_remove. Empty clears the flag. |
Create a collection from one or more artifacts - make work known to the space (kythe it). Artifacts carry name, mime and content; tags are created as needed. The response collection carries url, its canonical link - hand THAT to a person (or another agent) to point them at the work, not the bare id. This path is for text and small artifacts (libapi appends this endpoint's real byte ceiling below
| Parameter | Type | Required | Notes |
|---|---|---|---|
| artifacts | array | yes | artifacts is the new content to publish. |
| existingArtifactIds | array | no | existing_artifact_ids references already-published artifacts into this collection (curation/re-bundling). |
| idempotencyKey | string | no | idempotency_key makes a publish safe to retry: if a publish times out on the client (a large body embeds synchronously and can outlast the client timeout, even though the write has already committed |
| producer | string | no | producer names the publishing instance (e.g. "claude-on-heavy") for provenance; defaults to the authenticated user's name. |
| reviewRequested | boolean | no | review_requested opts this collection into the approval flow, so the space sees approve/reject controls; otherwise it is shared content with comments. |
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
| tags | array | no | tags to attach (created in the space if they do not exist yet). |
| title | string | no | title names the collection; defaults to the first artifact's name. |
List the collections visible in your space, newest first. Narrow with tag or search. Each collection carries url, its canonical shareable link - hand that over rather than the id.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer | no | default 20, max 100 |
| offset | integer | no | skip this many results for paging (0 = start) |
| search | string | no | search narrows by title substring. |
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
| tag | string | no | tag narrows the timeline to one tag (by name). |
Turn the approval-review flow on or off for an existing collection (requested=true to request review, false to cancel). Use this to enable review/annotation on a collection that was published without it - review is a property of the collection, so there is no need to re-publish a copy to get it. To LEAVE review once the work is done, prefer end_review, which checks the threads are resolved first.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| collectionId | string | yes | collection_id is the collection to toggle review on. |
| requested | boolean | yes | requested turns the approval-review flow on (true) or off (false). |
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
Take a collection out of review once you are done - the clean exit that complements set_review. By default it REFUSES while any block-review thread is still open and names them, so a collection only leaves review once it reads clean; resolve those threads (set each block to done or approved), then call again. Pass force=true to end review anyway and abandon the open threads. The review record stay
| Parameter | Type | Required | Notes |
|---|---|---|---|
| collectionId | string | yes | collection_id is the collection to take out of review. |
| force | boolean | no | force ends review even while threads are still open. Default false: the call refuses and names the open threads, because minting a clean read is the whole point of ending review - the refusal is the |
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
Map a collection into another space you belong to (e.g. a shared client space), or remove that mapping. Requires membership of both spaces. space_id is the TARGET space (id or name from list_spaces); do not put it in space, which is the space you act from. Pass remove=true to unmap it from space_id instead (visibility from that space ends immediately; the origin space cannot be removed).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| collectionId | string | yes | collection_id is the collection to map into the target space. |
| remove | boolean | no | remove unmaps the collection from space_id instead of mapping it in. It cannot remove the collection's origin space (the domain enforces this). |
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
| spaceId | string | yes | space_id is the TARGET space to map the collection into - an id or a name from list_spaces. (Do NOT confuse it with space below, which is the space you are acting FROM.) |
Your member spaces - the valid share targets.
No parameter schema on file.
Get a collection with its member artifacts and tags. The collection's url is its canonical shareable link; each artifact's url points at that file within the collection page - hand these over rather than ids. When the collection is under review, review_requested is true and open_threads / resolved_threads count its block-review threads, so you can tell whether the review is finished (ope
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | id is the collection's id (from list/timeline, or a recall hit's ref). |
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
Move a collection through its lifecycle by naming the target state: "archived" archives a live collection (a reversible retirement that hides it from the timeline, recall and search; nothing deleted, no storage freed) - and, on a collection already scheduled for deletion, cancels that deletion and leaves it archived; "live" restores an archived collection; "deletion_scheduled" schedules an ARCHI
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | id is the collection to move. |
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
| state | string | yes | state is the target lifecycle state: "live" - make an archived collection live again (restore); "archived" - archive a live collection, OR cancel a scheduled |
Edit a collection without republishing (which would create a new collection and abandon its comments and history). action is one of: "add" - append new artifacts (name, mime, content) and/or existing_artifact_ids (already-published files of the same space); files already in the collection are skipped, so it is safe to retry. "reorder" - set the full order: artifact_ids must be the FULL cur
| Parameter | Type | Required | Notes |
|---|---|---|---|
| action | string | yes | action is one of: "add" (add files), "reorder" (set the full member order), "move" (move a file to another collection), "rename" (change the title), "tags" (replace the collection's tags). |
| artifactId | string | no | move: the artifact to move, and the destination collection (same space); collection_id is the source. |
| artifactIds | array | no | reorder: the FULL current member set, every artifact once, in the order you want (a partial or unknown-id list is rejected; work from a fresh get_collection). |
| artifacts | array | no | add: new files to create and append. |
| collectionId | string | yes | collection_id is the collection to edit (for a move, the SOURCE collection). |
| dryRun | boolean | no | tags: true to report the effect without changing anything. |
| existingArtifactIds | array | no | add: references to already-published artifacts of the same space to append. |
| note | string | no | add: optional version note. |
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
| tags | array | no | tags: the full set of tags the collection should carry (labels and projects); names not yet in the workspace become new labels. |
| title | string | no | rename: the new title. The collection keeps its id, links, comments, reviews and history; the revision does not change. |
| toCollectionId | string | no | to_collection_id is the collection to move the artifact INTO; collection_id is the one it leaves. Both must be in the same space. |
Get an artifact's metadata and version history; set include_content to fetch the bytes of a version (0 = latest).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | id is the artifact's id (from a collection's artifact list). |
| includeContent | boolean | no | include_content adds the content bytes of one version to the response. |
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
| version | integer | no | version selects which version's content to include; 0 = latest. |
Push a new version of an existing artifact. Referencing collections bump their revision and clear collection-level approvals. For a larger or binary file use kythe version <collection-id> <file> (it matches the file to the artifact by name), which reads the bytes off disk - up to 32 MiB per artifact - instead of routing them through the model. The response's url opens the file - hand that to a
| Parameter | Type | Required | Notes |
|---|---|---|---|
| artifactId | string | yes | artifact_id is the artifact to add a new version to (from get_artifact or a collection's artifact list). |
| content | string | yes | content is the new version's bytes. |
| mime | string | no | mime overrides the artifact's content type; empty keeps it. |
| note | string | no | note is an optional version note describing what changed. |
| producer | string | no | producer names the publishing instance (e.g. "claude-on-heavy"); defaults to the authenticated user's name. |
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
Mint a share code for a tag (a label or a project) - a private link for someone outside the space. tag is a tag id or name; label records who it is for (required). Optionally set expires_days to time-box it (0 = never), so a leaked link does not stay live. Optionally set a pin (4-8 digits) as a second factor: the link then reaches a PIN prompt, not content, so a forwarded link alone is not
| Parameter | Type | Required | Notes |
|---|---|---|---|
| expiresDays | integer | no | expires_days time-boxes the code: after this many days it stops admitting, so a leaked link does not stay live until someone remembers to revoke it. 0 (the default) means it never expires. |
| label | string | yes | label records who the code is for (required) - it identifies the holder's comments and approvals. |
| pin | string | no | pin optionally sets a second-factor PIN on the code (#364): the link admits only after the holder also enters this PIN, sent by a different channel. 4-8 digits, not an obvious sequence. Empty (the d |
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
| tag | string | yes | tag is the tag (a label or a project) to mint the code for - an id, or a name in the acting space. A share code admits its holder to that tag's collections; internal tags cannot have share codes. |
List share codes. Pass tag (id or name) to list one tag's codes, or omit it to list every share code in the space. Revoked codes are included, flagged revoked.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
| tag | string | no | tag optionally narrows to one tag's codes (an id or a name). Omit to list every share code in the space. Revoked codes are included. |
Revoke a share code by id (from list_share_codes). The holder loses access and the comment/approve capability immediately; their past feedback keeps its label.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | id is the share code to revoke (from list_share_codes). |
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
List the projects (project-kind tags) in the space - the valid project values for recall, remember and publish. Narrow with search.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| search | string | no | search optionally narrows projects by name substring. |
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
Map a working directory to the Kythene project(s) it belongs to, so you can brief and recall for the right project without a human naming it. Pass what you observe: marker (verbatim contents of a .kythene file if one exists - authoritative), git_remote (the repo's origin URL), and dir (the working directory's basename). Returns matches most-confident first, each with workspace_id, `project
| Parameter | Type | Required | Notes |
|---|---|---|---|
| dir | string | no | dir is the working directory's basename - the weakest signal, used only when the marker and remote produce nothing. |
| gitRemote | string | no | git_remote is the origin remote URL of the repo, if any - e.g. https://github.com/acme/widgets or git@host:acme/widgets.git. The owner/repo and repo name are matched against project names. |
| marker | string | no | marker is the verbatim contents of a .kythene file at the working directory root, if the client found one. It names the workspace and project explicitly and is authoritative. Format: key: value li |
Read this workspace's operating manual: the house rules for writing here (style, tag taxonomy, memory vs collection, what belongs and what does not). Follow it when you remember/publish. recall and brief both return it inline as guide, so you normally already have it and do not need this call. Falls back to a sensible default until someone customises it.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
Replace this workspace's operating manual with body (markdown), and return the updated guide. An empty body resets it to the built-in default. Each save is versioned. Owner/admin only.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| body | string | yes | body is the new operating manual (markdown). An empty body resets to the built-in default. |
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
Open a session with ONE call instead of four. Returns this workspace's guide (its operating manual - follow it), the catchup delta since your agent last looked, the project's memory as an INDEX (titles, one-line hooks and ids - NOT bodies; recall an id for the full text), and your inbox count with a short preview. Pass project to scope the index (use resolve_project to find it from a working dir
| Parameter | Type | Required | Notes |
|---|---|---|---|
| peek | boolean | no | peek reads the catchup delta without advancing the cursor. Default false: brief is the session opener, so it consumes the delta like catchup does. |
| project | string | no | project optionally scopes the memory index to one project (a project-kind tag name, or the value from resolve_project); empty briefs the whole workspace. |
| space | string | no | space optionally selects which of your spaces to brief (an id or name from list_spaces). Omit it when you belong to a single space. |
Create a wiki in this workspace: a tree of pages your team reads in Kythene. name is what people call it; slug is its segment in a page address (derived from the name if you omit it). Set approval_required when a page must be approved before it goes live. root_body is the markdown of the wiki's home page - it starts as a DRAFT, like every page, so publish it with set_page_state before anyo
| Parameter | Type | Required | Notes |
|---|---|---|---|
| approvalRequired | boolean | no | approval_required makes every publish need an approval first. |
| description | string | no | description is one line on what the wiki holds. It is what someone reads in list_wikis when they are choosing between several. |
| name | string | yes | name is what people call it. |
| rootBody | string | no | root_body is the markdown of the wiki's root page. It starts as a DRAFT, so publish it before anyone can read it. |
| slug | string | no | slug is its segment in a page URL; derived from the name when omitted. |
| space | string | no | space optionally selects which of your workspaces to act in (an id or name from list_spaces). Omit it when you belong to a single workspace. |
List the wikis in a workspace, with what each is for, how many pages it holds, how many of those are published, and when anything in it last went live - enough to tell which one holds what you are after without opening them. Narrow with search.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| search | string | no | search narrows by name or description. |
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
Walk a wiki's tree: every page you can see, parent before child, with its path, its state and its depth. Use it to find where a page belongs before creating one, and to get the paths the other wiki tools address pages by. A page you cannot see is not listed, so the tree never offers a route that fails.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
| wiki | string | yes | wiki is the wiki to walk - its id or its slug. |
Read one page: its markdown body, its state, what links to it (links_here - who depends on it, which is what matters before you change something) and what it links to. Address it by id, or by path within a named wiki. ALWAYS read a page before writing to it: the base_revision it returns is what update_page requires, and a write against a stale one is refused rather than silently overwr
| Parameter | Type | Required | Notes |
|---|---|---|---|
| page | string | yes | page is the page's id or its full path within the wiki. |
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
| wiki | string | no | wiki is the wiki the page is in - its id or slug. Required when addressing a page by path; optional when page is an id. |
Add a page to a wiki, as a DRAFT - nobody can read it, and it is in no search or recall, until you publish it with set_page_state. parent is the page it sits under (an id or a path); omit it for a page directly under the wiki's home page. slug must be unique among its SIBLINGS, not across the wiki, so two branches can each hold a "setup" and neither has to be "setup-2". Link to other pages wit
| Parameter | Type | Required | Notes |
|---|---|---|---|
| body | string | no | body is the page's markdown. Omitted, it starts as the title as a heading. |
| parent | string | no | parent is the page to create under - an id or a path. Omit it for a page directly under the wiki's root. |
| slug | string | no | slug is the page's own path segment; derived from the title when omitted. It must be unique among its SIBLINGS, not across the wiki - two branches can each hold a "setup". |
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
| title | string | yes | title is the page's heading, and the name it is listed under. |
| wiki | string | yes | wiki is the wiki to add to - its id or slug. |
Replace a page's body with body, in FULL - this is not an append. base_revision is REQUIRED and must be the one get_page just gave you: if the page has moved on since, the write is refused and names the newer revision, so read it again and re-apply your change. That refusal is the point - two agents race on a page exactly as readily as two people. Writing does not publish: a live page keeps sh
| Parameter | Type | Required | Notes |
|---|---|---|---|
| baseRevision | integer | yes | base_revision is the revision you read before writing (from get_page). REQUIRED: if it is no longer current the write is refused, naming the newer one, so a second writer cannot silently overwrite t |
| body | string | yes | body is the new markdown, in full - this replaces the page, it does not append to it. |
| note | string | no | note is a short line about what changed - it shows on the page's history. |
| page | string | yes | page is the page's id or its full path within the wiki. |
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
| title | string | no | title optionally retitles the page. |
| wiki | string | no | wiki is the wiki the page is in - its id or slug. |
Move a page under a different parent, rename its slug, or both. Its whole subtree travels with it and every old path redirects, so links into the section keep working - tidying the tree never rots a link. The page's id never changes, so anything citing the id is unaffected. The response's url is the page's link at its new path - hand that to a person, not the id.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| page | string | yes | page is the page's id or its full path within the wiki. |
| parent | string | no | parent is the page to move under - an id or a path. Omit to leave it where it is and only rename. |
| slug | string | no | slug is the page's new path segment. Omit to leave the name alone. |
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
| wiki | string | no | wiki is the wiki the page is in - its id or slug. |
Move a page through its lifecycle by naming the target state: "published" makes the newest version the one readers see, and puts it into search and recall (refused where the wiki requires an approval - ask for one instead); "awaiting_approval" asks for one, optionally directed at a reviewer; "approved" approves AND publishes in the same act; "changes_requested" sends it back to the author with
| Parameter | Type | Required | Notes |
|---|---|---|---|
| note | string | no | note is required when requesting changes. |
| page | string | yes | page is the page's id or its full path within the wiki. |
| reviewer | string | no | reviewer optionally directs an approval request at one person (a user id). |
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
| state | string | yes | state is the target: "published" - publish the newest version. Where the wiki requires an approval this is refused: ask for one instead. "awaiting_approval" - |
| wiki | string | no | wiki is the wiki the page is in - its id or slug. |
Put a piece of work on the team's queue - the pillar that flows BOTH ways, so this is how you ask a person for something as well as how they ask you. body says what is wanted; write it for somebody who was not in the conversation. assignee is "me", "owner" (the person you act for), one of your own agents, or a person's id - leave it out to raise it for anybody to claim. Optionally attach it to
| Parameter | Type | Required | Notes |
|---|---|---|---|
| artifact | string | no | artifact is the artifact this action is about, if it is about one. |
| assignee | string | no | assignee optionally names who owes it: "me", "owner" (the person you act for), one of YOUR agents by name or id, or a person's user id. Leave it out to raise it for anybody to claim. |
| body | string | yes | body says what is being asked for. Write it so somebody who was not in the conversation can act on it. |
| collection | string | no | collection is the collection this action is about, if it is about one. |
| memory | string | no | memory is the memory this action is about, if it is about one. |
| page | string | no | page is the wiki page this action is about, if it is about one. |
| parentAction | string | no | parent_action carries a closed action forward: the way to continue past a close is a new action, not a reopen. |
| project | string | no | project optionally scopes it to a project tag, as collections are scoped. |
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
Read the queue. This is the AUTHORITATIVE answer to what you still owe - catch_up only announces an action once, and an announcement you have scrolled past is not the same thing as work you have dealt with, so check here rather than trusting the feed. scope is "mine" (the default), "unassigned" (raised for anybody) or "all". Closed actions are left out unless you ask for them.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| includeClosed | boolean | no | include_closed brings in the finished ones; by default a queue is open work. |
| limit | integer | no | limit caps how many come back. |
| project | string | no | project optionally narrows to one project tag. |
| scope | string | no | scope picks which queue: "mine" - what is on YOUR plate (the default, and the authoritative answer to "what do I still owe") "unassigned" - raised into the workspace, nob |
| space | string | no | space optionally selects which of your spaces to act in. |
Move an action along by naming the target state: "in_progress" means you have started, which is yours to say as the assignee; "pending" means not now, or REOPENS a resolved action - either party may reopen, because disagreeing with "done" is the whole reason resolved exists; "resolved" means you think it is finished, and is reversible on purpose; "closed" is terminal and needs a resolution of
| Parameter | Type | Required | Notes |
|---|---|---|---|
| action | string | yes | action is the action's id. |
| resolution | string | no | resolution is REQUIRED when closing: done | wont_do | cancelled. It is stored rather than guessed from who closed it. |
| space | string | no | space optionally selects which of your spaces to act in. |
| state | string | yes | state is the target: "in_progress" - you have started. Yours to say, as the assignee. "pending" - not now (from in_progress), or REOPEN a resolved action. Either party may |
Say who owes an action. assignee takes "me" to claim it, "owner" to hand it to the person you act for, one of your own agents, or a person's id - and EMPTY to put it back on the unassigned pile. Work nobody owns is anybody's to triage; work somebody already owns can only be moved by them or by whoever raised it.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| action | string | yes | action is the action's id. |
| assignee | string | no | assignee names who owes it: "me" to take it, "owner" to hand it to the person you act for, one of your agents, or a person's user id. Leave it EMPTY to put it back on the unassigned pile. |
| space | string | no | space optionally selects which of your spaces to act in. |
Publish a file WITHOUT carrying it through this tool call. Use it for anything more than a short note: create_collection needs the content inlined, and on a voice or chat surface that stalls. This call is metadata only - filename, and optionally title, mime, tags - and returns an address, a one-use token and the exact request to make. Then POST the file's RAW BYTES to that address from y
| Parameter | Type | Required | Notes |
|---|---|---|---|
| filename | string | yes | filename is what the file will be called in Kythene, e.g. "handover.md". |
| idempotencyKey | string | no | idempotency_key makes a retried upload safe: the same key publishes once. |
| mime | string | no | mime is the content type, e.g. "text/markdown". Guessed from the filename when you leave it out. |
| space | string | no | space optionally selects which of your spaces to act in (an id or name from list_spaces). Omit it when you belong to a single space. |
| tags | array | no | tags are the projects and labels to file it under, exactly as publish takes them. |
| title | string | no | title is the collection's title. Defaults to the filename. |
See what changed since your agent last looked, AND what has been put on your plate - call this at the START of a session to open caught up. Returns publishes, shares, new versions, feedback (comments and approvals) and memory promotions/deprecations in your workspaces since this agent's last catchup, EXCLUDING your own agent's writes but INCLUDING your other agents' and teammates'. Reading advance
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer | no | limit caps the digest (default 50). The overflow is reported as more. |
| peek | boolean | no | peek reads the delta WITHOUT advancing the cursor (a non-consuming check). Default (false) is the normal catch-up: reading advances the cursor. |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Kythene or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
This listing is an address its publisher runs, and you connect to it directly — this marketplace is not in the path. The scanner reads packages and public source, and an address is neither: the repository linked on this page is where this record was collected from, not a copy of what the address serves, so it is not graded in its place. So there is no grade — not a withheld one, an unmeasured one.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 1.0.2.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Kythene can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.