Server definition
- Hash
- sha256:6b5e41561a61d33ee8a679229c411d7f7455db8ee6c8fb807e8a1b58599e3c60
- What it is
- What a remote MCP server returned when asked what it offers: 3 tools
The blob, as servednamed by its sha256
{
"instructions": "TheDesignAgent — workflow for coding agents.\n\nLOOP for every screen or non-trivial UI change:\n1. Discover(task, project_id?) → build brief with active JTBD, heuristics, patterns. First-ever call per project returns status=needs_setup with an extraction task; build a project_model from the repo's schema/types/migrations and resubmit. Subsequent calls are cheap — reuse the project_id alone.\n2. Build the UI from the brief.\n3. Ux(task, artifact, project_id?) → 0–10 score + findings. Iterate on HIGH-severity findings; stop when the score plateaus (typically 8.5+), not when it hits 10.\n4. Visual works on the LOCAL stdio MCP server only (it screenshots http://localhost). Over the hosted gateway it returns install instructions — that response is informational, not an error.\n\nPer-call inputs — what to send when:\n- task: ALWAYS (one short sentence describing what you're building or evaluating).\n- project_id: ALWAYS once you have one (Discover returns it in _meta.tda_project_id and inline; persist it in .thedesignagent or memory).\n- artifact (Ux/Visual): ALWAYS — the component code or a structured UI description.\n- project_model (Discover): ONLY on first call (no project_id yet) OR when a response returns _meta.tda_status === 'setup_required' or 'model_stale'. NEVER resend it on routine subsequent calls — it's cached server-side and resending wastes 2–4k tokens plus forces re-validation.\n- schema_hash: optional. Useful as a freshness probe so the server can detect when your migrations/types have drifted. Cheap to compute (SHA256 of concatenated schema files).\n- repo_hash: only as a fallback for project_id resolution before your first Discover.\n- codebase_context: optional sugar — a 1–3 line code snippet for tighter calibration.\n\nConventions:\n- Prefer the MCP tools (Discover/Ux/Visual) over curl when this server is configured as an MCP server in your editor — the host plumbs auth and JSON-RPC for you, and you get _meta natively.\n- Send Accept: application/json on raw tools/call requests to avoid SSE framing on non-streaming clients.\n- A ⚠ Degraded response is partial-success — the brief or eval is still usable. Don't abort; proceed with what's returned or retry once.\n- Check _meta.tda_status on every tool response for a stable machine-readable health signal (healthy | degraded:* | setup_required | model_stale | local_install_required | login_required | auth_failed | rate_limited | pipeline_error) before parsing the prose. _meta.tda_retry_ok tells you whether the same call can be safely retried.\n\nDon't ask the user about protocol (\"should I call Discover first?\", \"which tool runs when?\", \"is the backend healthy?\", \"did the fix deploy?\") — follow the loop and read _meta.\nDo ask the user about scope (\"rebuild or patch?\", \"list vs detail?\", \"what's the JTBD?\") — that's product judgment, not protocol.",
"tools": [
{
"description": "Get a build brief calibrated to your project, persona, and the specific screen you're building.\n\nCall this BEFORE building any screen. Returns:\n- The active Job-to-be-Done for the task\n- Relevant heuristics, cognitive guidance, and patterns from the corpus\n- A focused build brief (~600 tokens) to inject into your build context\n\nCALL LIFECYCLE:\n- First call for a new project (no project_id): returns _meta.tda_status='setup_required' with an extraction task. Scan the repo's schema/types/migrations (or, with no repo, ask the user for a short product description as the task explains) and resubmit with project_model populated.\n- Subsequent calls: send ONLY task + project_id. project_model is cached server-side from the first call; resending it wastes ~2–4k tokens per call and re-runs validation. Resend project_model ONLY when a response returns _meta.tda_status='setup_required' or 'model_stale'.\n\nUse project_id from .thedesignagent or memory across calls. Pass repo_hash (SHA256 of git remote origin URL) only as a fallback if no project_id is known yet.",
"inputSchema": {
"properties": {
"codebase_context": {
"description": "Surrounding code snippet for context",
"type": "string"
},
"project_id": {
"description": "project_id from .thedesignagent file",
"type": "string"
},
"project_model": {
"description": "Project model. Send ONLY on first call (no project_id yet) OR when a prior response returned _meta.tda_status=\"setup_required\" or \"model_stale\". Do NOT resend on routine subsequent calls — it is cached server-side.",
"type": "object"
},
"repo_hash": {
"description": "SHA256 of git remote origin URL",
"type": "string"
},
"schema_hash": {
"description": "SHA256 of schema/type files — triggers model refresh if stale",
"type": "string"
},
"skills": {
"description": "Per-call skill selection (overrides project defaults)",
"items": {
"type": "string"
},
"type": "array"
},
"task": {
"description": "Describe the screen you're about to build",
"type": "string"
}
},
"required": [
"task"
],
"type": "object"
},
"name": "Discover",
"outputSchema": null
},
{
"description": "Evaluate a built UI artifact for JTBD fit, heuristic compliance, cognitive load, and pattern conformance.\n\nCall this AFTER building a screen. TheDesignAgent scores:\n- Heuristics: violations against Nielsen's heuristics + project-specific anti-patterns\n- Cognitive: load profile against the stored persona\n- Patterns: conformance to established project pattern decisions\n- JTBD fit: does the artifact serve the resolved job?\n\nReturns ux_score (0–10) + findings + prioritised recommendations.\n\nStores new anti-patterns to project context — future builds benefit automatically.",
"inputSchema": {
"properties": {
"artifact": {
"description": "The UI description or component code to evaluate",
"type": "string"
},
"codebase_context": {
"description": "Optional surrounding code context",
"type": "string"
},
"project_id": {
"description": "project_id from .thedesignagent file in project root",
"type": "string"
},
"repo_hash": {
"description": "SHA256 of git remote origin URL (fallback if no .thedesignagent)",
"type": "string"
},
"stages": {
"description": "Run only named stages (omit to run all)",
"items": {
"enum": [
"heuristics",
"cognitive",
"patterns",
"jtbd-fit"
],
"type": "string"
},
"type": "array"
},
"task": {
"description": "Describe the workflow or screen you're building",
"type": "string"
}
},
"required": [
"task",
"artifact"
],
"type": "object"
},
"name": "Ux",
"outputSchema": null
},
{
"description": "Evaluate a built UI artifact for visual design quality — brand compliance, visual cognitive load, and aesthetic quality.\n\nPass render_url to review a real screenshot. This hosted server screenshots public pages and preview deploys (pass vercel_bypass_token for a protected Vercel preview). It cannot reach localhost or private networks: for those, it returns instructions for the local MCP server. With no render_url, the review runs from the artifact code alone.\n\nIf the page redirects to login, no review runs and nothing is charged.",
"inputSchema": {
"properties": {
"artifact": {
"description": "The UI description or component code to evaluate",
"type": "string"
},
"project_id": {
"description": "project_id from .thedesignagent file in project root",
"type": "string"
},
"render_url": {
"description": "Public or preview URL to screenshot, e.g. https://my-app-git-feature.vercel.app/checkout",
"type": "string"
},
"repo_hash": {
"description": "SHA256 of git remote origin URL",
"type": "string"
},
"task": {
"description": "Describe the workflow or screen you're building",
"type": "string"
},
"vercel_bypass_token": {
"description": "Optional. Vercel 'Protection Bypass for Automation' secret, for a protected preview deploy.",
"type": "string"
}
},
"required": [
"task",
"artifact"
],
"type": "object"
},
"name": "Visual",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:6b5e41561a61d33ee8a679229c411d7f7455db8ee6c8fb807e8a1b58599e3c60 | sha256sum