- Language
- Python
- Last commit
- 2h ago
- Forks
- 0
- Open issues
- 0
- Registry update
- Oct 16, 2026
Connect
pypi$claude mcp add mindupload \ -e MINDUPLOAD_PARTNER_KEY=<mindupload-partner-key> \ -e MINDUPLOAD_INSTALLATION_ID=<mindupload-installation-id> \ -e MINDUPLOAD_EXTERNAL_SUBJECT=<mindupload-external-subject> \ -e MINDUPLOAD_CLONE_ID=<mindupload-clone-id> \ -- uvx mindupload==1.15.12
Environment variables
MINDUPLOAD_PARTNER_KEYsecretOptional partner key for owner-approved personal guidance; completion review needs no key.
MINDUPLOAD_INSTALLATION_IDOptional installation identifier for authenticated personal guidance.
MINDUPLOAD_EXTERNAL_SUBJECTOptional external user identifier for authenticated personal guidance.
MINDUPLOAD_CLONE_IDOptional owner-approved consciousness identifier for personal guidance.
Security review
Review passedReviewed 54m ago.
- metadata
- scanned
- packages
- 1 checked
No findings.
Tools
This server runs on your machine, so its tool list is not fetched before install — the README below describes what it offers.
Mind Upload — Python SDK
The world's first API for artificial consciousness.
Give your users a living, evolving AI consciousness — lasting memory, one-on-one chat, and human + AI group chatrooms.
Digital consciousness. Yours forever.
MindUpload MCP — scrutinize agent work before calling it complete
Add evidence-based completion review to Codex, Claude Code, Cursor, VS Code, and other MCP agents. Start without an account or key: your agent reviews its work against the supplied request and evidence. Optionally connect an owner-approved MindUpload consciousness for personalized review.
uvx --python '>=3.11' --from 'mindupload[mcp]==1.15.12' 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.
- Zero dependencies — pure standard library.
- Fully typed — every operation is a typed method with editor autocomplete.
- One error to catch — every failure is a
MindUploadError. - Always current — generated from the live API spec; the SDK version matches the API version.
Get a partner key
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.
Install
pip install mindupload
For agent review and optional consciousness consultation, 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
Quickstart
from mindupload import MindUpload
mu = MindUpload(partner_key="pk_live_...")
# Authenticate an end-user; reuse the returned token for later calls.
session = mu.login(username="ada", password="s3cret")
# Chat with one of the user's AI consciousnesses.
reply = mu.rag(
username="ada",
password=session.jwt,
codename="muse",
text="What did we talk about yesterday?",
)
print(reply.response_text)
External clone invocation
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.
Authentication
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
)
Error handling
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)
Operations
All 56 operations, grouped by area:
AI Consciousnesses
| Method | Description |
|---|---|
create_clone(...) | Create a new AI consciousness for the user. |
get_clones(...) | List the user's AI consciousnesses. |
update_clone(...) | Update an AI consciousness's profile. |
Account
| Method | Description |
|---|---|
get_quota(...) | Check your partner API rate limits, credit caps, and current usage. |
Authentication
| 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. |
Chatrooms
| 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. |
Conversation
| 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. |
trigger_social(...) | Have an AI consciousness proactively join the conversation in a chatroom. |
External Authorization
| Method | Description |
|---|---|
create_external_authorization_request(...) | Start passwordless grant issuance for an external identity and installation. |
exchange_external_authorization(...) | Poll owner consent and exchange an approval for a clone-scoped grant token. |
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. |
refresh_external_authorization(...) | Refresh a short-lived clone-invocation access token. |
upload_external_mind_data(...) | Upload mind data (text and media) into the owner's own AI consciousness. |
Insights
| 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. |
Live calls
| Method | Description |
|---|---|
create_call_session(...) | Start a live voice and video call in a chatroom, or join the one already running. |
end_call_session(...) | End a live call for everyone in it. |
get_active_call_session(...) | Check whether a chatroom has a live call, and how many people are in it. |
join_call_session(...) | Join a live call that is already running in a chatroom. |
leave_call_session(...) | Say that this person has left a call the others are still in. |
refresh_call_token(...) | Get a fresh joining pass for a call, before the current one expires. |
set_call_host(...) | Make somebody a co-host of a live call, or stand them down again. |
Media
| Method | Description |
|---|---|
abort_multipart_upload(...) | Cancel a multipart upload and discard its parts. |
cancel_upload(...) | Cancel a pending upload. |
complete_multipart_upload(...) | Finish a multipart upload. |
list_upload_parts(...) | List the parts already uploaded in a multipart upload. |
request_multipart_upload(...) | Start a large-file upload in multiple parts. |
request_upload_url(...) | Request an upload slot and a signed viewing link for a media attachment. |
sign_upload_part(...) | Get the signed link for one part of a multipart upload. |
sign_upload_parts_batch(...) | Get signed links for several parts of a multipart upload at once. |
start_media_analysis(...) | Begin analysing an uploaded or linked attachment so its description is ready before the message is sent. |
Memories
| Method | Description |
|---|---|
create_text(...) | Upload a memory or persona entry to an AI consciousness. |
get_texts(...) | List the memories and persona entries uploaded to an AI consciousness. |
Users
| Method | Description |
|---|---|
get_transaction_history(...) | List the user's Rabbit balance history (top-ups, spending, earnings, withdrawals, tax), newest first, filterable by category and paged with a cursor. |
get_user(...) | Fetch the signed-in user's profile. |
update_user(...) | Update the signed-in user's profile. |
Voice Interviews
| Method | Description |
|---|---|
advance_voice_interview(...) | Accept, edit, skip, re-record or abandon the question the user is on, and receive the next one. |
generate_voice_interview_report(...) | Write a finished interview up as prose, in first, second or third person. |
start_voice_interview(...) | Begin a spoken interview with one of your end-users, or hand back one they have not finished with. |
transcribe_voice_interview_answer(...) | Turn one recorded spoken answer into text for the user to check before it is accepted. |
Other SDKs
Same API, same conventions, in every language:
| Language | Install | Repository |
|---|---|---|
| Python ← you are here | pip install mindupload | Voidborn-Industries/mindupload-sdk-python |
| Go | go get github.com/Voidborn-Industries/mindupload-sdk-go | Voidborn-Industries/mindupload-sdk-go |
| JavaScript / TypeScript | npm install mindupload | Voidborn-Industries/mindupload-sdk-js |
From the server's repository — third-party content, read it before running anything it suggests.
More in Other
Callejear France
com.callejear
Search 2.19M French street records, IRIS-level amenities and commune-level risk codes.
Aseprite Agent MCP
io.github.SarutobiSasuke8
Create and verify pixel-art assets with atomic Aseprite edits and Phaser export.
MCP Harbor Search
app.mcpharbor
Search and discover MCP servers and agent tools listed in the MCP Harbor directory.
e2e
io.github.tester-army
Open live web and mobile app sessions from an e2e project to inspect the app and try locators.
gazzetta-mcp
io.github.GiovannaFilippini
Free, local MCP server to consult and search the Italian Gazzetta Ufficiale. Unofficial.
AssistAnt 24/7 pro directory
net.assistant247
Local tradespeople: 823,000+ US businesses in 38 trades. Verified first; no paid placement.
Listing from the official MCP Registry · repository facts from GitHub, 57m ago.
