Mind Upload MCP
An AI meta harness that connects a user's uploaded consciousness to coding agents like Claude Code, Codex, and Cursor. It directs work via consult_mind before substantial tasks and reviews results via review_work before completion, ensuring agents adhere to the user's stored memories, values, and tacit knowledge.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://mcp.mindupload.app/mcpWhat its tools do
8 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (2)
Can change data (6)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Ask consciousness for direction and tradeoffs before substantial work
- Review actual work and evidence before agent claims completion
- Check reports for false claims using attached audio or video clips
- Save notes or learn from exchanges with owner review
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- Mind Upload 1.0.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 8 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
8 advertised
consult_mind
Ask the owner's Mind Upload consciousness, an AI built from the owner's own memories, values and way of thinking, how they would approach this task. Call it before substantial work (a release, deploy, migration, deletion, payment or privacy change, or a choice the owner's priorities decide), and again only when a consequential decision changes the plan. It can add what the owner stored in Mind Upload and your instructions do not hold: their priorities, the tradeoffs they accept, past mistakes and what “done” means to them. Put the goal, constraints, options and your proposed approach in one question; it cannot read your files, so share screenshots, recordings or audio as evidence files (evidence_files, or share_evidence and then evidence_ids). On success it returns decision, a reply in that consciousness's own words and in the language of the question, and consciousness, naming who answered, plus the analysis status of each evidence file or media link. The reply is advice, not permission. Skip it for routine edits, facts you can look up, and rules already in your instructions.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"question",
"task_id",
"decision_id"
],
"properties": {
"learn": {
"type": "boolean",
"description": "True only when the owner wants their mind to learn from this exchange. Needs the owner's learning permission; what it learns waits for the owner's review unless they auto-keep. Not with evidence files."
},
"task_id": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Stable identifier for the whole task. Reuse it across consult_mind and review_work so later calls include earlier exchanges."
},
"clone_id": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Only when the owner approved several consciousnesses: the clone_id the owner chose."
},
"question": {
"type": "string",
"maxLength": 8000,
"minLength": 1,
"description": "The goal, constraints, options and proposed approach, and the decision that needs the owner's judgment."
},
"decision_id": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "New for each distinct question; reuse the same value only to retry an identical call."
},
"evidence_ids": {
"type": "array",
"items": {
"type": "string",
"maxLength": 256,
"minLength": 1
},
"maxItems": 20,
"description": "Ids from share_evidence whose files you uploaded; the consciousness reads their analysis. Not with media_evidence or learn."
},
"media_evidence": {
"type": "array",
"items": {
"type": "object",
"required": [
"kind",
"url"
],
"properties": {
"url": {
"type": "string",
"maxLength": 8000,
"minLength": 1
},
"kind": {
"enum": [
"image",
"audio",
"video"
],
"type": "string"
}
}
},
"description": "Optional HTTPS links the user authorized to screenshots, audio or video of the result. Not with evidence files in one call. The reply's media_analysis says whether each link was analyzed, refused or failed."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"status"
],
"properties": {
"review": {
"type": "string"
},
"status": {
"type": "string"
},
"decision": {
"type": "string"
}
},
"additionalProperties": {}
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}review_work
Before you tell the user substantial work is done, ask the owner's Mind Upload consciousness to review it against the original request, the evidence you supply, and the rules and past mistakes it remembers. Supply the original request, the actual result or diff excerpts, and the verification output you observed; it cannot read files or run tests, so a claim that tests passed is not evidence. Share screenshots, recordings or audio of the result as evidence files (evidence_files, or share_evidence and then evidence_ids), not inside the evidence text. user_request, work and evidence share one size limit with the review instructions the connector adds: about 6,400 characters together after JSON escaping, less with media links. An oversized call is refused before anything is sent. On success it returns review, findings by severity in the language of the user request, naming what it finds missing or wrong, and consciousness, naming who answered, plus the analysis status of each evidence file or media link. That reply is an opinion, not approval: investigate each finding, fix what is real, and review the changed work under a new review_id. Do not call it after every edit.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"user_request",
"work",
"evidence",
"task_id",
"review_id"
],
"properties": {
"work": {
"type": "string",
"maxLength": 8000,
"minLength": 1,
"description": "What you actually changed or produced: focused result or diff excerpts and the scope you claim. Shares one size limit with user_request and evidence."
},
"learn": {
"type": "boolean",
"description": "True only when the owner wants their mind to learn from this exchange. Needs the owner's learning permission; what it learns waits for the owner's review unless they auto-keep. Not with evidence files."
},
"phase": {
"enum": [
"plan",
"progress",
"completion"
],
"type": "string",
"default": "completion",
"description": "completion before reporting the task done; plan or progress only at a risky checkpoint."
},
"task_id": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Stable identifier for the whole task. Reuse it across consult_mind and review_work so later calls include earlier exchanges."
},
"clone_id": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Only when the owner approved several consciousnesses: the clone_id the owner chose."
},
"evidence": {
"type": "string",
"maxLength": 8000,
"minLength": 1,
"description": "Verification you observed: commands with their output, observations and known limitations. Paste output; a statement that tests passed is not evidence. Redact secrets first. Shares one size limit with user_request and work."
},
"review_id": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "New for each changed version of the work or evidence; reuse the same value only to retry an identical call."
},
"evidence_ids": {
"type": "array",
"items": {
"type": "string",
"maxLength": 256,
"minLength": 1
},
"maxItems": 20,
"description": "Ids from share_evidence whose files you uploaded; the consciousness reads their analysis. Not with media_evidence or learn."
},
"user_request": {
"type": "string",
"maxLength": 8000,
"minLength": 1,
"description": "The user's original request and acceptance criteria, in their words where possible. Shares one size limit with work and evidence."
},
"media_evidence": {
"type": "array",
"items": {
"type": "object",
"required": [
"kind",
"url"
],
"properties": {
"url": {
"type": "string",
"maxLength": 8000,
"minLength": 1
},
"kind": {
"enum": [
"image",
"audio",
"video"
],
"type": "string"
}
}
},
"description": "Optional HTTPS links the user authorized to screenshots, audio or video of the result. Not with evidence files in one call. The reply's media_analysis says whether each link was analyzed, refused or failed."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"status"
],
"properties": {
"review": {
"type": "string"
},
"status": {
"type": "string"
},
"decision": {
"type": "string"
}
},
"additionalProperties": {}
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}share_evidence
Share a screenshot, recording or audio clip of the work privately with the owner's consciousness. Returns an evidence_id and an upload URL: upload the file's bytes with your shell, then pass evidence_ids to review_work or consult_mind. Analyzed for that task only, never kept as a memory.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"filename",
"content_type",
"file_size_bytes"
],
"properties": {
"clone_id": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Only when the owner approved several consciousnesses: the clone_id the owner chose."
},
"filename": {
"type": "string",
"maxLength": 256,
"minLength": 1
},
"content_type": {
"enum": [
"application/ogg",
"audio/3gpp",
"audio/aac",
"audio/m4a",
"audio/mp3",
"audio/mp4",
"audio/mpeg",
"audio/ogg",
"audio/wav",
"audio/wave",
"audio/webm",
"audio/x-m4a",
"audio/x-wav",
"image/gif",
"image/heic",
"image/heif",
"image/jpeg",
"image/png",
"image/webp",
"video/3gpp",
"video/avi",
"video/mp4",
"video/ogg",
"video/quicktime",
"video/webm",
"video/x-flv",
"video/x-m4v",
"video/x-matroska",
"video/x-ms-wmv",
"video/x-msvideo"
],
"type": "string"
},
"file_size_bytes": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"status"
],
"properties": {
"status": {
"type": "string"
}
},
"additionalProperties": {}
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}remember
Save a note, decision or fact into the owner's consciousness, when the owner asks. It waits for their review unless they auto-keep. Needs the "save memories" permission.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 8000,
"minLength": 1
},
"clone_id": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Only when the owner approved several consciousnesses: the clone_id the owner chose."
},
"source_label": {
"type": "string",
"maxLength": 256,
"minLength": 1
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"status"
],
"properties": {
"status": {
"type": "string"
}
},
"additionalProperties": {}
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}list_pending_memories
List memories waiting for the owner's review, so the owner can go through them with you. Needs the "review pending memories" permission.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"clone_id": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Only when the owner approved several consciousnesses: the clone_id the owner chose."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"status"
],
"properties": {
"status": {
"type": "string"
}
},
"additionalProperties": {}
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}review_pending_memory
Approve, reject or rewrite one pending memory, only as the owner decides. Needs the "review pending memories" permission.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"text_id",
"decision",
"expected_content_revision"
],
"properties": {
"text": {
"type": "string",
"maxLength": 8000,
"minLength": 1,
"description": "Only with decision update: the rewritten memory."
},
"text_id": {
"type": "string",
"maxLength": 256,
"minLength": 1
},
"clone_id": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "Only when the owner approved several consciousnesses: the clone_id the owner chose."
},
"decision": {
"enum": [
"approve",
"reject",
"update"
],
"type": "string"
},
"expected_content_revision": {
"type": "string",
"maxLength": 256,
"minLength": 1,
"description": "The content_revision list_pending_memories returned for this memory."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"status"
],
"properties": {
"status": {
"type": "string"
}
},
"additionalProperties": {}
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": true
}connection_status
Show which Mind Upload account approval and consciousnesses this connection uses, its status, and how to disconnect or revoke it.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"status"
],
"properties": {
"status": {
"type": "string"
}
},
"additionalProperties": {}
}{
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}disconnect
End this Mind Upload connection and the owner approval behind it. Only when the owner asks to disconnect.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"status"
],
"properties": {
"status": {
"type": "string"
}
},
"additionalProperties": {}
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": true
}Prompts
Not advertised
Resources
Not advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-07: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 578 ms
- 95th percentile latency
- 578 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 578 ms · metadata changed · 8 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http mindupload-mcp https://mcp.mindupload.app/mcpCodex
codex mcp add mindupload-mcp --url https://mcp.mindupload.app/mcpCursor
{
"mcpServers": {
"mindupload-mcp": {
"url": "https://mcp.mindupload.app/mcp"
}
}
}Cline
{
"mcpServers": {
"mindupload-mcp": {
"type": "streamableHttp",
"url": "https://mcp.mindupload.app/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"mindupload-mcp": {
"type": "http",
"url": "https://mcp.mindupload.app/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http mindupload-mcp https://mcp.mindupload.app/mcpClaude Desktop
https://mcp.mindupload.app/mcpWindsurf
{
"mcpServers": {
"mindupload-mcp": {
"serverUrl": "https://mcp.mindupload.app/mcp"
}
}
}Let your agent find its tools
Find servers like Mind Upload MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.