OpenClaw AICFO Agent
Overview
Use this skill to connect OpenClaw to the AICFO platform without touching browser-only routes or tenant-local daemons.
Primary surfaces:
GET /api/agent/sessionGET /api/agent/companiesGET /api/agent/dashboardGET|POST /api/agent/connectorsGET /api/company/queryGET /api/company/searchGET /api/company/entityGET /api/company/fileGET /api/documents
Canonical references:
docs/contracts/openclaw-quickstart.mddocs/contracts/external-agent-access.md
Quick Start
- Introspect the key:
node bin/openclaw-aicfo-adapter.mjs session
- List available tools:
node bin/openclaw-aicfo-adapter.mjs tools
- Resolve company scope:
- use
implicitCompanyIdif present - otherwise choose a company from
companyAccess.companies
- use
- Run business operations through the adapter:
- dashboard
- query/search
- get-entity
- get-file
- connector
Workflow
1. Bootstrap
Always start with session.
Read:
- granted scopes
implicitCompanyIdrequiresCompanySelection- accessible companies
If there is no implicit company, require OpenClaw to pass company_id on every operation.
2. Prefer the published adapter
Use bin/openclaw-aicfo-adapter.mjs as the primary OpenClaw bridge.
It is intentionally REST-first so the published skill does not depend on local npm packages or preinstalled MCP SDK modules.
Do not use /api/company/mcp as the primary integration path for OpenClaw.
3. Use REST only when it is simpler
REST is acceptable for:
/api/agent/session/api/agent/connectorsif a client wants plain JSON instead of MCP
Do not use browser onboarding routes under /api/connections/*.
Common Operations
Load references/operations.md when you need concrete command envelopes.
Typical adapter calls:
sessiontoolscompaniesdashboardquerysearchget-entityget-fileconnectorsconnectordocuments
The published skill package is self-contained and should run on a machine that only has Node and the installed skill files.
Guardrails
- Treat
/api/agent/connectorsas the canonical machine connector surface. - Treat
/api/connectors/hubas legacy Slack/Jira compatibility only. - Prefer
company_idfrom session introspection instead of guessing. - If a key lacks
documents.write, do not trigger Google Drive imports or document deletes. - If a key lacks a connector-use scope, do not attempt that provider action.
- Do not assume browser-managed integrations can be onboarded by OpenClaw.
Validation
Before relying on the integration:
- run
node bin/openclaw-aicfo-adapter.mjs session - run
node bin/openclaw-aicfo-adapter.mjs tools - run one read operation against a real company:
dashboard- or
query
- if connector access is needed, run one bounded action such as:
telegram list_chatsgoogle_drive list_files