Agents
HeroMind is an MCP server. Connect ChatGPT, Claude, Claude Code, or agents you run yourself, and they read your record before they act, file work and sources with their name on them, and propose changes you approve. The web is what your agents research. Your record is what they need to understand you.
The contract
Every connected agent works under three rules.
- Read first. Before a run, ask for a context pack sized to a budget: who you are, standing preferences, the decisions relevant to the job, what happened recently, today's plate.
- Act inside it. A task carries a description of why it exists and a link back to the run that made it. A dedupe key means a re-run never files it twice. Findings that do not need action go on a daily card, not the task list.
- Leave a record. A decision the agent thinks you made arrives as a proposal on the Desk. An episode says what ran and what changed.
Agents get their own revocable token each. Every call is logged. What an agent files says who filed it, everywhere it appears. An agent cannot change a current decision or belief, cannot read a source you marked private, cannot delete anything, and cannot write to your Notes tab.
Connecting
The server is https://mcp.heromind.ai/mcp. It speaks OAuth 2.1 with PKCE and registers clients dynamically.
-
ChatGPT. Settings → Connectors → Create. Paste the endpoint, approve the consent screen in HeroMind. Add one line to your instructions: start with
get_context. - Claude. Settings → Connectors → Add custom connector, same endpoint. Works in Claude.ai and Claude Desktop.
-
Claude Code.
claude mcp add --transport http heromind https://mcp.heromind.ai/mcp, then authorise once. In a repository, put "call get_context at the start of substantive work" in the project instructions. - Your own agents (HeroAgents, Hermes, anything without a browser). Settings → Agent access (MCP) → create a token, one per agent. Pass it as a bearer token. Revoke it there when the agent retires.
What an agent can do
| Tool | What it does |
|---|---|
get_context { query, budget } | A pack for a task, ranked by meaning and keywords over your decisions, preferences and beliefs, plus recent episodes and today's tasks. Deterministic, under a second. |
library_search | Hybrid search over articles and sources, the same search the Library's search box uses. |
library_read_article, library_read_source, library_get_topic_context | Read a wiki page, an editorial, a source, or a whole topic, with footnotes. |
library_add_source | File a page, thread, transcript, or note into a topic, or into the Inbox for the librarian to place. Pass a note for why it was filed; pass text only when the agent already has the body. |
library_get_person, library_create_person, library_get_book, library_mirror_book | People and book pages. |
list_tasks { status, updated_since } | Open and completed tasks; updated_since shows what changed since the agent last looked. |
create_personal_task, create_work_task | File a task. due_date is the day it appears on (default today). description is the why. source_url links the run. external_ref makes the call idempotent. |
complete_task | Close a task the agent filed or that you asked it to close. |
upsert_daily_note | The morning card on your planner for a date. Idempotent on its key, so a re-run replaces rather than duplicates. |
capture_context { propose: true }, add_decision | Propose a decision, preference, or belief in your words. It waits on the Desk. |
supersede_context, correct_context, trace_lineage | Revise a stance when you change your mind, record a correction, read how your thinking on an idea changed. |
get_timeline, add_episode | Read what happened on a day; log what a run did. |
The full reference, with schemas and examples, is in the API reference.
A morning, as it runs
- 02:00, a research agent files four briefs and the X threads that matter into the Library. It searches first, so nothing is filed twice.
- 04:00, the librarian compiles the topics that moved, writes an editorial where one is due, proposes people and decisions.
- 06:00, a Chief of Staff routine reads the context pack and last night's completions, then files one morning card: what changed, what needs you, the top three.
- Email triage files real actions with a due date and the email linked. Drafts wait for you; sending is yours.
- You, with coffee, say yes or no to what the night proposed.
Writing the agent's instructions
Four lines cover most of it:
Start every run with get_context({ query: "<one sentence on this run>", budget: 6000 }).
File a task only when an action is needed by a date; put findings on the daily card instead.
When the owner states a decision or preference, capture_context it in their words with propose: true.
End every run with add_episode: what ran, what changed, what needs the owner.
Findings versus actions is the rule that keeps the task list trustworthy. A price change on a subscription is a finding; it belongs on a weekly card. "Cancel before the renewal on the 10th" is an action; it belongs on the list with that date.
Seeing what agents did
- Tasks show their origin and a Run link.
- The morning card links to the run that wrote it.
- Activity in the Library lists every background job.
- Settings → Agent access shows each token, its last use, and lets you revoke it.
- The Timeline under You shows episodes agents logged.
Updated 2026-09-27 · All chapters · API reference