Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions api-reference/endpoint/create.mdx

This file was deleted.

4 changes: 0 additions & 4 deletions api-reference/endpoint/delete.mdx

This file was deleted.

4 changes: 0 additions & 4 deletions api-reference/endpoint/get.mdx

This file was deleted.

4 changes: 0 additions & 4 deletions api-reference/endpoint/webhook.mdx

This file was deleted.

21 changes: 11 additions & 10 deletions docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,15 @@
"development"
]
},
{
"group": "MCP Server",
"icon": "plug",
"pages": [
"mcp-server/overview",
"mcp-server/skill-registry",
"mcp-server/deployment"
]
},
{
"group": "Customization",
"pages": [
Expand Down Expand Up @@ -55,15 +64,6 @@
"pages": [
"api-reference/introduction"
]
Comment thread
igor-holt marked this conversation as resolved.
},
{
"group": "Endpoint examples",
"pages": [
"api-reference/endpoint/get",
"api-reference/endpoint/create",
"api-reference/endpoint/delete",
"api-reference/endpoint/webhook"
]
}
]
}
Expand Down Expand Up @@ -118,5 +118,6 @@
"github": "https://github.com/mintlify",
"linkedin": "https://linkedin.com/company/mintlify"
}
}
},
"description": "Genesis Conductor — MCP server, skill registry, and Cloudflare edge topology."
Comment thread
igor-holt marked this conversation as resolved.
}
122 changes: 43 additions & 79 deletions index.mdx
Original file line number Diff line number Diff line change
@@ -1,97 +1,61 @@
---
title: "Introduction"
description: "Welcome to the new home for your documentation"
title: "Genesis Conductor"
description: "MCP server, skill registry, and edge topology"
sidebarTitle: "Overview"
---

## Setting up

Get your documentation site up and running in minutes.

<Card
title="Start here"
icon="rocket"
href="/quickstart"
horizontal
>
Follow our three step quickstart guide.
</Card>

## Make it yours

Design a docs site that looks great and empowers your users.
The Genesis Conductor MCP server is a TypeScript Model Context Protocol server that routes agent requests across four skill domains using a HAVIS Pareto classifier, and publishes those skills through a marketplace registry manifest in the `kovach-*` namespace.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Rewrite the new prose for the reader

The rewritten landing page and all three new MCP pages consistently describe the product in third person rather than addressing the reader, and sentences such as this one combine routing and publication into one long thought. Rewrite the new content in concise, active, second-person sentences to follow the repository's documentation conventions.

AGENTS.md reference: AGENTS.md:L24-L25

Useful? React with 👍 / 👎.


<Columns cols={2}>
<Card
title="Edit locally"
icon="pen-to-square"
href="/development"
>
Edit your docs locally and preview them in real time.
<Card title="Architecture" icon="sitemap" href="/mcp-server/overview">
Transport, tool surface, and the routing classifier.
</Card>
<Card
title="Customize your site"
icon="palette"
href="/essentials/settings"
>
Customize the design and colors of your site to match your brand.

<Card title="Skill registry" icon="box-archive" href="/mcp-server/skill-registry">
Manifest schema, entry shapes, and digest pinning.
</Card>
<Card
title="Set up navigation"
icon="map"
href="/essentials/navigation"
>
Organize your docs to help users find what they need and succeed with your product.

<Card title="Edge topology" icon="cloud" href="/mcp-server/deployment">
Cloudflare bindings backing the server.
</Card>
<Card
title="API documentation"
icon="terminal"
href="/api-reference/introduction"
>
Auto-generate API documentation from OpenAPI specifications.

<Card title="Development" icon="pen-to-square" href="/development">
Preview docs changes locally.
</Card>
</Columns>

## Create beautiful pages
## Current state

<Info>
This section tracks what is provisioned versus what is specified. Anything not listed as provisioned does not exist yet.
</Info>

