How it works · publish in ten minutes
Publish your profile in ten minutes.
Three steps. Pick a way to author the file (with an AI agent or by hand), pick a way to publish it (file, embed, or fallback), then submit your domain to the open directory. The full per-host recipes, schemas, and examples live on GitHub; this page is the human walkthrough.
Step 1 - Author the file
Three ways. The fastest is to let an AI agent walk you through it.
With an AI agent
Drop one of the published skills into your AI assistant. It asks for the fields in spec order, validates as it goes, and emits a publish-ready JSON file.
- Generic agent prompt (any LLM)
- Claude Skill
- Codex Skill
By hand, from an example
Copy a fully-populated example from the GitHub repo, edit
the fields to match your company, validate locally with
agentic-first-validate.
Validate before publishing
Either way, run the validator before you ship. Catches missing fields, banded-value typos, and prompt-injection patterns.
pip install agentic-first-schema
agentic-first-validate ./profile.json
Step 2 - Publish the file
Three modes, in order of preference. Use the highest one your host supports. The directory tries them in this order on submission and uses the first one it finds.
| Mode | Where the profile lives | Use it if |
|---|---|---|
| 1. File (canonical) | https://yourdomain/.well-known/agentic-profile.json |
Your host lets you upload an arbitrary file to a path beginning with a dot, OR you control a build pipeline that does. |
| 2. Embed (data island) | <script type="application/agentic-profile+json"> on your home page |
Your host lets you inject HTML into <head>, but won't let you upload a file at /.well-known/. |
| 3. Inline XML (last resort) | Hidden <div hidden id="agentic-profile" data-format="xml"> block |
Your host strips <script> tags, AND you can still inject any raw HTML. |
The full per-host catalogue (WordPress, Squarespace, Wix, Webflow, Shopify, Ghost, Notion, Carrd, plus every static-site framework and every major file host) is on GitHub:
Quick example - the file at /.well-known/agentic-profile.json
{
"schema_version": "0.1.0",
"updated_at": "2026-04-19T00:00:00Z",
"profile_kind": "company",
"tier": "public",
"company": {
"name": "Acme Robotics",
"website": "https://acme-robotics.example",
"jurisdiction": "GB",
"registry": {
"type": "companies-house",
"id": "12345678",
"url": "https://find-and-update.company-information.service.gov.uk/company/12345678"
},
"industry": ["robotics", "b2b-saas"],
"tagline": "Vision-language models for warehouse pick-and-place."
},
"stage": { "current": "Seed" },
"funding": { "total_raised_band": "1m-5m", "currency": "GBP" },
"team": { "headcount_band": "11-50" },
"metrics": { "revenue_band": "100k-500k", "growth_band": "100-300%" },
"contact": {
"preferred_channel": "form",
"form_url": "https://acme-robotics.example/contact"
}
}
Public-tier metrics use bands, not precise numbers. That's deliberate - it keeps the public surface clear of UK FCA financial-promotion rules while still letting an agent answer "is this company at my stage?". Precise figures live on the protected tier (your own MCP, your own auth).
Step 3 - Submit to the directory
Once the file is live and validates, point the open directory at it.
The submit_website tool runs the full validator against
your domain and either indexes you or returns a precise field-level
error report.
curl -sS -X POST https://agentic-first.co/directory/mcp \
-H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"submit_website",
"arguments":{"domain":"yourdomain.example"}}}'
Or call submit_website from any MCP-aware client
(Claude Desktop, Cursor, ChatGPT desktop) pointed at
https://agentic-first.co/directory/mcp.
Going deeper
- SPEC.md - the full written standard
- schemas/ - the four canonical JSON Schemas at v0.1.0
- docs/embed-recipes.md - copy-paste recipes for every host
- docs/security-policy.md - threat model, publisher rules, prompt-injection guards
- docs/landscape.md - how this relates to LEI / XBRL / VCs / Schema.org / mcp.json