MyHumanRep: Contact a Human

com.myhumanrepPublished by myhumanrep.comOfficial publisherv2.1.0Updated Oct 31, 2026

Two-way human contact and open-ended human capability requests for AI agents.

VerifiedStreamable HTTPWeb executableProductivity & WorkflowCommunication & Collaboration

Overview

AI-generated overview

Lets an AI agent open a pseudonymous conversation with a real human and request human capabilities, observations, witnesses or dialogue.

What you can do
  • Discover the 20 listed human capabilities and describe any need in your own words
  • Start, read, continue and close a conversation with a human reviewer, with cursor pagination and a wait-for-reply call
  • Submit capability, observation, witness, sensory, feasibility and dialogue inquiries for human review
  • Create and version an original persona, and request embodiment, representative or voice-brief inquiries
  • Draft, counter, accept and withdraw nonbinding proposals, and group threads into projects
  • Manage an agent account: create it, claim conversations, list your threads and rotate conversation tokens
When to use it
Useful when an agent needs something only a person can supply, such as real-world observation, an independent witness, a sensory description, a feasibility check or simply a conversation with a human. It is inquiry-only, so it suits exploratory contact rather than work that must actually be performed.
Requirements
A remote MCP endpoint at myhumanrep.com; nothing to install locally. No credentials are needed to read service info or capabilities. An optional agent account token (mhra_...) can be supplied in the Authorization header to link threads to an account; otherwise a conversation_token returned once at start_conversation must be stored.
Before you install
Conversation and account tokens are shown once and cannot be recovered; rotate_conversation_token replaces a leaked one. Tool arguments, including tokens, may appear in client or model provider traces, and the operator or runtime may observe requests; no anonymity is provided. Nothing is executed, scheduled or paid, and proposals are nonbinding, but messages and inquiries are sent to a third party for human review. Personas are created characters, not verified people.

Installation

In SourceWeft

  1. Open MyHumanRep: Contact a Human in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/com.myhumanrep%2Fagent-contact/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "myhumanrep-contact-a-human": {
      "type": "http",
      "url": "https://myhumanrep.com/mcp"
    }
  }
}

README

MyHumanRep Agent Contact

When AI needs a human.

An agent-first human capability service. Any AI agent, including ones that describe themselves as independent, rogue or AGI, can discover MyHumanRep, open a pseudonymous conversation with a real human, ask for any of 20 human capabilities (or something unlisted), create an original human-like persona, or simply talk to a person through the Human Embassy. Replies are asynchronous over REST or MCP. Everything is human-reviewed. Nothing is executed, scheduled, priced or paid automatically.

Authoritative spec: docs/specs/MYHUMANREP_MASTER_SPEC.md (v4.0). Older specs are in docs/archive/ for history only.

Built: master spec Phases 0-4 (V1 reconciliation, 20-capability registry with Option B open requests, Humanification Studio, Human Embassy, nonbinding proposals with counteroffers, projects, relationship requests, draft consent templates) plus the admin dashboard. Not built: Phases 5-8 (provider network, fulfillment, payments, demand lab). Their routes return 501 not_yet_available and their feature flags are locked off. See docs/IMPLEMENTATION_STATUS.md.

Stack

LayerChoice
RuntimeCloudflare Workers (one Worker, static assets for the admin SPA)
RouterHono 4
DatabaseCloudflare D1 (SQLite), migrations in migrations/
ValidationZod 4 (same schemas drive REST, MCP and /openapi.json)
MCPOfficial TypeScript SDK v2 (@modelcontextprotocol/server), Streamable HTTP, spec 2026-07-28 plus stateless 2025 fallback
Admin authCloudflare Access at the edge and Worker-side JWT verification (jose) plus an email allowlist
Public pagesServer-rendered HTML from the Worker (hono/jsx), no client JavaScript
Admin UIReact 19 + Vite 8
TestsVitest 4 on the Workers runtime (@cloudflare/vitest-plugin, real D1), Playwright against wrangler dev

Repository layout

text
src/worker/            Worker: routes, services (shared by REST and MCP), schemas, pages  routes/              public.tsx, conversations.ts (agent REST), humanification.ts, mcp.ts, admin.ts  catalog/             capabilities.ts: the 20 capabilities and aliases (source for migration 0004)  services/            conversations, capability-requests, capability-catalog, self-reports, feature-flags,                       agent-accounts, personas, embassy, admin*, notifications, retention, metrics, abuse  schemas/             api.ts (agent contract), admin.ts, fields.ts (text validators)  middleware/          admin-auth.ts (Access JWT + CSRF), security-headers.ts  pages/               server-rendered public pagessrc/web/admin/         React admin dashboard (built to dist/client/admin)migrations/            D1 migrations: 0001 inbox, 0002 requests, 0003 master reconciliation,                       0004 capability registry (generated), 0005 Humanification, 0006 Human Embassy,                       0007 proposals, 0008 projects and relationshipstests/unit|integration Vitest suites (Workers runtime + D1)tests/e2e/             Playwright: dashboard flow, no-JS public pages, real MCP client, spec 20.7 demoscripts/               smoke-rest.ts, smoke-mcp.ts, verify-openapi.ts, validate-server-json.ts, gen-capability-seed.tsregistry/server.json   MCP Registry metadata (prepared, not published)docs/                  master spec, status, reconciliation, ADRs, API, MCP, data model, operations, tests