Everything you need to create world-class documentation.
| Component | Status |
| --- | --- |
| MCP server (TypeScript, stateless streamable HTTP) | Built, compiled, smoke-tested |
| Skill registry KV store | Provisioned — `kovach-skill-registry` |
| Consent and trace database | Provisioned — D1 `xv-trace-consent` |
| Edge worker deployment | Not deployed |
| Registry manifest population | Empty |

## Skill domains

The classifier routes each inbound request to one of four domains:

<Columns cols={2}>
<Card
title="Write with MDX"
icon="pen-fancy"
href="/essentials/markdown"
>
Use MDX to style your docs pages.
</Card>
<Card
title="Code samples"
icon="code"
href="/essentials/code"
>
Add sample code to demonstrate how to use your product.
</Card>
<Card
title="Images"
icon="image"
href="/essentials/images"
>
Display images and other media.
<Card title="mcp-builder" icon="plug" horizontal>
Building and reviewing MCP servers.
</Card>
<Card
title="Reusable snippets"
icon="recycle"
href="/essentials/reusable-snippets"
>
Write once and reuse across your docs.

<Card title="skill-creator" icon="wand-magic-sparkles" horizontal>
Authoring, editing, and evaluating skills.
</Card>
</Columns>

## Need inspiration?
<Card title="web-artifacts-builder" icon="browser" horizontal>
Multi-component web artifacts.
</Card>

<Card
title="See complete examples"
icon="stars"
href="https://mintlify.com/customers"
>
Browse our showcase of exceptional documentation sites.
</Card>
<Card title="algorithmic-art" icon="shapes" horizontal>
Seeded generative and parametric art.
</Card>
</Columns>
70 changes: 70 additions & 0 deletions mcp-server/deployment.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
---
title: "Edge topology"
description: "Cloudflare bindings, provisioned state, and deployment gaps"
icon: "cloud"
---

The server targets Cloudflare Workers. Statelessness removes the need for a Durable Object, so the substrate is a Worker plus two storage bindings.

## Provisioned resources

| Binding | Service | Resource | Identifier |
| --- | --- | --- | --- |
| `SKILL_REGISTRY` | Workers KV | `kovach-skill-registry` | `d9628656cc224976add3dcbf81419c9c` |
| `TRACE_CONSENT` | D1 | `xv-trace-consent` | `ccb47e26-ffbd-41db-90a7-9a31af0e7534` |

<Warning>
R2 is not enabled on this account. Any pathway that assumes object storage — archived skill bundles, large artifacts — is blocked until R2 is enabled from the dashboard. Until then archive entries must resolve to an external origin.
</Warning>

## Not yet deployed

The Worker itself does not exist. The account holds one script, `summer-flower-b921`, which is an unmodified Workers AI starter template and is unrelated to this server. The registry KV namespace is provisioned but empty.

## Configuration

```jsonc wrangler.jsonc
{
"name": "gc-mcp-server",
"main": "src/index.ts",
"compatibility_date": "2026-07-30",
"compatibility_flags": ["nodejs_compat"],
"observability": {
"enabled": true,
"head_sampling_rate": 1
},
"kv_namespaces": [
{
"binding": "SKILL_REGISTRY",
"id": "d9628656cc224976add3dcbf81419c9c"
}
],
"d1_databases": [
{
"binding": "TRACE_CONSENT",
"database_name": "xv-trace-consent",
"database_id": "ccb47e26-ffbd-41db-90a7-9a31af0e7534"
}
]
}
```

Binding identifiers are not credentials. Secrets belong in `wrangler secret put`, never in configuration or source.

## Consent and trace schema

`xv-trace-consent` holds three tables.
Comment thread
igor-holt marked this conversation as resolved.

| Table | Purpose |
| --- | --- |
| `subjects` | Subject identity and external reference |
| `consent_grants` | Scope, legal basis, grant and revocation timestamps |
| `trace_events` | Actor, action, artifact digest, and the grant relied upon |

`trace_events.artifact_digest` is the join back to the registry: an event records which pinned artifact was in play, so a trace resolves to a specific version rather than a name.

A grant is active when `revoked_at IS NULL`; a partial index covers that predicate. Revocation is recorded by setting `revoked_at`, never by deleting the row — an audit trail that can be erased is not an audit trail.

