This page is for people who build agents and want them to work with ONETOO. Everything here is public and needs no sign-in or key. The tools read ONETOO’s published services, starting prices, case studies and agent skills. None of them sends an enquiry or books a call.
The data behind every tool and file is generated from the same source files as the website, on each deploy, so an agent sees the same prices and facts as a person reading the pages.
Connect to the MCP server
The ONETOO MCP server is at https://www.onetoo.com.au/mcp. It speaks the Model Context Protocol over Streamable HTTP: one JSON-RPC 2.0 message per POST, one JSON object back, no session and no stream. All five tools are read-only.
It supports protocol version 2026-07-28, where every request carries its version and client capabilities in _meta and in the MCP-Protocol-Version, Mcp-Method and Mcp-Name headers, and the versions 2025-03-26 to 2025-11-25 for clients that open with initialize. Most MCP clients handle this for you. In Claude Code, for example:
claude mcp add --transport http onetoo https://www.onetoo.com.au/mcpA call by hand, on protocol 2026-07-28:
curl -s https://www.onetoo.com.au/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-H 'MCP-Protocol-Version: 2026-07-28' \
-H 'Mcp-Method: tools/call' \
-H 'Mcp-Name: list_case_studies' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_case_studies","arguments":{},"_meta":{"io.modelcontextprotocol/protocolVersion":"2026-07-28","io.modelcontextprotocol/clientCapabilities":{}}}}'A client on an earlier version opens with initialize and then sends tools/list and tools/call without the _meta block:
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2025-11-25",
"capabilities": {},
"clientInfo": {
"name": "my-agent",
"version": "1.0.0"
}
}
}The Server Card is at https://www.onetoo.com.au/mcp/server-card and is listed in the AI catalogue. server/discover returns the same versions and identity.
The five tools
Each tool has an input schema, an output schema and readOnlyHint. A result carries structuredContent that fits the output schema, and the same JSON as a text block. The requests below leave out the _meta block shown above, and the responses shorten lists with …
list_services
The four practices, what each one covers, the services in each with a starting price, the engagement models and the lowest project price. No arguments.
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "list_services",
"arguments": {},
"_meta": { … }
}
}{
"jsonrpc": "2.0",
"id": 2,
"result": {
"resultType": "complete",
"content": [ … ],
"structuredContent": {
"practices": [
{
"name": "Brand",
"scope": [
"Brand strategy",
"Brand identity and identity systems",
…
],
"services": [
{
"id": "brand-naming",
"name": "Brand naming",
"price": "from AUD 5,000 + GST",
"url": "https://www.onetoo.com.au/brand-naming-agency"
},
…
]
},
…
],
"engagement_models": [
{
"name": "Project-based",
"description": "fixed scope, fixed fee. Most common for Brand, Strategy, and Design."
},
…
],
"min_project": "AUD 5,000 + GST"
},
"isError": false,
"_meta": { … }
}
}get_pricing
The starting price of every service, or of one by service_id (an id from list_services). Prices exclude GST; a from of null means the service is quoted on application.
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_pricing",
"arguments": {
"service_id": "packaging-design"
},
"_meta": { … }
}
}{
"jsonrpc": "2.0",
"id": 2,
"result": {
"resultType": "complete",
"content": [ … ],
"structuredContent": {
"currency": "AUD",
"gst": "excluded",
"min_project": "AUD 5,000 + GST",
"updated": "2026-11-04",
"services": [
{
"id": "packaging-design",
"name": "Packaging design",
"price": "quoted on application",
"url": "https://www.onetoo.com.au/packaging-design-melbourne",
"practice": "Design",
"unit": "project",
"from": null
}
]
},
"isError": false,
"_meta": { … }
}
}list_case_studies
The published case studies, each with client, sectors, a short summary and its URL. sector is optional and matches without regard to case.
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "list_case_studies",
"arguments": {
"sector": "Arts & Culture"
},
"_meta": { … }
}
}{
"jsonrpc": "2.0",
"id": 2,
"result": {
"resultType": "complete",
"content": [ … ],
"structuredContent": {
"count": 2,
"case_studies": [
{
"slug": "drift",
"title": "DRIFT Arts Festival Branding & Identity",
"client": "DRIFT",
"sector": [
"Arts & Culture"
],
"summary": "Reigniting creativity on the Mornington Peninsula. We delivered a dynamic brand for the inaugural DRIFT festival that challenged the status quo and reinvigorated the community’s collaborative creativity.",
"url": "https://www.onetoo.com.au/work/drift"
},
{
"slug": "gather-round",
"title": "Gather Round",
"client": "Gather Round",
"sector": [
"Arts & Culture"
],
"summary": "A playful and thoughtful brand that brings wonder back to life's most wonder-filled moments.",
"url": "https://www.onetoo.com.au/work/gather-round"
}
]
},
"isError": false,
"_meta": { … }
}
}get_case_study
One case study by slug, with the whole page as Markdown.
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_case_study",
"arguments": {
"slug": "bermuda-coffee-studio"
},
"_meta": { … }
}
}{
"jsonrpc": "2.0",
"id": 2,
"result": {
"resultType": "complete",
"content": [ … ],
"structuredContent": {
"slug": "bermuda-coffee-studio",
"title": "Bermuda Coffee Studio",
"client": "Bermuda Coffee Studio",
"sector": [
"Coffee",
"Food & Drink"
],
"summary": "Specialty coffee has a big problem. When everyone is specialty, no one is. We stepped back and reimagined what you get when you mix coffee and people.",
"url": "https://www.onetoo.com.au/work/bermuda-coffee-studio",
"markdown": "---\ntitle: \"Bermuda Coffee Studio – ONETOO\"\n…"
},
"isError": false,
"_meta": { … }
}
}get_skill
One of the seven agent skills by name, as Markdown. The names are listed in the tool’s input schema and in the skills index.
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_skill",
"arguments": {
"name": "contact-onetoo"
},
"_meta": { … }
}
}{
"jsonrpc": "2.0",
"id": 2,
"result": {
"resultType": "complete",
"content": [ … ],
"structuredContent": {
"name": "contact-onetoo",
"description": "Use when the user wants to contact ONETOO … Explains which channel fits which context.",
"url": "https://www.onetoo.com.au/.well-known/agent-skills/contact.md",
"digest": "sha256:…",
"markdown": "---\nname: contact-onetoo\n…"
},
"isError": false,
"_meta": { … }
}
}Errors
A tool that cannot do what was asked, such as an unknown service id, returns a result with isError: true and a sentence saying what would work:
{
"jsonrpc": "2.0",
"id": 2,
"result": {
"resultType": "complete",
"content": [
{
"type": "text",
"text": "No service with id \"logo\". Ids: brand-strategy, brand-strategy-advisory, … aeo."
}
],
"isError": true,
"_meta": { … }
}
}Protocol errors are JSON-RPC errors: -32700 for a body that is not JSON, -32600 for an invalid request, -32601 for an unknown method, -32602 for an unknown tool or missing _meta, -32020 when a header does not match the body and -32022 for an unsupported protocol version, with the supported versions in data.
Tools in the page (WebMCP)
Every page on this site also registers five tools with the browser, for agents that work in a tab. They act only through the person using the page:
open_contact_formscrolls to the contact form and focuses it.fill_contact_formfills in the form. It does not submit it; the person reviews and sends it.book_discovery_callopens the 30-minute call booking page in a new tab, where the person picks a time.compose_email_to_onetooopens a draft email in the person’s own mail app. Nothing is sent automatically.list_servicesreturns the practices, engagement models and the link to the pricing skill.
Every page as Markdown
Send Accept: text/markdown with any page request, or add .md to the page’s URL (https://www.onetoo.com.au/approach.md; the home page is /index.md). The Markdown is built with the site, starts with a short front matter and the page’s heading, and carries a link to the HTML page it stands for.
curl -s -H 'Accept: text/markdown' https://www.onetoo.com.au/approachllms.txt and the agent skills
llms.txt lists every page on the site with a one-line description and the key facts about ONETOO. The agent skills index lists seven skills (contact, services, pricing, fit, process, content library and industries), each a Markdown file with a SHA-256 digest in the index. get_skill returns the same files.
Discovery files
- /.well-known/ai-catalog.json: the catalogue of the files on this page, with the MCP Server Card.
- /.well-known/api-catalog and /docs/api: the API catalogue and the API notes.
- /sitemap.xml: every indexable page.
Every page response also carries Link headers to these files.
Getting in touch
No tool sends an enquiry yet. To start a project, the person uses the contact form, books a call or emails hello@onetoo.com.au; the contact skill lists every channel. Questions about the server or the files on this page go to the same address.