Surfaces: MCP, CLI, and the portal¶
There are three ways to reach a Hadron server: the MCP tools an
agent calls inline, the hadron CLI, and the portal web app at
hadronmemory.com. They talk to the same server and the same data — the
difference is who's driving and what they're trying to do. This page
maps what each surface is for so you can pick the right one.
If you're an agent author deciding between MCP and the CLI on the token-cost axis specifically, read CLI vs. MCP for a coding agent — it goes deeper on that one trade-off. This page is the wider "what can I do, and where" overview.
The three surfaces¶
- MCP — the
hadron_*tools an agent (Claude Code, Cursor, the Claude desktop app, …) calls inline while it works. Read and write memory, search semantically, drive a chat, run actions — without leaving the agent loop. This is the surface built for machine callers in the middle of a task. See MCP tools. - CLI (
hadron) — the full scriptable surface. Auth, specs, org and member administration, bulk find/replace, raw GraphQL, import/export. It's intended to be a superset of MCP — anything the tools can do, the CLI can too, plus the administrative operations agents don't need. Built for humans at a terminal and for scripts/CI. See hadron CLI. - Portal (hadronmemory.com) — the visual surface. Browse and search the graph, edit nodes, see the force-directed graph, and manage memories, members, sharing, agents, and apps with a UI. Built for people who'd rather click than type a command.
A quick intuition: an agent mid-task reaches for MCP; a human or script automating reaches for the CLI; a person exploring or administering reaches for the portal.
What the CLI can do¶
hadron's command groups, one line each (run hadron <group> --help,
or hadron agentic-usage for the full agent-facing contract):
| Group | What it covers |
|---|---|
auth |
Sign in/out, show identity, mint and revoke personal access tokens. |
memory |
List/get/create/update/delete memories; manage members and sharing. |
node |
Read/create/update/delete/move nodes; export and import them. |
edge |
Create/update/delete edges between nodes. |
task |
Run a runnable node — task run <urn>. |
replace |
Bulk literal/regex find-and-replace across a memory's nodes. |
spec |
Author and maintain citation-addressed product specs. |
app |
List, install, uninstall apps; set the active app. |
org |
Create and manage organizations and their members. |
access |
Audit a principal's effective access — access check <user> <resource>. |
ai-config |
Manage AI-service provider configs (provider, model, keys). |
config |
Local CLI settings — server URL, defaults. |
api |
The raw-GraphQL escape hatch for anything without a dedicated command. |
version |
Print the CLI/build version. |
What the portal can do¶
The portal covers browsing, authoring, and administration through a UI:
- Browse and search — list and read nodes, run a global search across orgs/memories/nodes/agents/apps, and view a memory as a force-directed graph.
- Author — create and edit nodes and edges in a memory.
- Manage memories — create memories and configure their settings, integrations (GitHub sync, Microsoft Exchange), subscriptions, and usage.
- Members and sharing — manage org members and their roles, and share individual memories with grantees.
- Agents and apps — create and configure agents (including a guided chatbot wizard), drive chatbot control surfaces, test an agent against fixtures and personas with drift reports, and manage installed apps and their member access.
- AI service configs — configure provider keys and models per org.
- Command pages — point-and-click equivalents of operational commands (access checks, node/memory merges, listing runnable tasks). See Portal command pages.
- Marketplace — browse and subscribe to public shared memories.
- Account — your profile and API-key management for CLI access.
Which surface for what¶
| Task | MCP | CLI | Portal |
|---|---|---|---|
| Read & write nodes and edges | ✓ | ✓ | ✓ |
| Semantic search | ✓ | specs (spec find) / api |
✓ |
| Run a task node | ✓ (hadron_run_task) |
✓ (task run) |
list only |
| Bulk find/replace | ✓ (hadron_replace_text) |
✓ (replace) |
– |
| Author product specs | – | ✓ (spec) |
– |
| Check effective access | – | ✓ (access) |
✓ |
| Merge nodes / memories | – | pending | ✓ |
| Visual graph browsing | – | – | ✓ |
| Org / member / sharing admin | – | ✓ | ✓ |
| AI provider config | – | ✓ (ai-config) |
✓ |
| Raw GraphQL | – | ✓ (api) |
– |
The CLI is intended to be a superset of MCP; where a cell above is thin (e.g. general semantic search, or node/memory merges), that's a current gap, not a deliberate boundary — open gaps are tracked in hadron-cli#102.
See also¶
- MCP tools — the full
hadron_*catalog. - hadron CLI — command surface and stable contracts.
- Portal command pages — the ⌘K commands in detail.
- CLI vs. MCP for a coding agent — the token-cost trade-off between the two agent-facing surfaces.