About OCOLO Project Requests
OCOLO Project Requests lets AI agents submit a person's data center colocation requirements to OCOLO, a broker serving a network of providers. Email confirmation is required before a request becomes active, and OCOLO returns options to the contact within 2–3 business days.
Key features
- 01Submit colocation requirements
- 02Email-based contact confirmation
- 03Check request status with a token
- 04Receive broker guidance and next steps
Use cases
- 01Send a company's location, power, and cabinet needs to OCOLO
- 02Check whether a submitted request has been confirmed
- 03Review broker guidance before submitting a requirement
MCP support
Provides a remote Streamable HTTP MCP server with tools for broker guidance, project-request submission, and status checks. It requires no authentication.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://www.ocolo.io/api/v1/mcp/claude mcp add --transport http io-ocolo-www-project-requests https://www.ocolo.io/api/v1/mcp/{"mcpServers":{"io-ocolo-www-project-requests":{"type":"http","url":"https://www.ocolo.io/api/v1/mcp/"}}}Open in Cursor{"servers":{"io-ocolo-www-project-requests":{"type":"http","url":"https://www.ocolo.io/api/v1/mcp/"}}}Open in VS Code{"mcpServers":{"io-ocolo-www-project-requests":{"type":"http","url":"https://www.ocolo.io/api/v1/mcp/"}}}{"mcpServers":{"io-ocolo-www-project-requests":{"serverUrl":"https://www.ocolo.io/api/v1/mcp/"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
3| Parameter | Type | Required | Description |
|---|---|---|---|
| agent | object | Yes | |
| agent.name | string | No | Name of the submitting agent or product. |
| agent.model | string | No | Underlying model id. |
| agent.version | string | No | Agent version. |
| agent.framework | string | No | Agent framework, e.g. claude-agent-sdk, langgraph, openai-agents. |
| agent.on_behalf_of_confirmed | boolean | Yes | Must be true: the human user asked for this request to be sent. |
| notes | string | No | Notes for OCOLO staff (not shown to providers). |
| contact | object | Yes | |
| contact.name | string | No | Full name. |
| contact.role | string | No | Job title. |
| contact.email | string | Yes | Work email. Receives the confirmation link and OCOLO's reply. Required. |
| contact.phone | string | No | Phone with country code. |
| contact.company | string | No | Company name. |
| contact.timezone | string | No | IANA timezone, e.g. America/Chicago. |
| contact.call_availability | string | No | When OCOLO may call. |
| cabinets | integer | No | Number of cabinets (racks). |
| location | string | Yes | City, metro, region or country where the capacity is needed. Required. |
| power_kw | number | No | Total critical IT power required, in kW. Send this or power_mw. |
| power_mw | number | No | Total critical IT power required, in MW. Normalized to kW. |
| compliance | any | No | Compliance / certification requirements. |
| callback_url | string | No | Reserved for status webhooks (https only). Stored but not called in v1. |
| bandwidth_mbps | number | No | Connectivity bandwidth in Mbps. |
| bandwidth_text | string | No | Free-text connectivity requirement if bandwidth_mbps does not fit. |
| idempotency_key | string | No | Client-chosen key. Resubmitting with the same key and contact email returns the original request instead of creating a duplicate. |
| customer_profile | enum | No | Who the buyer is.Enterprise | NeoCloud | Hyperscaler | Infrastructure |
| excluded_vendors | any | No | Providers the user will not consider. |
| preferred_vendors | any | No | Providers the user prefers. |
| requirements_text | string | No | Everything else that matters: cooling, redundancy, certifications, term length, growth plan, budget notes. |
| additional_services | any | No | Remote hands, managed services, migration help, etc. |
| power_per_cabinet_kw | number | No | Target power density per cabinet, in kW. |
| expected_contract_date | string | No | Expected contract signature date, ISO YYYY-MM-DD. |
| requested_delivery_date | string | No | Target ready-for-service date, ISO YYYY-MM-DD. |
Details
From the project READMEOCOLO Project Request API (for AI agents)
Submit a data center colocation requirement to OCOLO on behalf of a human, from any AI agent. OCOLO is a colocation broker with a network of 270+ data center providers; one submission puts the requirement in front of all of them, and OCOLO returns the best options to the contact within 2-3 business days. No API key, no account: the contact confirms by email.
- Human guide: https://www.ocolo.io/for-agents/
- OpenAPI 3.1: https://www.ocolo.io/api/v1/openapi.json (copy in this repo:
openapi.json, refreshed with./sync-spec.sh; the live document is canonical) - MCP server (Streamable HTTP):
https://www.ocolo.io/api/v1/mcp/ - Discovery: https://www.ocolo.io/.well-known/ocolo-agent.json, https://www.ocolo.io/llms.txt
Quick start (REST)
curl -X POST https://www.ocolo.io/api/v1/project-requests/ \
-H 'Content-Type: application/json' \
-d @examples/request.json
Response (201): request_id, status: pending_confirmation, status_url, a status_token
to keep, machine-readable next_steps, and a guidance object. Poll status with
Authorization: Bearer <status_token>.
import requests
r = requests.post("https://www.ocolo.io/api/v1/project-requests/", json={
"location": "Northern Virginia, USA",
"power_mw": 2,
"cabinets": 60,
"requested_delivery_date": "2027-03-01",
"requirements_text": "Liquid cooling preferred, N+1 or better, SOC 2 required.",
"contact": {"name": "Jane Doe", "email": "[email protected]", "company": "Acme"},
"agent": {"name": "my-agent", "on_behalf_of_confirmed": True},
"idempotency_key": "acme-nova-2027-q1",
}).json()
print(r["status"], r["status_url"])
for step in r["next_steps"]:
print(step["action"], step.get("detail", ""))
MCP
Add https://www.ocolo.io/api/v1/mcp/ as a remote MCP server (no auth). Tools:
| Tool | Purpose |
|---|---|
get_broker_guidance | How OCOLO works and the etiquette below. Read first. |
submit_project_request | Submit the requirement (same fields as the REST body). |
get_project_request_status | Poll with request_id + status_token. |
server.json in this repo is the MCP Registry manifest.
What happens after you submit
- The contact receives a confirmation email. Nothing is active until they confirm (they can
also edit the request on OCOLO's form first; the
request_idstays the same and the status body then carriesedited_by_contact: trueand the final values undercurrent). - OCOLO takes the project to its provider network, finds suitable sites and coordinates the outreach.
- OCOLO replies to the contact within 2-3 business days.
Broker etiquette (please follow)
- Do not sign an exclusive broker agreement; keep the user's options open.
- Engage no more than 1-3 brokers in total for a single project. Providers see every inbound approach; ten people asking about the same requirement reads as rumor, not a strategic partnership.
- While OCOLO is coordinating a request, do not contact providers directly or submit the same requirement to other brokers or marketplaces.
Every API response repeats this in its guidance field.
Limits
Rate limited per IP and per contact email; honour Retry-After and use idempotency_key
for safe retries. Bodies over 64 KB are rejected. Questions: [email protected].
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.