Query Markup Documents - On-device hybrid search for markdown files with BM25, vector search, and LLM reranking
Kindex 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
Persistent knowledge graph and MCP server for AI workflows with git-tracked project context.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user kindex-mcp '--' uvx --from 'kindex[mcp]' kin-mcp
# 2 — ask your agent for something these tools do
# kinbase_sync, kinbase_status, kinbase_explain and 69 more
Kindex 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. This one runs on your machine: your client starts Kindex as a process under your own user, with your files and your network, so the tool surface below is what it can do to your computer rather than to a server somewhere else. Its scan result is on the Security tab — read the surface before you approve it.
This is a public server: you run it yourself and this marketplace is not in the path. You need uv (docs.astral.sh/uv): uvx comes with it. Claude Code registers it in one command; --scope user makes it available in every project. The '--' is in quotes so that PowerShell passes it on.
claude mcp add --scope user kindex-mcp '--' uvx --from 'kindex[mcp]' kin-mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry your client uses to start the process locally. A local server runs with your file system and your network, which is why it is priced without metering.
72 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.
Read from its source code. A server that builds its tool list when it starts can list more tools than this.
Refresh signed Kinbase evidence; raw verifies bytes, reduced retains governance snapshots.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| repo | string | yes | — |
| mode | string | no | — |
Report a repository's Kinbase certification, trusted facts and Unknowns.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| repo | string | yes | Path to the certified repository to report on. |
Explain why one Kinbase logical key currently reads as it does.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| repo | string | yes | Path to the certified repository asking. |
| logical_key | string | yes | The exact key to explain, e.g. symbol:class:Db. |
| decision | string | yes | The decision the answer is being read for. |
Submit explicit text as AI-generated repository evidence to native Kinbase.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| repo | string | yes | — |
| text | string | yes | — |
| node_type | string | no | — |
Search the knowledge graph with hybrid FTS5 + graph traversal.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | yes | Search query text. |
| top_k | integer | no | Maximum results to return. |
| tags | string | no | Comma-separated tags to filter results (only nodes with these tags). |
| include_archived | boolean | no | Include archived nodes (fenced from default search). |
| trusted_only | boolean | no | Admit only current, explicitly verified, non-contradicted knowledge. False preserves ordinary legacy-compatible recall. |
| graph | string | no | auto (selected project plus configured outer), project (selected store only), or global (configured outer store only). |
Add a knowledge node to the graph. search first: when a matching node already exists, change it with edit or supersede instead of adding a duplicate.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| text | string | yes | The knowledge to capture (becomes title + content). Be specific. |
| node_type | string | no | See types above. Default: concept. |
| tags | string | no | Comma-separated tags for contextual surfacing (e.g. "kindex,python"). |
| domains | string | no | Alias for tags (deprecated, use tags instead). |
| audience | string | no | Visibility scope (private, team, org, public). Default: private. |
| referent | string | no | Path or URL the claim describes (R0 binding). File paths are hashed now — use an absolute path (the MCP server's cwd is not the project's) or supply referent_digest. |
| referent_digest | string | no | Explicit content digest (required for url/repo scope; sha256 hex, or 7-64 hex commit for repo scope). |
| referent_scope | string | no | file | url | repo (default: url for URLs, file otherwise). |
| asserted_at | string | no | RFC3339 claim time (default: now when binding). |
| true_of | string | no | RFC3339 instant the referent was observed in the digested state (default: asserted_at). |
| graph | string | no | project (selected graph) or global (configured outer graph). |
| source_refs | string | no | Comma-separated graph-qualified result IDs used as evidence. A global source routes this new node to the global graph. |
Edit a node in place (policy-aware). Accepts a node ID or exact title.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| node_id | string | yes | Node ID or exact title. |
| title | string | no | Replace the title. |
| content | string | no | Replace the content. |
| append | string | no | Append a dated addendum block to the content. |
| add_tags | string | no | Comma-separated tags to add. |
| remove_tags | string | no | Comma-separated tags to remove. |
| intent | string | no | Replace the intent. |
| expires | string | no | Set an expiry date (YYYY-MM-DD) — expired nodes stop surfacing and are archived by the daemon. |
| force | boolean | no | Override a foreign advisory lock. |
Replace a node with a fresh one, preserving history. Accepts ID or title.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| node_id | string | yes | Node ID or exact title of the node to replace. |
| new_text | string | yes | Full replacement text (becomes title + content). |
| expires | string | no | Optional expiry date for the new node (YYYY-MM-DD). |
| reason | string | no | Why the node is being replaced (kept as provenance). |
Get a formatted context block for injection into conversation.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| topic | string | no | Topic to search for (auto-detects from cwd if empty). |
| level | string | no | Context tier (full, abridged, summarized, executive, index), or evidence: the matching nodes in full, dated and oldest first, with the standing directives (what ask returns; default 4,000 tokens). |
| max_tokens | integer | no | Token budget (overrides level with auto-selection if set; with level=evidence, the evidence budget). |
| trusted_only | boolean | no | Admit only current, explicitly verified, non-contradicted knowledge. False preserves ordinary recall. |
| graph | string | no | Read scope: auto, project, or global. |
Stage one bounded automatic capture for review without promoting knowledge.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| title | string | yes | Candidate title (at most 500 characters). |
| content | string | yes | Candidate content (at most 4,000 characters). |
| source_digest | string | yes | SHA-256 digest of the source material. |
| node_type | string | no | Allowed Kindex node type; defaults to concept. |
| domains | array | no | Optional domain labels. |
| connections | array | no | Optional proposed edges. |
| ttl_days | integer | no | Optional positive candidate lifetime in days. |
List quarantined automatic-capture receipts without payload fields.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| status | string | no | Optional pending/conflicted/accepted/rejected/expired filter. |
| limit | integer | no | Maximum receipts to return. |
Show the exact untrusted candidate payload plus its freshness token.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| candidate_id | string | yes | Exact capture-candidate ID (from candidate_list). |
Accept a fresh candidate with asserted reviewer and verification method.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| candidate_id | string | yes | Exact capture-candidate ID. |
| review_token | string | yes | The review_token from a current candidate_show. |
| reviewed_by | string | yes | Asserted reviewer identifier (audit text, not authenticated; at most 128 characters). |
| prov_method | string | yes | How the content was verified, as short audit text (at most 128 characters). |
| valid_at | string | no | Optional RFC 3339 start of the half-open valid interval. |
| invalid_at | string | no | Optional RFC 3339 exclusive end; must be later than valid_at. |
Reject and minimize a live capture candidate.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| candidate_id | string | yes | Exact capture-candidate ID. |
| reviewed_by | string | yes | Asserted reviewer identifier. |
| disposition_code | string | yes | Bounded machine disposition code. |
Expire due pending/conflicted candidates; never promotes knowledge.
No parameter schema on file.
Erase a candidate or minimized review receipt by exact ID.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| candidate_id | string | yes | Exact capture-candidate ID. |
Assert node verification and an optional half-open valid interval.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| node_id | string | yes | Node ID, graph-qualified reference, or exact title. |
| verified_by | string | yes | Asserted verifier identifier (at most 128 characters). |
| prov_method | string | yes | How the node was verified, as short audit text (at most 128 characters). |
| verified_at | string | no | Optional RFC 3339 verification time (default: now). |
| valid_at | string | no | Optional RFC 3339 start of the half-open valid interval. |
| invalid_at | string | no | Optional RFC 3339 exclusive end; must be later than valid_at. |
Set a node's exclusive valid-time end without deleting it.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| node_id | string | yes | Durable node ID or exact title. |
| invalidated_by | string | yes | Asserted invalidating actor. |
| disposition_code | string | yes | Bounded machine invalidation reason. |
| invalid_at | string | no | Optional timezone-aware RFC 3339 exclusive end time. |
| force | boolean | no | Override a foreign advisory lock. |
Show full details of a node including edges and provenance.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| node_id | string | yes | Node ID or title to look up. |
| resolve_sources | boolean | no | Inspect durable evidence with read-only SQLite opens. Saved references never authorize writes or bypass session scopes. |
Create an edge between two nodes. Links are the graph's primary value.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| node_a | string | yes | Source node ID or title. |
| node_b | string | yes | Target node ID or title. |
| relationship | string | no | Edge type (see above). Default: relates_to. |
| weight | number | no | Edge strength 0.0-1.0. Use 0.7+ for strong connections, 0.3-0.5 for weak ones. |
| reason | string | no | Why this connection exists (stored as provenance — always provide this). |
List nodes in the knowledge graph with optional filters.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| node_type | string | no | Filter by type (concept, decision, skill, person, project, etc.). |
| status | string | no | Filter by status (active, archived, deprecated). |
| audience | string | no | Filter by audience (private, team, org, public). |
| tags | string | no | Filter by tags (comma-separated, AND logic — node must have all). |
| limit | integer | no | Maximum number of nodes to return. |
| graph | string | no | auto (both allowed stores), project, or global. |
Get per-graph health and statistics for the selected read scope.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| graph | string | no | — |
Ask a question of the knowledge graph.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| question | string | yes | Natural language question. |
| graph | string | no | Read scope: auto, project, or global. |
| answer | boolean | no | Also draft an answer with the configured LLM (spends budget). |
| max_tokens | integer | no | Token budget for the evidence (default: kin ask's, small for a single answer and wide for counts, lists, orderings and advice). |
Show pending bridge opportunity suggestions.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer | no | Maximum suggestions to show. |
| graph | string | no | auto (both allowed stores), project, or global. |
Extract knowledge from text and add it to the graph.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| text | string | yes | Text to extract knowledge from (session notes, documentation, etc.). |
| graph | string | no | project (selected graph) or global (configured outer graph). |
| source_refs | string | no | Comma-separated graph-qualified evidence IDs. A global source routes extracted knowledge to the global graph. |
Get source-separated graph analytics for auto, project, or global.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| graph | string | no | — |
Diagnose each allowed graph independently without modifying it.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| graph | string | no | — |
Re-hash referent-bound nodes; demote stale ones from trusted recall.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| base_dir | string | no | Resolve relative referent paths against this directory (default: the server's cwd — prefer absolute referent paths). |
| rebind | string | no | Node ID to deliberately re-verify instead of sweeping: re-hash its referent and rebind to the current state (moves true_of to now, keeps asserted_at, clears the stale marker). |
Find (or mask) known secret values already stored in the graph.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| apply | boolean | no | Rewrite the matches as `$NAME` after a recovery snapshot (the snapshot keeps the old values; the report names it). |
Merge two nodes that represent the same concept.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| source_id | string | yes | Node to merge FROM (will be archived). |
| target_id | string | yes | Node to merge INTO (will receive edges). |
| keep | string | no | Which node to keep: 'target' (default) or 'source'. |
| force | boolean | no | Merge additive types / override a foreign lock. |
Run knowledge consolidation (dream cycle).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| mode | string | no | 'lightweight' (fast, <5s) or 'full' (non-LLM). The LLM 'deep' mode spends on model calls and runs only from a shell (kin dream --deep), not from a tool call. |
| dry_run | boolean | no | If True, report what would happen without making changes. |
Show recent changes to the knowledge graph.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| since | string | no | ISO date/timestamp to look back from (e.g. '2026-02-20'). |
| days | integer | no | Look back N days from now (default 7, ignored if 'since' is set). |
| graph | string | no | auto (both allowed stores), project, or global. |
Ingest knowledge from external sources.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| source | string | yes | Adapter name (github, linear, files, commits, projects, sessions) or 'all'. |
| limit | integer | no | Maximum items to ingest per adapter (0 = each adapter's own default; code is unlimited, network/LLM adapters cap at 50). |
| repo | string | no | GitHub owner/repo for github adapter (e.g. 'jmcentire/kindex'). |
| since | string | no | ISO date — only ingest items after this date. |
Start a new session tag for tracking work context.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Human-readable tag name (e.g. 'auth-refactor'). |
| description | string | no | What this session is about. |
| focus | string | no | Current focus area. |
| remaining | string | no | Comma-separated list of remaining items. |
Update, segment, pause, or end a session tag.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | no | Required tag name from tag_start or tag_resume. Concurrent agents can have active tags in the same project, so omission is unsafe. |
| focus | string | no | New focus area (used for update and segment actions). |
| description | string | no | Updated description. |
| remaining | string | no | Replace remaining items (comma-separated). |
| add_remaining | string | no | Add items to remaining (comma-separated). |
| done | string | no | Remove items from remaining (comma-separated). |
| summary | string | no | Summary for segment/pause/end actions. |
| action | string | no | One of: update, segment, pause, end. |
Resume a session tag — get full context for continuing work.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | no | Tag name to resume (shows active/paused tags if empty). |
| tokens | integer | no | Exact UTF-8 byte budget for the resume block. The argument name is retained for compatibility; provider-token guarantees require a direct library caller to supply that provider's exact counter. |
Add a task to the knowledge graph.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| text | string | yes | Task title/description. |
| priority | integer | no | 1=urgent 2=high 3=normal 4=low 5=someday. |
| due | string | no | Optional due date ('tomorrow', '2026-03-15', 'in 3 days'). |
| scope | string | no | 'global' (always visible) or 'contextual' (surfaces by proximity). |
| link_to | string | no | Comma-separated node IDs or titles to link this task to. |
| effort | string | no | Optional effort estimate (small, medium, large). |
| project_path | string | no | Explicit repository path overrides the inferred association. When omitted, a contextual task routed to the global graph from an implicitly selected project is bound to that selected project (not the M |
| session_id | string | no | Optional host conversation ID for contextual reminders. |
| graph | string | no | project (selected graph) or global (configured outer graph). |
| source_refs | string | no | Comma-separated graph-qualified evidence IDs. A global source routes this task to the global graph. |
List tasks, optionally filtered.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| status | string | no | Filter: open, in_progress, done, all. Default: open. |
| scope | string | no | Filter: global, contextual, or empty for both. |
| priority | string | no | Max priority level to show (1-5). Empty for all. |
| project_path | string | no | Optional explicit project filter. |
| limit | integer | no | Maximum number of matching tasks to return. |
| graph | string | no | auto (selected project plus relevant outer tasks), project (selected store only), or global (configured outer store only). This is independent of task scope. |
Mark a task as completed.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Task node ID. |
| agent | string | no | Agent completing it (default: resolved agent id). Another agent's live claim refuses the change unless force is true. |
| force | boolean | no | Complete even though another agent holds a live claim. |
Claim a task for an agent with an expiry.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Task node ID. |
| agent | string | no | Agent/sub-agent name claiming the task (default: resolved agent id). |
| ttl_minutes | integer | no | Claim TTL. Expired claims can be taken over. |
| note | string | no | Optional claim note. |
| force | boolean | no | Override an existing unexpired claim. |
Release a task claim.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Task node ID. |
| agent | string | no | Agent name. Required to match the claim unless force is true. |
| force | boolean | no | Release even if the agent does not match. |
Get a complete structured durable task by its exact graph ID.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | — |
Update task fields; omitted fields stay unchanged. Empty due clears it.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | — |
| title | string | no | — |
| content | string | no | — |
| status | string | no | — |
| priority | integer | no | — |
| due | string | no | — |
| owner | string | no | — |
| dependencies | array | no | — |
| expected_version | integer | no | — |
| agent | string | no | — |
| force | boolean | no | — |
Cancel a task without deleting its durable record or history.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | — |
| expected_version | integer | no | — |
| agent | string | no | — |
| force | boolean | no | — |
Scoped typed task operation for host adapters, including durable retries.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| operation | string | yes | — |
| arguments | object | yes | — |
| project_path | string | yes | — |
| session_id | string | yes | — |
| profile | string | no | — |
| agent | string | no | — |
| include_global | boolean | no | — |
Start a short-lived coordination conversation.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Conversation name. |
| task_id | string | no | Optional related task ID. |
| agent | string | no | Agent creating the conversation (default: resolved agent id). |
| ttl_minutes | integer | no | Conversation TTL. Expired conversations are cleaned up. |
Join a coordination conversation as a member.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Conversation ID or name. |
| agent | string | no | Joining agent name (default: resolved agent id). |
Post a message to a coordination conversation.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| conversation | string | yes | Conversation ID or name. |
| agent | string | no | Posting agent name (default: resolved agent id). |
| message | string | no | Message body. |
| to | string | no | Optional target agent — message is delivered (unread counts, injection) only to them; broadcast when empty. |
Read messages from a coordination conversation.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| conversation | string | yes | Conversation ID or name. |
| since_id | integer | no | Only return messages with a higher id (0 for all); leaves the read cursor unchanged. |
| limit | integer | no | Maximum messages to return. |
| agent | string | no | Reading agent name (default: resolved agent id). |
Attach a graph node to a conversation as a shared resource.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Conversation ID or name. |
| node_id | string | yes | Node ID or title to attach. |
Manage standing inject messages on a coordination conversation.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Conversation ID or name. |
| action | string | no | set, clear, or list. |
| text | string | no | Message text (for set). |
| to | string | no | Optional target agent (for set); broadcast when empty. |
| message_id | integer | no | Specific inject message id to clear (0 = clear all you may). |
| agent | string | no | Acting agent name (default: resolved agent id). |
List coordination conversations.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| status | string | no | active, ended, or all. |
| task_id | string | no | Optional related task ID filter. |
End a coordination conversation and clear transient messages.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| conversation | string | yes | Conversation ID or name. |
| summary | string | no | Optional retained summary. |
| agent | string | no | Ending agent name (default: resolved agent id). |
Acquire an advisory lock on a node for the current agent.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| node_id | string | yes | Node ID or title to lock. |
| ttl_minutes | integer | no | Lock TTL. Re-acquiring refreshes it. |
| note | string | no | Why the node is locked. |
| force | boolean | no | Take over a foreign unexpired lock. |
Release an advisory lock held on a node.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| node_id | string | yes | Node ID or title to unlock. |
| force | boolean | no | Clear a lock held by another agent. |
Create a watch node for something needing periodic attention.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| text | string | yes | What to watch (becomes the node title). |
| owner | string | no | Who owns this watch (person or team). |
| expires | string | no | When this watch expires (YYYY-MM-DD). Auto-archived after expiry. |
| link_to | string | no | Comma-separated node IDs/titles to link this watch to. |
| graph | string | no | project (selected graph) or global (configured outer graph). |
| source_refs | string | no | Comma-separated graph-qualified evidence IDs. A global source routes this watch to the global graph. |
List watch nodes.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| status | string | no | Filter by status: active (default), archived, all. |
| graph | string | no | auto (both allowed stores), project, or global. |
Resolve/archive a watch node.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Watch node ID. |
| reason | string | no | Why this watch is being resolved. |
Create a reminder with natural language time parsing.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| text | string | yes | What to be reminded about. |
| when | string | yes | When to fire: 'in 30 minutes', 'tomorrow at 3pm', 'every weekday at 9am'. |
| priority | string | no | Priority level (low, normal, high, urgent). |
| channels | string | no | Comma-separated notification channels (system, slack, email, claude). |
| action | string | no | Shell command to execute when the reminder fires (optional). |
| instructions | string | no | Natural language instructions for Claude to follow when due (optional). |
| conversation_id | string | no | Optional chat/session id for scoped hook injection. |
| scope | string | no | Reminder visibility for hook injection: chat or global. |
| wake | string | no | Wake an agent when due: codex or opencode. |
| wake_session | string | no | Optional host session id to resume; 'last' is resolved to the current (or newest Codex) session now, not when the reminder fires. |
| wake_cwd | string | no | Working directory for the wake run (default: this project). |
| wake_model | string | no | Optional model override for the wake run. |
| wake_agent | string | no | Optional OpenCode agent override for the wake run. |
List reminders with optional filters.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| status | string | no | Filter by status (active, snoozed, fired, all). |
| priority | string | no | Filter by priority (low, normal, high, urgent). |
Snooze a reminder.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Reminder ID. |
| duration | string | no | Snooze duration (e.g. '15m', '1h'). Uses config default if empty. |
Mark a reminder as completed.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Reminder ID. |
Check for due reminders and fire notifications.
No parameter schema on file.
Manually trigger a reminder's action.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | Reminder ID. |
Activate a conversation mode. Returns the priming artifact to inject.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Mode name (e.g. 'collaborate', 'code', 'create'). |
| session_context | string | no | Optional prior session context to resume from. |
List available conversation modes (built-in and custom).
No parameter schema on file.
Show details of a conversation mode including its primer, boundary, and permissions.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Mode name. |
Create a custom conversation mode from a primer, boundary, and permissions.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Mode name (short, lowercase, no spaces). |
| primer | string | yes | The mode-setting passage. Under 80 words. Not instructions. |
| boundary | string | yes | 2-3 sentences defining output quality for this mode. |
| permissions | string | yes | What's explicitly permitted to keep the conversation alive. |
| description | string | no | Optional one-line description. |
| link_to | string | no | Comma-separated node IDs/titles to link this mode to. |
Export a mode as a portable, PII-free artifact (JSON).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | Mode name to export. |
Import a mode from a portable artifact (JSON string).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| artifact_json | string | yes | JSON string of the mode artifact. |
Seed the default conversation modes into the graph. Idempotent.
No parameter schema on file.
Report this server's fixed repository, graph and permitted Kinbase operations.
No parameter schema on file.
- Every tool, no call limit
- No card, and mcprush charges nothing for it
- Source published under MIT
- Runs on your machine — nothing of it reaches our gateway
- 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 Kindex 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.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | high | capability blast radius (high) — client exposure if the model is manipulated | −6 |
| verification-discount | source | publisher verification (provenance) — cryptographic build provenance ties the artifact to its source | −0 |
| coverage-honesty | source | inspection depth (source) — how much of the target the scan could see | −0 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
Tools were statically extracted from the published source (1 recovered), not enumerated from a running server. Tool-poisoning, Unicode-smuggling, capability and toxic-flow analysis ran on this inferred surface, but a mis-parsed registration could be missed or mis-attributed, so tool-derived findings are capped below “confirmed”. To grade the real runtime surface, scan the running server: --command "npx -y <package>".
1 of the 1 recovered tools are registered only when allow_kinbase_submit and no_kinbase is false (src/kindex/mcp_lite.py:201) — typically when a key or option is configured. They are part of the server's surface and were analysed; a server started without that configuration exposes none of the recovered tools.
The source has registrations with unknown names: the tools registered at src/kindex/mcp_lite.py:239 get their names only at run time (a loop over a list the code builds, a name it computes), so they are not in this surface and were not analysed. To see them, scan the running server: --command "npx -y <package>".
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. high is the level these add up to.
No tool is registered unconditionally · 1 only when allow_kinbase_submit and no_kinbase is false (src/kindex/mcp_lite.py:201) — typically when a key or option is configured. All 1 are in the table below and were analysed; the conditional ones are marked.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| scope_info conditional | no tags |
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
The public result for this release does not print the flow graph, so there is nothing to show here. That is not the same as "no paths were found": what the scan did read is above, under coverage.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
Always latest — the install command names no version, so it installs the newest release when it runs; the current release on file is 0.49.0. Pin a release below and the command asks for exactly that one.
No release note was published with this version.
No release note was published with this version.
No release note was published with this version.
No release note was published with this version.
No release note was published with this version.
No release note was published with this version.
No release note was published with this version.
No release note was published with this version.
No release note was published with this version.
- The version this listing was on when mcprush began following its releases. The registry was not asked when it shipped, so this row carries no date.
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 Kindex 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.