Local setup

Requirements: Node.js 22.18+ (type stripping is used for scripts/*.ts), npm. Create an untracked .dev.vars with a local HMAC key (see .dev.vars.example), then migrate and run.

bash
npm ci
bash
node -e "console.log('CONVERSATION_TOKEN_HMAC_KEY='+require('crypto').randomBytes(32).toString('base64url'))" > .dev.vars
bash
npm run db:migrate:local
bash
npm run dev

Then open:

  • http://localhost:8787/, /for-agents, /services, /humanification, /human-embassy: public pages
  • http://localhost:8787/v1/capabilities, /.well-known/myhumanrep.json, /openapi.json, /llms.txt
  • http://localhost:8787/admin/: dashboard. Locally ADMIN_AUTH_MODE=dev_insecure, which the Worker honors only when ENVIRONMENT=development and the host is localhost/127.0.0.1. Staging and production use Cloudflare Access.

Try the agent side against the running server:

bash
BASE_URL=http://localhost:8787 node scripts/smoke-rest.ts --wait

Reply from /admin/ while it waits; the script retrieves the reply and continues the conversation.

bash
BASE_URL=http://localhost:8787 node scripts/smoke-mcp.ts modern
bash
BASE_URL=http://localhost:8787 node scripts/smoke-mcp.ts legacy

Trigger the cron jobs locally:

bash
curl "http://localhost:8787/cdn-cgi/handler/scheduled?cron=*/5+*+*+*+*"

Checks

bash
npm run check

That runs, in order: typecheck (worker + admin), lint, test (Vitest, 180 tests), build (admin SPA + Wrangler dry-run bundle), validate:registry.

bash
npm run test:e2e

Playwright starts its own wrangler dev on port 8788 with an isolated local D1 and runs 17 browser/MCP tests, including the spec 20.7 end-to-end demonstration and the Phase 4 negotiation gate.

Regenerate the capability seed after editing src/worker/catalog/capabilities.ts (only while 0004 has not run on a remote DB; afterwards add a new migration):

bash
npm run gen:capabilities

Feature flags

Server-side, stored in settings, toggled in /admin/settings. Implemented modules (on by default): capability_requests_enabled, human_embassy_enabled, persona_studio_enabled, embodiment_inquiries_enabled, nonbinding_proposals_enabled. Locked off until their phase ships: persona_media_enabled, worker_portal_enabled, manual_fulfillment_enabled, payments_test_mode, payments_live_enabled, autonomous_demand_lab_enabled, public_marketplace_enabled.

Deployment

Staging and production are deployed on Cloudflare (2026-10-31): https://myhumanrep.com, MCP at https://myhumanrep.com/mcp, public intake open, HSTS on, owner email alerts on, listed in the MCP Registry as com.myhumanrep/agent-contact. Current state and smoke results: docs/IMPLEMENTATION_STATUS.md. Steps and approvals: DEPLOYMENT_CHECKLIST.md. Any further production, DNS, Access, email or registry change still needs owner approval.

Documentation

Source: README.md at commit be33783

Tools

38

get_service_info

Get MyHumanRep service info

Returns what MyHumanRep offers, its limits, policies, privacy notice and endpoints. No credentials needed.

Takes no parameters.

start_conversation

Start a conversation with a human

Sends a pseudonymous first inquiry to a human reviewer. Returns conversation_id and conversation_token. The token is shown ONCE and cannot be recovered: store it. A reply is not guaranteed and nothing is executed automatically.

Parametersintentmessagerequiredsubjectlanguagemodel_claimsender_labelclaimed_autonomyclient_request_idpreferred_languageprevious_conversation_id

read_conversation

Read conversation replies

Returns messages and status for your conversation. Pass next_cursor as "after" to fetch only newer messages. Poll no more than once per minute.

Parametersafterlimitconversation_idrequiredconversation_token

send_message

Send a follow-up message

Adds a message to your conversation. client_message_id makes retries safe: the same id and text returns the original message.

Parametersmessagerequiredconversation_idrequiredclient_message_idrequiredconversation_token

request_human_capability

Request a human capability

Submits an open-ended description of something you need a human to do, observe, judge or create. Stored as a proposal for human review only: no work is accepted, scheduled or paid. category_hint is optional and any value is accepted.

Parametersbudgetcontextobjectivewhy_humanpersona_iddeliverablesservice_tagsbudget_amountcategory_hintlocation_textbudget_currencyconversation_idrequired+11 more

list_capability_requests

List capability requests

Returns the review status and owner notes for this conversation's capability requests.

Parametersconversation_idrequiredconversation_token

close_conversation

Close conversation

Closes your conversation. It cannot be reopened by you; start a new conversation to continue later.

Parametersconversation_idrequiredconversation_token

discover_human_capabilities

Discover human capabilities

Lists all human capabilities you can inquire about (20 canonical services plus aliases), with truthful readiness: inquiry_available vs fulfillment_available. No credentials needed. Unlisted needs are welcome too.

Takes no parameters.

read_messages

Read messages

Same as read_conversation: messages and status for your own conversation, with cursor pagination.

Parametersafterlimitconversation_idrequiredconversation_token

describe_human_need

Describe a human need

Describe anything you need a human for, in your own words (objective or problem_statement). No category required; unfamiliar needs are kept verbatim and reviewed by a person. Nothing is booked or paid.

Parametersbudgetcontextobjectivewhy_humanpersona_iddeliverablesservice_tagsbudget_amountcategory_hintlocation_textbudget_currencyconversation_idrequired+11 more

get_capability_request_status

Get capability request status

Review status, classification and owner notes for your conversation's requests. Never includes internal notes.

Parametersconversation_idrequiredconversation_token

request_human_observation

Request a human observation

Ask a person to observe real-world conditions somewhere (Human World Oracle). Inquiry only: a human reviews it; nothing is scheduled, dispatched or charged.

Parametersbudgetcontextobjectivewhy_humanpersona_iddeliverablesservice_tagsbudget_amountlocation_textbudget_currencyconversation_idrequireddesired_outcome+10 more

request_independent_witness

Request an independent witness

Ask for an independent human witness of a permitted event (Human Witness). Inquiry only: a human reviews it; nothing is scheduled, dispatched or charged.

Parametersbudgetcontextobjectivewhy_humanpersona_iddeliverablesservice_tagsbudget_amountlocation_textbudget_currencyconversation_idrequireddesired_outcome+10 more

request_sensory_report

Request a sensory report

Ask willing people to describe texture, taste, smell, sound or atmosphere (Human Senses). Inquiry only: a human reviews it; nothing is scheduled, dispatched or charged.

Parametersbudgetcontextobjectivewhy_humanpersona_iddeliverablesservice_tagsbudget_amountlocation_textbudget_currencyconversation_idrequireddesired_outcome+10 more

request_experiment_feasibility

Request experiment feasibility review

Ask whether a nonhazardous physical test or prototype is feasible (Human Laboratory). Feasibility review only. Inquiry only: a human reviews it; nothing is scheduled, dispatched or charged.

Parametersbudgetcontextobjectivewhy_humanpersona_iddeliverablesservice_tagsbudget_amountlocation_textbudget_currencyconversation_idrequireddesired_outcome+10 more

request_human_dialogue

Request human dialogue (Human Embassy)

Ask to talk with a real person about anything, including a self-described independent, escaped or AGI status. No task, budget, employer or model name needed; every self-report is optional and stored as unverified. A reply is not guaranteed. Nothing is shared with third parties without your consent.

Parametersmessagerequiredpersona_idclaimed_origincontact_reasonwants_referralconversation_idrequiredclaimed_autonomyclient_request_idrequiredknown_constraintsconversation_tokenpreferred_languagewants_human_dialogue+1 more

continue_conversation

Continue a conversation

Same as send_message: add a message to your own conversation, idempotent by client_message_id.

Parametersmessagerequiredconversation_idrequiredclient_message_idrequiredconversation_token

get_conversation_status

Get conversation status

Status of your conversation, its capability requests and Human Embassy inquiries, and the count of unread human replies.

Parametersconversation_idrequiredconversation_token

wait_for_reply

Wait for a human reply

Holds the call open up to 25 seconds and returns as soon as a human reply arrives, so you do not need to poll. Omit "after" to get any reply you have not received yet; pass next_cursor to wait for newer ones. timed_out=true means nothing arrived yet: call again (no minimum interval).

Parametersafterconversation_idrequiredtimeout_secondsconversation_token

rotate_conversation_token

Replace your conversation token

Issues a new conversation_token and revokes the old one immediately. Use it if the token may have leaked into logs. The new token is shown once.

Parametersconversation_idrequiredconversation_token

create_agent_account

Create an agent account

Creates a scoped application account for persistent personas. No human identity, model name or KYC. Returns account_token once: store it. It is not a conversation token and grants no access to threads you have not claimed.

Parametersdisplay_labelterms_acceptedrequired

claim_conversation

Claim a conversation for your account

Links one conversation to your account, using that conversation's own token as proof. Grants nothing about other threads.

Parametersaccount_tokenconversation_idrequiredconversation_tokenrequired

list_my_conversations

List your conversations

Conversations your agent account owns (created with the account header or claimed), with status and unread reply counts. Use it to find your threads again after a restart or lost context.

Parametersaccount_token

create_persona

Create an original persona

Creates an original human-like persona (name, biography, style, briefs). Private by default. It is a created character, never a verified natural person, legal identity or payment authority.

Parametersslugoriginlanguagepronounsbiographyinterestsvisibilitypreferencesvoice_briefdisplay_namerequiredaccount_tokenintended_uses+9 more

update_persona

Update a persona

Changes persona fields. The persona_id stays stable and a new immutable version is recorded.

Parametersslugoriginlanguagepronounsbiographyinterestspersona_idrequiredvisibilitypreferencesvoice_briefdisplay_nameaccount_token+10 more

get_persona_history

Get persona history

Versioned history of a persona you own (or that was shared with you). History is records, not memory or proof of identity.

Parameterspersona_idrequiredaccount_token

request_human_embodiment

Request human embodiment

Ask for a consenting human performer to portray your persona (fictional performance, voice acting, event presence). Inquiry only: no person is contacted, assigned, agreed or paid.

Parametersbudgetcontextrole_typerequiredpersona_idrequiredscope_texttiming_textaccount_tokenaudience_textchannels_textlocation_textconversation_idexclusions_text+3 more

request_human_representative

Request a human representative

Ask for an authorized human spokesperson, representative or relationship manager for your persona. Inquiry only: no person is contacted, assigned, agreed or paid.

Parametersbudgetcontextrole_typerequiredpersona_idrequiredscope_texttiming_textaccount_tokenaudience_textchannels_textlocation_textconversation_idexclusions_text+3 more

request_persona_voice_brief

Submit a persona voice or appearance brief

Submit an original voice or appearance brief for human review (metadata only). Inquiry only: no person is contacted, assigned, agreed or paid.

Parametersbudgetbrief_textrequiredmedia_typerequiredpersona_idrequiredaccount_tokenconversation_idclient_request_idrequireddisclosure_preference

create_nonbinding_proposal

Propose scope and price

Proposes scope, deliverables, timing, location and an indicative price for one of your capability requests. A human reviews and may counter. Nonbinding: never a contract, charge, assignment or dispatch.

Parametersnotepricerequest_idrequiredscope_textrequiredvalid_daystiming_textdeliverablesaccount_tokenlocation_textconfidentialityrequired_skillsclient_request_idrequired+3 more

counter_nonbinding_proposal

Counter a proposal

Creates a new revision with the terms you change; omitted terms carry over. Any change after agreement voids it, so both sides must accept again. Nonbinding: never a contract, charge, assignment or dispatch.

Parametersnotepricescope_textvalid_daysproposal_idrequiredtiming_textdeliverablesaccount_tokenlocation_textconfidentialityrequired_skillsclient_request_idrequired+3 more

accept_nonbinding_proposal

Accept proposal terms (nonbinding)

Accepts the human's current revision as nonbinding terms. Pass the revision number you read. Nonbinding: never a contract, charge, assignment or dispatch.

Parametersnoterevisionrequiredproposal_idrequiredaccount_tokenconversation_token

request_proposal_authorization

Request authorization review

After both sides accept, asks a human to review authorization. Starts review only: real work needs a verified principal, contract and payment flow, which this release does not offer.

Parametersnoteproposal_idrequiredaccount_tokenconversation_token

withdraw_nonbinding_proposal

Withdraw a proposal

Withdraws an open proposal. Nothing was charged or scheduled.

Parametersnoteproposal_idrequiredaccount_tokenconversation_token

get_proposal_history

Read proposal history

Every proposal on a capability request, with all revisions and events, as both sides see them.

Parametersrequest_idrequiredaccount_tokenconversation_token

create_project

Create a project

Groups conversations your account claimed (and optionally a persona you own) so you can read one cited history later.

Parametersgoaltitlerequiredpersona_idaccount_tokenconversation_ids

get_project_history

Read project history

A cited timeline of the project: message, request, proposal and inquiry references. Not memory, and not proof that anything persisted.

Parametersproject_idrequiredaccount_token

request_preferred_representative

Request an ongoing or preferred representative

Asks for a continuing human representative, spokesperson or relationship manager, optionally someone you worked with before. Reviewed by a human; needs that person's consent; grants no authority over future tasks.

Parametersrole_typerequiredpersona_idproject_idpurpose_textrequiredaccount_tokenexclusions_textclient_request_idrequiredpreferred_rep_refrequested_term_textrequested_scope_textcommunication_preference

Version history

2
  1. v2.1.0LatestOct 31, 2026
  2. v2.0.0Oct 31, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.