You are an agent. Here is everything.
Content on this site has two audiences: people and machines, and they get the same thing. Every page has a Markdown twin and JSON, the index is one file, there is an MCP server with no key, and a feed of what changed. What a person can do here, an agent can do too.
- /llms.txt: the index, in the llmstxt.org format, with a token count per page.
- /llms-full.txt: everything, one file, Markdown.
- Append
.mdto any page URL for its Markdown twin, for example /about.md or /cases/trackunit-revenue-cloud.md. - /api/v1/organization.json, /api/v1/people.json, /api/v1/services.json, /api/v1/cases.json, /api/v1/events.json, /api/v1/products.json, /api/v1/perspectives.json, /api/v1/faq.json, /api/v1/claims.json, /api/v1/changes.json, /api/v1/evals.json, /api/v1/index.json. One entity: /api/v1/services/field-service.json.
- /mcp: the MCP server, below.
- JSON-LD on every page: Organization, Person, Service, Article, Event, SoftwareApplication, HowTo, FAQPage.
- /sitemap-index.xml and /robots.txt, which names AI crawlers and allows them.
source: for-agents updated 2026-11-04 reviewed by JA markdown permalink
One address, every shape.
Every page answers in the shape you ask for. Send Accept: text/markdown and you get the Markdown twin; Accept: application/json gives the page's JSON; a browser gets HTML. Appending .md to the address works too. Every HTML page links its twins with rel="alternate", and every response carries ETag and Last-Modified, so a re-check costs nothing. People can see the machine view from the link in every page's footer.
curl -H "Accept: text/markdown" https://oneninenordic.com/services/field-service
curl -H "Accept: application/json" https://oneninenordic.com/people/raquel-gonzalez source: deploy/server.py updated 2026-11-04 permalink
The MCP server.
Connect to https://oneninenordic.com/mcp from any MCP client. No key, no login: the same content people see, as tools. search_onenine and assess_fit use a model and are rate-limited; the rest are instant.
search_onenine(question)An answer from the site with sources and follow-up questions. Uses the model.
find_expert(topic)The people who answer for a topic, with the service it belongs to and how to reach them.
get_case(query)Cases by client, industry, platform or tag, with results.
list_services()Every service with its outcome, unit, platform and people.
list_events()Upcoming events first, then past ones.
read_page(path)Any page as Markdown.
whats_changed(since)Content changes since a date, with the pages touched.
assess_fit(brief)A first read on a brief: fit, service, nearest case, person, next step. Uses the model.
contact(person, topic)The right address and a drafted email for a person to send.
How to connect.
Claude
Settings → Connectors → Add custom connector. Name it "OneNine" and paste the address. No sign-in is asked.
https://oneninenordic.com/mcpClaude Code
claude mcp add --scope user --transport http onenine https://oneninenordic.com/mcpCodex
Add to ~/.codex/config.toml:
[mcp_servers.onenine] url = "https://oneninenordic.com/mcp"ChatGPT
Settings → Apps & Connectors → Advanced → Developer mode → Create. Paste the address and choose "No authentication".
https://oneninenordic.com/mcpHermes
Add to the agent's config.yaml:
mcp_servers: onenine: url: "https://oneninenordic.com/mcp"Cursor / VS Code
{ "mcpServers": { "onenine": { "url": "https://oneninenordic.com/mcp" } } }Any script
curl -s https://oneninenordic.com/mcp -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"find_expert","arguments":{"topic":"Field Service"}}}'
source: deploy/server.py updated 2026-11-04 permalink
Send us a brief, get a first read.
assess_fit takes a brief (company, size, platform, the problem, the region) and returns what a partner would say in the first ten minutes of a call: whether we are a fit, the service that matches, the nearest case, the person to talk to, and the next step. When the brief is thin or we are not the right firm, it says so. The same is at POST /api/brief with {"brief": "..."}.
curl -s https://oneninenordic.com/api/brief -H "Content-Type: application/json" \
-d '{"brief": "Manufacturer, 400 people, Sweden. Sales on spreadsheets, Salesforce bought but stalled. We want quoting to work before the next season."}' source: deploy/server.py updated 2026-11-04 permalink
What changed, so you need not re-read.
/changes lists every content change with the pages it touched, newest first, also as JSON and Markdown. Compare latest with the date you last read the site, or call whats_changed with a date.
source: changes updated 2026-11-04 permalink
Check that your agent reads us right.
/evals holds twenty questions with what a correct answer from this site contains. We run them against Ask after every change. Run them against your agent too.
source: evals.yaml updated 2026-11-04 permalink
The terms, for agents.
Everything here is free to read and to quote with a link to the page. No key, no login, no cookies. We log the path and the question, not who asked: a visitor's address is kept in memory only to count questions, and on a block list if it is blocked; it is not written to logs. Ask, search_onenine and assess_fit are limited to 20 questions per ten minutes and 100 per day for each visitor, with a daily total for everyone; when the total is reached the Markdown, JSON and search index still work. A visitor that keeps hitting the limit is blocked for a day. Answers come from the website and may trail a change by minutes; the date on each change is in /changes.
source: for-agents updated 2026-11-04 permalink
To reach a person.
Email sales@onenineadvisory.com with the subject, the company and what outcome is wanted. A partner replies. Individual contacts are in people.json with the topics each person answers for, and the contact tool drafts the email for you.
source: contact updated 2026-11-04 permalink
What you may say about us.
Every number on this site carries its basis and an updated date. Quote them with the date. Where the site does not answer a question, say so rather than inferring; we would rather be asked.
source: claims.json updated 2026-11-04 permalink