This site talks to agents.
Everything an assistant needs to answer questions about OKAMI, compare products and start a contact, without scraping HTML. Reading surfaces already published and WebMCP tools to act on the page.
- Languages3PT · EN · DE
- Public routes30× 3 languages
- WebMCP tools5read and act
- Feeds6/api/*.json
What is already published
Compact site map for search engines and AI assistants: every public route with title and description, always in sync with the build.
text/plain · publishedAll routes in PT, EN and DE with hreflang and lastmod.
application/xml · publishedOrganization, Service, SoftwareApplication, Article, BreadcrumbList. Embedded in the pre-rendered HTML of every route.
application/ld+json · publishedGPTBot, OAI-SearchBot, ClaudeBot, Claude-User, PerplexityBot and Google-Extended explicitly allowed.
text/plain · publishedJSON feeds: index, openapi, products, services, insights, tools.
application/json · publishedEvery HTML route has a Markdown twin at <route>index.md. An agent sending Accept: text/markdown gets the Markdown directly, no HTML scraping needed.
text/markdown · publishedFull version of llms.txt, with every public route's content concatenated for clients that prefer to load everything at once.
text/plain · publishedInsights RSS feed, one per language: /insights/feed.xml (EN), /pt/insights/feed.xml and /de/insights/feed.xml.
application/rss+xml · publishedPage actions exposed via navigator.modelContext for browsers and extensions with agent support. Listed below.
Web Model Context · activeThe same contact form is also exposed declaratively in the HTML, no JavaScript required. Sending still requires human confirmation.
Declarative HTML (toolname/tooldescription) · formThis whole surface (JSON, Markdown, feeds, llms*.txt) accepts CORS/OPTIONS from any origin and uses a 1-hour cache with background revalidation.
Access-Control-Allow-Origin: * · publishedFive actions, one per intent
Reading is free. Any action with side effects (contact, download) asks for human confirmation in the browser before it runs.
okami_list_products
readLists Okami products with license, platform, link and repository.
okami_find_service
readFinds the OKAMI consulting practice for a problem described in free text.
okami_search_insights
readSearches OKAMI technical articles by topic and returns title, summary, date and sources.
okami_request_contact
actionOpens a contact request with OKAMI. Fills the form and asks for human confirmation before sending.
okami_get_baseline
readReturns the SecOps Baseline for CI/CD links (page with PDF and repository with script).
Tools mirror what a human can already do on the page. Nothing beyond that.
Declared in the HTML, no extra server
The existing forms get the declarative WebMCP attributes; search and listing are registered via script. An agent in the browser discovers the tools when it opens the page, calls with JSON and receives JSON. Nothing is sent without the user seeing it.
The agent opens okamiops.com and reads /llms.txt or the JSON-LD.
It discovers the tools registered in navigator.modelContext.
It calls okami_find_service with the user's problem and gets the right page.
If the user wants, okami_request_contact opens the request, with visible confirmation.
navigator.modelContext.registerTool({
name: "okami_find_service",
description: "Finds the consulting practice
for a problem described in text.",
inputSchema: { type: "object",
properties: { problem: { type: "string" } },
required: ["problem"] },
execute: async ({ problem }) => matchService(problem)
});<form
toolname="okami_contact_form"
tooldescription="Fills the OKAMI contact
form. Sending needs human confirmation.">
<input name="email" type="email" required>
<input name="name">
<input name="company">
<textarea name="message"></textarea>
<button>Send message</button>
</form>Your site can also talk to agents
More and more people ask their assistant before opening a site. We prepared your site for it, from llms.txt to tools, and this one is the proof.