{
  "schemaVersion": 1,
  "name": "Kroy",
  "description": "The governed interface between your organisation and AI.",
  "tagline": "Give AI somewhere safe to work.",
  "updated": "2026-09-25",
  "status": {
    "summary": "Kroy is in early access. The Kroy app, API and MCP endpoint are opening to organisations in stages, starting with professional firms in London. New organisations join through the waitlist. The Kroy MCP Marketplace is open to everyone.",
    "waitlist": "https://getkroy.com/waitlist",
    "app": {
      "url": "https://app.kroy.cc",
      "open": false
    },
    "mcp": {
      "url": "https://mcp.kroy.cc",
      "open": false
    },
    "marketplace": {
      "url": "https://marketplace.kroy.cc",
      "open": true
    }
  },
  "website": "https://getkroy.com",
  "llm": "https://llm.kroy.cc",
  "capabilities": [
    {
      "id": "database",
      "name": "Kroy Database",
      "plain": "Keeps the organisation’s structured information — clients, projects, matters, decisions, tasks — as records with fields, relationships and permissions, so an AI can look things up instead of being pasted text.",
      "url": "https://getkroy.com/product/database"
    },
    {
      "id": "state",
      "name": "State",
      "plain": "Keeps the current state of work — decisions, findings, tasks, open questions — outside any single AI, so another AI can carry on where the last one stopped.",
      "url": "https://getkroy.com/product/state"
    },
    {
      "id": "connect",
      "name": "Connect",
      "plain": "Links business systems such as Microsoft 365, Xero or GitHub to Kroy once. Kroy holds the credentials; the AI never receives them.",
      "url": "https://getkroy.com/product/connect"
    },
    {
      "id": "skills",
      "name": "Skills",
      "plain": "Packages a business job with exactly the data and actions it needs, so an AI is given a job it is allowed to do instead of open access to a system.",
      "url": "https://getkroy.com/product/skills"
    },
    {
      "id": "artifacts",
      "name": "Artifacts",
      "plain": "Stores the work AI produces — drafts, reports, change sets — with versions, a status such as Draft or Approved, and a record of who or what made each change.",
      "url": "https://getkroy.com/product/artifacts"
    },
    {
      "id": "control",
      "name": "Control",
      "plain": "Decides every request by asking: who is asking, which AI is acting, what has the person allowed it to do, what the organisation’s rules say, and whether a person must approve first.",
      "url": "https://getkroy.com/product/control"
    },
    {
      "id": "guest-access",
      "name": "Guest Access",
      "plain": "Shares a chosen part of a record with someone outside the organisation — a client, adviser or auditor — who can use Kroy directly or through their own AI.",
      "url": "https://getkroy.com/product/guest-access"
    },
    {
      "id": "ai-gateway",
      "name": "AI Gateway",
      "plain": "Puts Kroy between AI tools and business systems. Every request goes through Kroy, which checks it, runs it and records it.",
      "url": "https://getkroy.com/product/ai-gateway"
    },
    {
      "id": "publish",
      "name": "Publish",
      "plain": "Publishes approved information to websites, APIs and AI-facing endpoints from one governed source, with drafts, approvals and a record of every publication.",
      "url": "https://getkroy.com/product/publish"
    },
    {
      "id": "channels",
      "name": "Channels",
      "plain": "Groups an audience with the part of the data, the finished work, the updates and the actions it may use — for example a client channel, a board channel or a public channel.",
      "url": "https://getkroy.com/product/channels"
    },
    {
      "id": "observe",
      "name": "Observe",
      "plain": "Shows which AI tools are connected, which Skills run, what was approved or refused and which systems AI reaches — an organisational view, not surveillance of people’s chats.",
      "url": "https://getkroy.com/product/observe"
    }
  ],
  "integrations": [
    {
      "id": "chatgpt",
      "name": "ChatGPT",
      "category": "ai-agents",
      "actions": [
        {
          "id": "kroy.state.read",
          "label": "Read shared state",
          "kind": "read",
          "approvalByDefault": false
        },
        {
          "id": "kroy.state.update",
          "label": "Update shared state",
          "kind": "write",
          "approvalByDefault": false
        },
        {
          "id": "kroy.skill.invoke",
          "label": "Use a Skill",
          "kind": "write",
          "approvalByDefault": false
        },
        {
          "id": "kroy.artifact.draft_create",
          "label": "Create draft artifact",
          "kind": "write",
          "approvalByDefault": false
        },
        {
          "id": "kroy.approval.request",
          "label": "Request human approval",
          "kind": "write",
          "approvalByDefault": false
        },
        {
          "id": "kroy.artifact.publish",
          "label": "Publish artifact",
          "kind": "write",
          "approvalByDefault": true
        }
      ],
      "url": "https://getkroy.com/integrations/chatgpt"
    },
    {
      "id": "github",
      "name": "GitHub",
      "category": "development",
      "actions": [
        {
          "id": "github.repos.read",
          "label": "Read repository contents",
          "kind": "read",
          "approvalByDefault": false
        },
        {
          "id": "github.issues.read",
          "label": "Read issues",
          "kind": "read",
          "approvalByDefault": false
        },
        {
          "id": "github.pull_requests.read",
          "label": "Read pull requests",
          "kind": "read",
          "approvalByDefault": false
        },
        {
          "id": "github.issues.create",
          "label": "Create issue",
          "kind": "write",
          "approvalByDefault": false
        },
        {
          "id": "github.issues.comment",
          "label": "Comment on issue or pull request",
          "kind": "write",
          "approvalByDefault": false
        },
        {
          "id": "github.branches.create",
          "label": "Create branch",
          "kind": "write",
          "approvalByDefault": false
        },
        {
          "id": "github.pull_requests.create",
          "label": "Open pull request",
          "kind": "write",
          "approvalByDefault": false
        },
        {
          "id": "github.pull_requests.merge",
          "label": "Merge pull request",
          "kind": "write",
          "approvalByDefault": true
        },
        {
          "id": "github.releases.create",
          "label": "Create release",
          "kind": "write",
          "approvalByDefault": true
        },
        {
          "id": "github.workflows.dispatch",
          "label": "Run workflow",
          "kind": "write",
          "approvalByDefault": true
        }
      ],
      "url": "https://getkroy.com/integrations/github"
    },
    {
      "id": "google-workspace",
      "name": "Google Workspace",
      "category": "productivity",
      "actions": [
        {
          "id": "gmail.mail.read",
          "label": "Read mail",
          "kind": "read",
          "approvalByDefault": false
        },
        {
          "id": "gmail.draft.create",
          "label": "Create draft",
          "kind": "write",
          "approvalByDefault": false
        },
        {
          "id": "gmail.mail.send",
          "label": "Send mail",
          "kind": "write",
          "approvalByDefault": true
        },
        {
          "id": "gdrive.files.read",
          "label": "Read files",
          "kind": "read",
          "approvalByDefault": false
        },
        {
          "id": "gdrive.files.create",
          "label": "Create file",
          "kind": "write",
          "approvalByDefault": false
        },
        {
          "id": "gdrive.files.share",
          "label": "Share file",
          "kind": "write",
          "approvalByDefault": true
        },
        {
          "id": "gcalendar.events.read",
          "label": "Read calendar",
          "kind": "read",
          "approvalByDefault": false
        },
        {
          "id": "gcalendar.events.create",
          "label": "Create calendar event",
          "kind": "write",
          "approvalByDefault": false
        }
      ],
      "url": "https://getkroy.com/integrations/google-workspace"
    },
    {
      "id": "claude",
      "name": "Claude",
      "category": "ai-agents",
      "actions": [
        {
          "id": "kroy.state.read",
          "label": "Read shared state",
          "kind": "read",
          "approvalByDefault": false
        },
        {
          "id": "kroy.state.update",
          "label": "Update shared state",
          "kind": "write",
          "approvalByDefault": false
        },
        {
          "id": "kroy.skill.invoke",
          "label": "Use a Skill",
          "kind": "write",
          "approvalByDefault": false
        },
        {
          "id": "kroy.artifact.draft_create",
          "label": "Create draft artifact",
          "kind": "write",
          "approvalByDefault": false
        },
        {
          "id": "kroy.approval.request",
          "label": "Request human approval",
          "kind": "write",
          "approvalByDefault": false
        },
        {
          "id": "kroy.artifact.publish",
          "label": "Publish artifact",
          "kind": "write",
          "approvalByDefault": true
        }
      ],
      "url": "https://getkroy.com/integrations/claude"
    },
    {
      "id": "microsoft-365",
      "name": "Microsoft 365",
      "category": "productivity",
      "actions": [
        {
          "id": "outlook.mail.read",
          "label": "Read mail",
          "kind": "read",
          "approvalByDefault": false
        },
        {
          "id": "outlook.draft.create",
          "label": "Create draft",
          "kind": "write",
          "approvalByDefault": false
        },
        {
          "id": "outlook.mail.send",
          "label": "Send mail",
          "kind": "write",
          "approvalByDefault": true
        },
        {
          "id": "sharepoint.files.read",
          "label": "Read files",
          "kind": "read",
          "approvalByDefault": false
        },
        {
          "id": "sharepoint.files.upload",
          "label": "Upload file",
          "kind": "write",
          "approvalByDefault": false
        }
      ],
      "url": "https://getkroy.com/integrations/microsoft-365"
    },
    {
      "id": "microsoft-copilot",
      "name": "Microsoft Copilot",
      "category": "ai-agents",
      "actions": [
        {
          "id": "kroy.state.read",
          "label": "Read shared state",
          "kind": "read",
          "approvalByDefault": false
        },
        {
          "id": "kroy.state.update",
          "label": "Update shared state",
          "kind": "write",
          "approvalByDefault": false
        },
        {
          "id": "kroy.skill.invoke",
          "label": "Use a Skill",
          "kind": "write",
          "approvalByDefault": false
        },
        {
          "id": "kroy.artifact.draft_create",
          "label": "Create draft artifact",
          "kind": "write",
          "approvalByDefault": false
        },
        {
          "id": "kroy.approval.request",
          "label": "Request human approval",
          "kind": "write",
          "approvalByDefault": false
        },
        {
          "id": "kroy.artifact.publish",
          "label": "Publish artifact",
          "kind": "write",
          "approvalByDefault": true
        }
      ],
      "url": "https://getkroy.com/integrations/microsoft-copilot"
    },
    {
      "id": "microsoft-entra-id",
      "name": "Microsoft Entra ID",
      "category": "identity",
      "actions": [
        {
          "id": "entra.users.read",
          "label": "Read users",
          "kind": "read",
          "approvalByDefault": false
        },
        {
          "id": "entra.groups.read",
          "label": "Read groups",
          "kind": "read",
          "approvalByDefault": false
        },
        {
          "id": "entra.group_members.read",
          "label": "Read group membership",
          "kind": "read",
          "approvalByDefault": false
        }
      ],
      "url": "https://getkroy.com/integrations/microsoft-entra-id"
    },
    {
      "id": "postgresql",
      "name": "PostgreSQL",
      "category": "databases",
      "actions": [
        {
          "id": "postgresql.schema.read",
          "label": "Read exposed schema",
          "kind": "read",
          "approvalByDefault": false
        },
        {
          "id": "postgresql.query.read",
          "label": "Run named read query",
          "kind": "read",
          "approvalByDefault": false
        },
        {
          "id": "postgresql.query.adhoc_read",
          "label": "Run ad hoc read-only query",
          "kind": "read",
          "approvalByDefault": true
        },
        {
          "id": "postgresql.statement.execute",
          "label": "Run named write statement",
          "kind": "write",
          "approvalByDefault": true
        }
      ],
      "url": "https://getkroy.com/integrations/postgresql"
    },
    {
      "id": "jira",
      "name": "Jira",
      "category": "project-management",
      "actions": [
        {
          "id": "jira.issue.read",
          "label": "Read issue",
          "kind": "read",
          "approvalByDefault": false
        },
        {
          "id": "jira.issue.search",
          "label": "Search issues",
          "kind": "read",
          "approvalByDefault": false
        },
        {
          "id": "jira.issue.create",
          "label": "Create issue",
          "kind": "write",
          "approvalByDefault": false
        },
        {
          "id": "jira.issue.comment",
          "label": "Add comment",
          "kind": "write",
          "approvalByDefault": false
        },
        {
          "id": "jira.issue.update",
          "label": "Update issue fields",
          "kind": "write",
          "approvalByDefault": false
        },
        {
          "id": "jira.issue.transition",
          "label": "Move issue through workflow",
          "kind": "write",
          "approvalByDefault": true
        }
      ],
      "url": "https://getkroy.com/integrations/jira"
    },
    {
      "id": "cloudflare",
      "name": "Cloudflare",
      "category": "development",
      "actions": [
        {
          "id": "cloudflare.deployments.read",
          "label": "Read deployment status",
          "kind": "read",
          "approvalByDefault": false
        },
        {
          "id": "cloudflare.deploy_hook.trigger",
          "label": "Trigger site rebuild",
          "kind": "write",
          "approvalByDefault": true
        },
        {
          "id": "cloudflare.cache.purge",
          "label": "Purge cached pages",
          "kind": "write",
          "approvalByDefault": true
        }
      ],
      "url": "https://getkroy.com/integrations/cloudflare"
    },
    {
      "id": "quickbooks",
      "name": "QuickBooks",
      "category": "accounting-finance",
      "actions": [
        {
          "id": "quickbooks.customers.read",
          "label": "Read customers",
          "kind": "read",
          "approvalByDefault": false
        },
        {
          "id": "quickbooks.invoices.read",
          "label": "Read invoices",
          "kind": "read",
          "approvalByDefault": false
        },
        {
          "id": "quickbooks.bills.read",
          "label": "Read bills",
          "kind": "read",
          "approvalByDefault": false
        },
        {
          "id": "quickbooks.reports.read",
          "label": "Read reports",
          "kind": "read",
          "approvalByDefault": false
        },
        {
          "id": "quickbooks.estimates.create",
          "label": "Create estimate",
          "kind": "write",
          "approvalByDefault": false
        },
        {
          "id": "quickbooks.invoices.create",
          "label": "Create invoice",
          "kind": "write",
          "approvalByDefault": true
        },
        {
          "id": "quickbooks.invoices.send",
          "label": "Send invoice to customer",
          "kind": "write",
          "approvalByDefault": true
        },
        {
          "id": "quickbooks.bills.create",
          "label": "Record bill",
          "kind": "write",
          "approvalByDefault": true
        }
      ],
      "url": "https://getkroy.com/integrations/quickbooks"
    },
    {
      "id": "salesforce",
      "name": "Salesforce",
      "category": "crm",
      "actions": [
        {
          "id": "salesforce.account.read",
          "label": "Read accounts",
          "kind": "read",
          "approvalByDefault": false
        },
        {
          "id": "salesforce.contact.read",
          "label": "Read contacts",
          "kind": "read",
          "approvalByDefault": false
        },
        {
          "id": "salesforce.opportunity.read",
          "label": "Read opportunities",
          "kind": "read",
          "approvalByDefault": false
        },
        {
          "id": "salesforce.task.create",
          "label": "Log task or call",
          "kind": "write",
          "approvalByDefault": false
        },
        {
          "id": "salesforce.note.create",
          "label": "Add note",
          "kind": "write",
          "approvalByDefault": false
        },
        {
          "id": "salesforce.lead.create",
          "label": "Create lead",
          "kind": "write",
          "approvalByDefault": false
        },
        {
          "id": "salesforce.contact.update",
          "label": "Update contact",
          "kind": "write",
          "approvalByDefault": true
        },
        {
          "id": "salesforce.opportunity.update",
          "label": "Update opportunity",
          "kind": "write",
          "approvalByDefault": true
        }
      ],
      "url": "https://getkroy.com/integrations/salesforce"
    },
    {
      "id": "xero",
      "name": "Xero",
      "category": "accounting-finance",
      "actions": [
        {
          "id": "xero.contacts.read",
          "label": "Read contacts",
          "kind": "read",
          "approvalByDefault": false
        },
        {
          "id": "xero.invoices.read",
          "label": "Read invoices",
          "kind": "read",
          "approvalByDefault": false
        },
        {
          "id": "xero.bills.read",
          "label": "Read bills",
          "kind": "read",
          "approvalByDefault": false
        },
        {
          "id": "xero.reports.read",
          "label": "Read reports",
          "kind": "read",
          "approvalByDefault": false
        },
        {
          "id": "xero.invoices.draft_create",
          "label": "Create draft invoice",
          "kind": "write",
          "approvalByDefault": false
        },
        {
          "id": "xero.invoices.approve",
          "label": "Approve invoice",
          "kind": "write",
          "approvalByDefault": true
        }
      ],
      "url": "https://getkroy.com/integrations/xero"
    }
  ],
  "refuses": [
    "Giving an AI the passwords, tokens or keys to connected systems.",
    "Letting an AI see more than the person it acts for can see.",
    "Letting an AI approve anything. Approvals are made by people, in Kroy, never by an AI on anyone’s behalf.",
    "Letting someone approve work they prepared themselves, where the organisation requires a second person.",
    "Returning data outside what was shared — for a guest, anything beyond their projection; for staff, other clients, other matters or restricted material.",
    "Running actions that sit outside the Skill being used, however the request is worded.",
    "Changing its rules because an AI was told to. The decision is made by Kroy, not by the AI."
  ],
  "contact": "hello@getkroy.com"
}