mirror of
https://github.com/hanzo-apps/hanzo.ai.git
synced 2026-10-30 14:58:08 +00:00
Pages from /machines to /risk, the model pages, and the kits they are made of
(page-kit, ProductLanding, LayerPage, Stack, the models kit, band's Head) mark
authored copy where it is written and draw it in the reader's language. A server
page marks a literal phrase('…') or wraps it in <T>; a client page calls t. The
kits translate a string prop through useSay (components/marketing/say), so a
page passes phrase('…') and markup passes as written. An arrow that points
turns over right to left (data-i18n-mirror).
Rebased on main: the fold-based heroes (Fold, PageHero, MachinesHero, the
product and layer pages) keep main's structure and copy, with their label,
title and lede marked phrase. /platform is main's CloudLanding; the deleted
/platform/layers and the old referral components stay deleted.
Claude-Session: https://claude.ai/code/session_015XYKLjZtDTJEnMo4eK3AFH
98 lines
5.5 KiB
TypeScript
98 lines
5.5 KiB
TypeScript
'use client'
|
|
|
|
import type { ReactNode } from 'react'
|
|
import {
|
|
Plug,
|
|
Cloud,
|
|
Shield,
|
|
Terminal,
|
|
Code2,
|
|
Globe,
|
|
BrainCircuit,
|
|
Layers,
|
|
Sparkles,
|
|
Rocket,
|
|
} from 'lucide-react'
|
|
import { ProductLanding } from '@/components/product/ProductLanding'
|
|
import { ProductFooter } from '@/components/products/ProductFooter'
|
|
import { OSSRevenueBanner } from '@/components/oss/OSSRevenueBanner'
|
|
import { phrase } from '@hanzo/i18n'
|
|
|
|
const DOCS = 'https://docs.hanzo.ai/docs/mcp'
|
|
const GITHUB = 'https://github.com/hanzoai/mcp'
|
|
const CONSOLE = 'https://platform.hanzo.ai'
|
|
|
|
export default function MCPPage({ source }: { source: ReactNode }) {
|
|
return (
|
|
<>
|
|
<ProductLanding
|
|
badge={phrase("Hanzo MCP · Tool server")}
|
|
badgeIcon={Plug}
|
|
title={phrase("An MCP server with thirteen tools")}
|
|
lede={phrase("It gives a model a shell, a filesystem, a code index, git, HTTP, and your project's own context, over stdio or streamable HTTP. Point any MCP client at it and the tools show up.")}
|
|
ctas={[
|
|
{ label: phrase('Read the docs'), href: DOCS, icon: Rocket },
|
|
{ label: phrase('View on GitHub'), href: GITHUB },
|
|
]}
|
|
note={{ icon: Cloud, text: phrase('Open source, MIT. Same tool names and schemas in TypeScript, Python, and Rust — one API, three runtimes.') }}
|
|
availableThrough={['Claude Desktop', 'Claude Code', 'Cursor', phrase('Any MCP client')]}
|
|
what={{
|
|
eyebrow: phrase('What is Hanzo MCP'),
|
|
title: phrase('A catalog of 260 collapsed into 13'),
|
|
sub: phrase('A tool list is a prompt. Two hundred entries crowd out the work, and a model picks badly among near-duplicates. So each tool here is one noun with a set of verbs: you call fs with read, or exec with run, and the schema tells the model what the verb needs.'),
|
|
pillars: [
|
|
{
|
|
icon: Plug,
|
|
title: phrase('Seven nouns, always on'),
|
|
body: phrase('fs for bytes and paths. exec for processes. code for symbols. git for history. fetch for HTTP. workspace for the project you are in. ui for components. Six more — think, memory, plan, tasks, mode, and the Hanzo platform itself — are there when you want them.'),
|
|
},
|
|
{
|
|
icon: Shield,
|
|
title: phrase('Nothing runs that you did not enable'),
|
|
body: phrase('Community tools shell out to binaries someone else wrote, so they are off until you name them: hanzo-mcp serve --enable-community-cryptuon. Drop tools you do not want with --disable-tools. The default set is the thirteen and nothing else.'),
|
|
},
|
|
{
|
|
icon: Cloud,
|
|
title: phrase('The same tools everywhere'),
|
|
body: phrase('npm, PyPI, and a Rust crate carry the identical tool names and action schemas, so an agent written against one runtime moves to another without relearning its tools.'),
|
|
},
|
|
],
|
|
}}
|
|
code={{
|
|
head: { eyebrow: phrase('Get started'), title: phrase('One config block'), sub: phrase('Use the --package= form. Without it npx resolves "serve" as a separate package and runs an unrelated static-file server instead — on every platform.') },
|
|
lang: 'json',
|
|
source,
|
|
ctas: [
|
|
{ label: phrase('Read the docs'), href: DOCS, icon: Rocket },
|
|
{ label: phrase('View on GitHub'), href: GITHUB },
|
|
],
|
|
}}
|
|
features={{
|
|
eyebrow: phrase('The tools'),
|
|
title: phrase('What each one does'),
|
|
sub: phrase('Every tool takes an action and the arguments that action needs. These are the verbs.'),
|
|
items: [
|
|
{ icon: Layers, title: 'fs', body: phrase('read, write, stat, list, mkdir, rm, mv, apply_patch, search_text. Bytes and paths, including the patch verb an agent needs to edit a file it did not write whole.') },
|
|
{ icon: Terminal, title: 'exec', body: phrase('run, background, ps, kill, logs. A command that outlives the call goes to background and you read it back through logs, so a dev server does not hold the turn open.') },
|
|
{ icon: Code2, title: 'code', body: phrase('parse, search, transform, summarize. Search by symbol rather than by string, so renaming a function finds the callers and not the comments that mention it.') },
|
|
{ icon: Globe, title: 'git and fetch', body: phrase('git does status, diff, log, commit, branch, stash. fetch does get, post, put, delete, download — the ordinary HTTP verbs, plus the one that writes the body to a file.') },
|
|
{ icon: BrainCircuit, title: 'workspace, think, memory', body: phrase('workspace answers info, config, env, dependencies about the project you are actually in. think records structured reasoning. memory persists past the session.') },
|
|
{ icon: Sparkles, title: 'ui, plan, tasks, mode, hanzo', body: phrase('ui lists, searches, fetches and installs components. plan and tasks hold the work. mode switches presets. hanzo reaches IAM, KMS, PaaS, and Commerce.') },
|
|
],
|
|
}}
|
|
finalCta={{
|
|
icon: Plug,
|
|
title: phrase('Add it to your client'),
|
|
sub: phrase('One block in .mcp.json, or install the binary and run hanzo-mcp serve yourself.'),
|
|
buttons: [
|
|
{ label: 'GitHub', href: GITHUB },
|
|
{ label: 'Hanzo Platform', href: CONSOLE },
|
|
],
|
|
}}
|
|
/>
|
|
<OSSRevenueBanner />
|
|
<ProductFooter slug="mcp" name="MCP" />
|
|
</>
|
|
)
|
|
}
|