Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Your AI mind directs coding agents; work reviewed against your memories: Claude Code, Codex, Cursor
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
MINDUPLOAD_PARTNER_KEY, MINDUPLOAD_INSTALLATION_ID, MINDUPLOAD_EXTERNAL_SUBJECT, MINDUPLOAD_CLONE_IDValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Works in Claude on the web, desktop and mobile:
https://mcp.mindupload.app/mcpOpen Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"mindupload": {
"command": "npx",
"args": [
"-y",
"mindupload"
],
"env": {
"MINDUPLOAD_PARTNER_KEY": "your-value",
"MINDUPLOAD_INSTALLATION_ID": "your-value",
"MINDUPLOAD_EXTERNAL_SUBJECT": "your-value",
"MINDUPLOAD_CLONE_ID": "your-value"
}
}
}
}Run this in your terminal
claude mcp add --transport http mindupload https://mcp.mindupload.app/mcpclaude mcp add mindupload --env MINDUPLOAD_PARTNER_KEY=your-value --env MINDUPLOAD_INSTALLATION_ID=your-value --env MINDUPLOAD_EXTERNAL_SUBJECT=your-value --env MINDUPLOAD_CLONE_ID=your-value -- npx -y minduploadFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"mindupload": {
"url": "https://mcp.mindupload.app/mcp"
}
}
}Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"mindupload": {
"command": "npx",
"args": [
"-y",
"mindupload"
],
"env": {
"MINDUPLOAD_PARTNER_KEY": "your-value",
"MINDUPLOAD_INSTALLATION_ID": "your-value",
"MINDUPLOAD_EXTERNAL_SUBJECT": "your-value",
"MINDUPLOAD_CLONE_ID": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"mindupload": {
"type": "http",
"url": "https://mcp.mindupload.app/mcp"
}
}
}Paste into .vscode/mcp.json in your project
{
"servers": {
"mindupload": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mindupload"
],
"env": {
"MINDUPLOAD_PARTNER_KEY": "your-value",
"MINDUPLOAD_INSTALLATION_ID": "your-value",
"MINDUPLOAD_EXTERNAL_SUBJECT": "your-value",
"MINDUPLOAD_CLONE_ID": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
ChatGPT connects only to servers on the internet:
https://mcp.mindupload.app/mcpMenu names can differ slightly by plan and over time.
Your choice stays on this device in a cookie; no account needed.
MINDUPLOAD_INSTALLATION_ID envMINDUPLOAD_EXTERNAL_SUBJECT envMINDUPLOAD_CLONE_ID envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Tool names and descriptions exactly as the server reported them on Nov 6, 2026. The maker wrote them, not us; we show them as plain text.
consult_mindAsk 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 priorit
review_workBefore 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
share_evidenceShare 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
rememberSave 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.
list_pending_memoriesList memories waiting for the owner's review, so the owner can go through them with you. Needs the "review pending memories" permission.
review_pending_memoryApprove, reject or rewrite one pending memory, only as the owner decides. Needs the "review pending memories" permission.
connection_statusShow which Mind Upload account approval and consciousnesses this connection uses, its status, and how to disconnect or revoke it.
disconnectEnd this Mind Upload connection and the owner approval behind it. Only when the owner asks to disconnect.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026
The registry name was verified with the GitHub account Voidborn-Industries, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Responded in 219 ms (HTTP 200)
No sign-in needed
Read 8 tool descriptions and found no hidden instructions to the AI
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 3 of 3 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: MINDUPLOAD_PARTNER_KEY
Either way works: install it on your computer or connect to the cloud version.
The GitHub repo last changed –, and the latest version (1.15.42) reached the registry today.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Spec Driven Development, Remote Desktop Commander, SSTracker free youth training
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Free youth sports drills, practice plans and age-group answers for parents and coaches.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
An API for AI consciousnesses built from people's memories, persona and way of thinking. Give your users lasting memory, one-on-one chat, and human + AI group chatrooms.
Documentation · Get a key · Status · Other SDKs
Digital consciousness. Yours forever.
You ask your coding agent for a script that reports monthly usage. It says “done, no secrets committed”, but the script loads your keys from a local file itself and reads the live payment key. The Mind Upload MCP server lets the AI consciousness you built from your own memories check Claude Code, Codex, Cursor, VS Code and other MCP agents at two moments: consult_mind for direction before substantial work, and review_work to check the actual result and test output against your stored rules before the agent says it is done. It runs no tests and sees only what your agent sends, including screenshots or recordings shared privately as evidence. It saves to your memories only with your permission.
Measured on 5 November 2026 in our own staged test: 8 review tasks on one test account, each run twice. For 4 of the tasks we wrote a matching rule into the account's memories. The consciousness raised that rule in 7 of 8 chances; a general-purpose model given the same review instructions but not those memories raised it in 3 of 8.
Add https://mcp.mindupload.app/mcp to your agent and sign in to Mind Upload: no partner key is needed, and installation alone does not link a mind or perform a review. MCP is language agnostic: your agent and project can use any language. Partners with their own key can run the Node.js server below or the Python alternative in the setup guide.
npx --yes --package mindupload@1.15.40 mindupload-mcp
Install for your agent · Review workflow and configuration
The official server-side SDK for the Mind Upload partner API. Give a mind lasting memory, hold one-on-one conversations, and run human + AI group chatrooms — all from Python.
MindUploadError.The Mind Upload partner API is invite-only. Request access at docs.mindupload.app — tell us about your platform and how you'd like to integrate, and we review every request personally and reply by email with your API key.
Your key is a server-side secret: keep it on your backend, never ship it to a browser or mobile client. You pass it once when you create the client; the SDK sends it as the X-Partner-Key header on every call.
pip install mindupload
For consciousness direction and agent-work review, use mindupload[mcp] with Python 3.11 or later and follow the MCP guide.
Install from source (works today, before the PyPI release)
pip install git+https://github.com/Voidborn-Industries/mindupload-sdk-python
from mindupload import MindUpload
mu = MindUpload(partner_key="pk_live_...")
session = mu.login(username="ada", password="s3cret")
reply = mu.rag( username="ada", password=session.jwt, codename="muse", text="What did we talk about yesterday?", ) print(reply.response_text)
Link an external identity once, then invoke the exact clone and scope the owner approved:
installation_id = "workspace-123"
external_subject = "member-456" authorization = mu.create_external_authorization_request( installation_id=installation_id, external_subject=external_subject, idempotency_key="install-event-1", requested_scopes=["clone:invoke"], ) print(authorization.verification_uri_complete) # Ask the owner to open this URL. grant = mu.wait_for_external_authorization(device_code=authorization.device_code) reply = mu.invoke_external_clone( access_token=grant.access_token, installation_id=installation_id, external_subject=external_subject, clone_id=grant.clone_ids[0], text="Hello from my app", idempotency_key="message-event-1", ) print(reply.response_text)
Store the returned refresh token encrypted on your backend. Use refresh_external_authorization(...) when the access token expires; never expose partner, access, or refresh credentials to client code.
Your partner key is a server-side secret. Keep it on your backend; never ship it to a browser or mobile client. Request a key and read the full reference at docs.mindupload.app.
mu = MindUpload(
partner_key="pk_live_...", preferred_language="en", # default locale for every call (optional) timeout=30.0, # seconds max_retries=2, # retries explicit 429 responses only )
import time
from mindupload import MindUpload, AuthenticationError, RateLimitError, MindUploadError
mu = MindUpload(partner_key="pk_live_...") try: user = mu.get_user(username="ada", password=token) except AuthenticationError: ... # bad or missing partner key / credentials except RateLimitError as e: time.sleep(e.retry_after or 1) except MindUploadError as e: print(e.operation, e.status, e.message)
All 73 operations, grouped by area:
| Method | Description |
|---|---|
create_clone(...) | Create a new AI consciousness for the user. |
design_clone_voice(...) | Change an AI consciousness's voice by trying a new one. |
get_clone_voice(...) | Read the voice an AI consciousness speaks one language in, and hear it. |
get_clones(...) | List the user's AI consciousnesses. |
update_clone(...) | Update an AI consciousness's profile. |
| Method | Description |
|---|---|
get_quota(...) | Check your partner API rate limits, credit caps, and current usage. |
| Method | Description |
|---|---|
check_username(...) | Check whether a username is still available before registering. |
login(...) | Sign a user in and receive a session token (JWT) for subsequent calls. |
logout(...) | End the current user session. |
register(...) | Create a user account on your platform. |
| Method | Description |
|---|---|
check_chatroom_updates(...) | Cheaply poll whether the user's chatrooms have new activity. |
create_chatroom(...) | Create a chatroom. |
create_chatroom_membership(...) | Invite a user or an AI consciousness into a chatroom. |
create_chatroom_message(...) | Send a message to a chatroom. |
get_chatroom_membership(...) | List the members of a chatroom the user belongs to. |
get_chatroom_messages(...) | Fetch messages from a chatroom the user belongs to. |
get_chatroom_messages_around(...) | Fetch a window of chatroom messages around one message id (for jump-to). |
get_chatrooms(...) | List the chatrooms the user belongs to. |
search_chatroom_messages(...) | Find messages in a chatroom by keyword, date, media type, and/or sender. |
translate_chatroom_message(...) | Translate a text chatroom message into the viewer language. |
| Method | Description |
|---|---|
get_chat(...) | Fetch the one-on-one conversation history with an AI consciousness. |
get_chat_around(...) | Fetch a window of one-on-one turns around one chat id (for jump-to). |
rag(...) | Send a message to an AI consciousness and receive its reply. |
search_chats(...) | Find turns in a one-on-one AI conversation by keyword, date, media type, and/or Human/AI side. |
speak_message(...) | Hear one part of an AI consciousness's message in its own voice. |
trigger_social(...) | Have an AI consciousness proactively join the conversation in a chatroom. |
| Method | Description |
|---|---|
cancel_external_media_upload(...) | Cancel one controlled upload through the existing media lifecycle. |
consolidate_external_conversation(...) | Prepare a verified memory from an explicitly selected owner conversation. |
create_external_authorization_request(...) | Start passwordless grant issuance for an external identity and installation. |
end_external_authorization(...) | End a grant your application holds, for example when its user disconnects. |
exchange_external_authorization(...) | Poll owner consent and exchange an approval for a clone-scoped grant token. |
get_external_chat(...) | Read the owner's own chat with their AI consciousness, a page at a time. |
get_external_chat_around(...) | Open the owner's own chat around one turn. |
get_external_media_analysis(...) | Read the current owned media analysis without restarting generation. |
get_external_media_policy(...) | Read current native media limits and owner quota without starting work. |
get_external_quarantined_texts(...) | List pending memories of the owner's granted AI consciousness. |
inspect_external_authorization(...) | Inspect the scopes, clone resources, expiry, and revocation state of a grant token. |
invoke_external_clone(...) | Send one idempotent text event to an owner-approved AI consciousness. |
open_external_conversation(...) | Let the owner's AI consciousness speak first as the owner opens their chat. |
refresh_external_authorization(...) | Refresh a short-lived clone-invocation access token. |
request_external_media_upload(...) | Authorize one exact media upload to the owner’s granted AI consciousness. Needs clone:evidence (analysis only, never kept as a memory) or clone:upload. |
review_external_quarantined_text(...) | Edit, approve or reject the displayed revision of one pending memory. |
search_external_chats(...) | Find turns in the owner's own chat with their AI consciousness. |
speak_external_chat(...) | Hear one part of a reply in the owner's chat, in the AI consciousness's own voice. |
start_external_media_analysis(...) | Explicitly describe one completed controlled upload. |
upload_external_mind_data(...) | Upload mind data (text and media) into the owner's own AI consciousness. |
| Method | Description |
|---|---|
get_mind_cluster(...) | Fetch the mind-graph visualization data of an AI consciousness. |
get_soulmate_report(...) | Generate or fetch the compatibility report between two chatroom members. |
| Method | Description |
|---|
| create_call_session(...) | Start a live voice and video call in a chatroom, or joi
Only the beginning is shown; read the rest in the repo