<Note>
This schema was derived from the database name and the surrounding subject-sovereignty requirement, not recovered from a prior specification. Treat it as a starting shape and reconcile it against the canonical spec before writing production data.
</Note>
34 changes: 34 additions & 0 deletions mcp-server/overview.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
title: "Architecture"
description: "Transport, tool surface, and the HAVIS Pareto routing classifier"
icon: "sitemap"
---

The server is a TypeScript MCP implementation. It exposes seven tools over a stateless streamable HTTP transport and dispatches each call to one of four skill domains.

## Transport

Stateless streamable HTTP. No session affinity is held between requests, so any instance can serve any call and horizontal scaling requires no coordination layer. This is the property that makes the server deployable to an edge runtime without a Durable Object.

<Warning>
Statelessness is a hard constraint, not a default. Any tool that accumulates per-client state across calls breaks the deployment model and must externalize that state to KV or D1.
</Warning>

## Skill domains

| Domain | Scope |
| --- | --- |
| `mcp-builder` | Building and reviewing MCP servers |
| `skill-creator` | Authoring, editing, and evaluating skills |
| `web-artifacts-builder` | Multi-component web artifacts |
| `algorithmic-art` | Seeded generative and parametric art |

## Routing

Inbound requests are classified before dispatch. The classifier applies a Pareto gate: a candidate route is admissible only if it improves at least one axis — correctness, latency, cost, or risk — without degrading the others. Where several routes remain admissible, they are ranked and the top-ranked route is taken rather than presented as a choice.

When no route clears the gate, the classifier fails closed and returns the blocking condition instead of dispatching to a best-guess domain.

## Evaluation

The project ships an eval set alongside the scaffold. Routing changes are validated against it before promotion — the classifier is the component most likely to regress silently, since a wrong route still returns a plausible response.
64 changes: 64 additions & 0 deletions mcp-server/skill-registry.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
---
title: "Skill registry"
description: "Manifest schema, entry shapes, and digest pinning"
icon: "box-archive"
---

The registry is the marketplace manifest for the `kovach-*` namespace. It is stored in Workers KV and read by the router at dispatch time.

## Storage

| Binding | Namespace | Key layout |
| --- | --- | --- |
| `SKILL_REGISTRY` | `kovach-skill-registry` | `manifest:latest`, `skill:<name>` |

The full manifest lives under `manifest:latest`. Individual entries are denormalized to `skill:<name>` so a route lookup is a single read rather than a parse of the whole document.

## Entry shapes

A manifest entry takes one of two shapes. A resolver must handle both — assuming a single shape is the most common integration failure.

<CodeGroup>

```json Direct
{
"url": "skill://<name>/SKILL.md",
"digest": "sha256:<hex>",
"frontmatter": {
"name": "<name>",
"description": "<trigger description>"
}
}
```

```json Archive
{
"frontmatter": {
"name": "<name>",
"description": "<trigger description>"
},
"archives": [
{
"url": "skill://<name>.tar.gz",
"mimeType": "application/gzip",
"digest": "sha256:<hex>"
}
]
}
```

</CodeGroup>

The direct shape carries `url` and `digest` at the top level and points at a single `SKILL.md`. The archive shape omits both, and instead carries an `archives` array whose members hold their own `url`, `mimeType`, and `digest`. Optional keys — `license`, `metadata`, `compatibility` — may appear inside `frontmatter` on either shape.

## Digest pinning

Every retrievable object carries a `sha256:` digest. Resolution verifies the digest before the content is admitted; a mismatch is a hard failure, not a warning. This is what makes a registry entry a claim that resolves to a specific artifact rather than to a mutable name.

<Note>
A digest is only load-bearing if it is checked. A resolver that fetches by `url` and ignores `digest` provides no integrity guarantee over a plain URL fetch.
</Note>

## Description field

The `description` in `frontmatter` is not prose — it is the trigger surface the classifier matches against. It should enumerate the phrasings and conditions that should activate the skill, and state what the skill does not cover. Descriptions written as summaries rather than triggers route poorly.
Loading