Quickstart — Your First Capability¶
This quickstart takes you from zero to a running capability in about five minutes. No code, no scaffolding — just one YAML file and the Ikanos engine.
Prerequisite. Ikanos installed via Docker or native binary. See Installation. To author the file with inline validation you can also install Crafter (the VS Code extension); to lint before running, install Polychro — both are optional for this page.
This is the single-capability path. Once you're comfortable, jump to First fleet to run several capabilities together under one fleet — the canonical Naftiko Fleet pattern with Polychro linting and Skipper orchestration.
1. Write the capability¶
Create a file called hello.naftiko.yml (in VS Code with the
Crafter extension, you'll get inline schema validation as
you type):
ikanos: "1.0.0-alpha3"
info:
display: Hello Shipyard
description: A minimal MCP capability that greets you back.
capability:
exposes:
- type: mcp
port: 3001
namespace: hello-tools
description: "Demo MCP server for Shipyard quickstart"
tools: # alpha3 — keyed map by tool name
greet:
description: "Greet a user by name"
inputParameters: # alpha3 — keyed map
who:
type: string
required: true
description: "Person to greet"
outputParameters:
- name: message
type: string
value: "Hello, {{who}}! Welcome to the Shipyard."
That's a complete capability. No consumes block needed — value: with
a Mustache template returns static + dynamic data directly.
2. (Optional) Lint with Polychro¶
If you installed Polychro alongside Ikanos:
Polychro applies JSON Schema validation and the bundled governance ruleset. Fix any diagnostics before continuing. This becomes essential once you grow the file count — see First fleet.
3. Run it with Ikanos¶
You should see Ikanos start an MCP server on port 3001.
4. Try it with MCP Inspector¶
The fastest MCP client is MCP Inspector:
Connect to http://localhost:3001, browse the greet tool, and call it with who: "World":
5. What happened¶
| You wrote | What Ikanos did |
|---|---|
type: mcp |
Started an MCP server on the streamable HTTP transport |
port: 3001 |
Bound the server to TCP port 3001 |
tools: |
Registered each tool with its MCP schema |
value: "...{{who}}..." |
Rendered the Mustache template against the tool's input parameter |
The full power of Naftiko comes when you add consumes (real APIs),
with (parameter mapping), steps (orchestration), and multiple
exposes adapters (REST, Skill, Control) — all from the same YAML file.
Where this sits in the Fleet¶
You've just exercised one of the six Fleet components directly (Ikanos). The others compose around the same YAML file:
| Component | What you can do with it now (v1.0 Alpha 3) |
|---|---|
| Ikanos | Ran the capability as a multi-protocol server (MCP today, REST/Skill from the same file) |
| Polychro | Validate the spec before running it |
| Crafter | Author specs like this one in VS Code, with schema + ruleset diagnostics inline |
| Warden | Govern capabilities from your Backstage developer portal — attach policy, see decisions |
| Skipper | Run this capability on Kubernetes as a Capability CRD instead of ikanos run |
| Shipyard | The docs hub you're reading right now |
Next steps¶
- First fleet — run several capabilities side by side with Polychro linting and (optional) Skipper orchestration
- Tutorial — Track 1: Context Engineering — go from mock to live API in 7 steps
- Validate every spec — set up Polychro linting
- Browse the spec — see the full capability schema