Skip to content

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