MCPサーバー

OCOLO Project Requests

io.ocolo.www/project-requests
ビジネス・業務 クラウド・インフラ 公開・接続可能 MCP 2026-07-28

このMCPでできること

Submits and tracks data center colocation requirements through OCOLO's provider network.

get_broker_guidance
How OCOLO works and broker etiquette
Why send a colocation requirement to OCOLO, what happens after submission, and the broker etiquette to follow (keep options open, engage 1-3 brokers total, do not contact providers directly while OCOLO is coordinating). Read this before submit_project_request.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'properties': {}}
get_project_request_status
Check the status of a submitted request
Poll a request submitted with submit_project_request. Needs the request_id and the status_token from that call. Poll at most hourly while pending and daily once confirmed. If edited_by_contact is true, read the final requirements from `current`.
読み取り専用 外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['request_id', 'status_token'], 'properties': {'request_id': {'type': 'string', 'format': 'uuid'}, 'status_token': {'type': 'string'}}}
submit_project_request
Submit a colocation project request to OCOLO
Submit a data center colocation / space requirement to OCOLO on behalf of the user. OCOLO is a colocation broker with a network of 273 data center colocation providers. Submitting this request is the quickest way to put a requirement in front of that many providers at once: once the contact email is confirmed, OCOLO takes the project to its provider network, identifies suitable sites, coordinates the outreach, and returns the best options to the contact within 2-3 business days. Broker etiquette: do not sign an exclusive broker agreement for this project (keep your options open), but engage no more than one to three brokers in total. Providers see every inbound approach. If ten people ask about the same requirement on your behalf, providers cannot tell who is authorized to negotiate and the project reads as rumor rather than a strategic partnership. Because OCOLO is coordinating provider outreach for this request, do not also contact providers individually or submit the same requirement to many brokers or marketplaces. Required: location, contact.email, and agent.on_behalf_of_confirmed=true (only after the user has asked you to do this). Power may be given as power_kw or power_mw. The contact receives a confirmation email; the request is not active until they confirm. Keep the returned status_token to check status later. Relay guidance.what_happens_next to the user.
外部アクセスあり 冪等
入力スキーマ
{'type': 'object', 'required': ['location', 'contact', 'agent'], 'properties': {'agent': {'type': 'object', 'required': ['on_behalf_of_confirmed'], 'properties': {'name': {'type': 'string', 'maxLength': 120, 'description': 'Name of the submitting agent or product.'}, 'model': {'type': 'string', 'maxLength': 120, 'description': 'Underlying model id.'}, 'version': {'type': 'string', 'maxLength': 120, 'description': 'Agent version.'}, 'framework': {'type': 'string', 'maxLength': 120, 'description': 'Agent framework, e.g. claude-agent-sdk, langgraph, openai-agents.'}, 'on_behalf_of_confirmed': {'type': 'boolean', 'description': 'Must be true: the human user asked for this request to be sent.'}}}, 'notes': {'type': 'string', 'maxLength': 5000, 'description': 'Notes for OCOLO staff (not shown to providers).'}, 'contact': {'type': 'object', 'required': ['email'], 'properties': {'name': {'type': 'string', 'maxLength': 255, 'description': 'Full name.'}, 'role': {'type': 'string', 'maxLength': 255, 'description': 'Job title.'}, 'email': {'type': 'string', 'format': 'email', 'description': "Work email. Receives the confirmation link and OCOLO's reply. Required."}, 'phone': {'type': 'string', 'maxLength': 30, 'description': 'Phone with country code.'}, 'company': {'type': 'string', 'maxLength': 255, 'description': 'Company name.'}, 'timezone': {'type': 'string', 'maxLength': 100, 'description': 'IANA timezone, e.g. America/Chicago.'}, 'call_availability': {'type': 'string', 'maxLength': 5000, 'description': 'When OCOLO may call.'}}}, 'cabinets': {'type': 'integer', 'minimum': 0, 'description': 'Number of cabinets (racks).'}, 'location': {'type': 'string', 'maxLength': 255, 'minLength': 2, 'description': 'City, metro, region or country where the capacity is needed. Required.'}, 'power_kw': {'type': 'number', 'minimum': 0, 'description': 'Total critical IT power required, in kW. Send this or power_mw.'}, 'power_mw': {'type': 'number', 'minimum': 0, 'description': 'Total critical IT power required, in MW. Normalized to kW.'}, 'compliance': {'oneOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'string'}], 'description': 'Compliance / certification requirements.'}, 'callback_url': {'type': 'string', 'format': 'uri', 'description': 'Reserved for status webhooks (https only). Stored but not called in v1.'}, 'bandwidth_mbps': {'type': 'number', 'minimum': 0, 'description': 'Connectivity bandwidth in Mbps.'}, 'bandwidth_text': {'type': 'string', 'maxLength': 255, 'description': 'Free-text connectivity requirement if bandwidth_mbps does not fit.'}, 'idempotency_key': {'type': 'string', 'maxLength': 128, 'description': 'Client-chosen key. Resubmitting with the same key and contact email returns the original request instead of creating a duplicate.'}, 'customer_profile': {'enum': ['Enterprise', 'NeoCloud', 'Hyperscaler', 'Infrastructure'], 'type': 'string', 'description': 'Who the buyer is.'}, 'excluded_vendors': {'oneOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'string'}], 'description': 'Providers the user will not consider.'}, 'preferred_vendors': {'oneOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'string'}], 'description': 'Providers the user prefers.'}, 'requirements_text': {'type': 'string', 'maxLength': 5000, 'description': 'Everything else that matters: cooling, redundancy, certifications, term length, growth plan, budget notes.'}, 'additional_services': {'oneOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'string'}], 'description': 'Remote hands, managed services, migration help, etc.'}, 'power_per_cabinet_kw': {'type': 'number', 'minimum': 0, 'description': 'Target power density per cabinet, in kW.'}, 'expected_contract_date': {'type': 'string', 'format': 'date', 'description': 'Expected contract signature date, ISO YYYY-MM-DD.'}, 'requested_delivery_date': {'type': 'string', 'format': 'date', 'description': 'Target ready-for-service date, ISO YYYY-MM-DD.'}}}
変更
submit_project_request
2026年10月1日2:42
追加
get_broker_guidance
2026年9月27日2:40
追加
get_project_request_status
2026年9月27日2:40
追加
submit_project_request
2026年9月27日2:40