BCP is an open protocol that standardizes how AI agents interact with business operations platforms.
Built as a semantic layer on top of the Model Context Protocol (MCP), BCP provides a common vocabulary, entity model, and governance framework so that AI agents can work with any BCP-compliant business system — CRMs, project management tools, ERPs, billing platforms, and more — without custom integration code.
MCP standardizes how AI agents communicate with tools. BCP standardizes what business concepts look like.
Without BCP, every integration requires custom mappings: your CRM calls them "leads," your PM tool calls them "tasks," and your billing system calls them "charges." An AI agent needs custom code for each platform. With BCP, all platforms speak the same business language.
+--------------------------------------------------+
| Protocol Stack |
| |
| A2A (Agent-to-Agent Protocol) |
| : |
| ACP (Agent Communication Protocol) |
| : |
| BCP (Business Context Protocol) <-- You are here|
| : |
| MCP (Model Context Protocol) |
| : |
| LLM / AI Model |
+--------------------------------------------------+
BCP is designed for incremental adoption. Implement what you need:
| Level | Name | Capabilities | Tools |
|---|---|---|---|
| 1 | Entity | Standardized entity types, core properties, relationship taxonomy | bcp_list_entity_types, bcp_list_relationship_types |
| 2 | Context | Entity context assembly, workspace pulse, relationship graphs, timelines | + bcp_get_entity_context, bcp_get_workspace_pulse, bcp_get_relationship_graph, bcp_get_entity_timeline |
| 3 | Governed | Action proposals, risk classification, approval flows, outcome tracking | + bcp_propose_action, bcp_get_action_status, bcp_get_outcome_intelligence |
npm install @businesscontextprotocol/sdk @modelcontextprotocol/sdk zodimport { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { registerBcpTools, type BcpAdapter } from "@businesscontextprotocol/sdk";
// 1. Implement the adapter with your data access logic
const adapter: BcpAdapter = {
async listEntityTypes() {
return ["contact", "company", "opportunity"];
},
async getEntityContext(entityType, entityId) {
const entity = await db.find(entityType, entityId);
return { entity, associations: [], activities: [] };
},
async getWorkspacePulse() {
return {
pipeline_value: 50000,
outstanding_invoices: 5,
active_projects: 3,
open_tickets: 8,
pending_approvals: 0,
recent_outcomes: { positive: 0, negative: 0, neutral: 0, pending: 0 },
period: "last_30_days",
};
},
async getRelationshipGraph(rootType, rootId) {
return { nodes: [], edges: [], root_type: rootType, root_id: rootId, depth: 1 };
},
async getEntityTimeline(entityType, entityId) {
return { events: [] };
},
};
// 2. Register BCP tools on your MCP server
const server = new McpServer({ name: "my-app", version: "1.0.0" });
registerBcpTools(server, adapter);That's it. Your MCP server now speaks BCP.
BCP defines 17 standard entity types covering common business operations:
| Category | Types |
|---|---|
| People | contact, company |
| Sales | opportunity, quote, invoice, order, payment |
| Catalog | product, service |
| Operations | booking, ticket, project, task |
| Legal | agreement, subscription |
| Content | form, document |
25 relationship types across 6 categories:
- Structural: parent_of, child_of, member_of, contains, part_of
- Causal: originated_from, resulted_in, triggered_by, converted_from, converted_to
- Commercial: billed_to, fulfilled_by, governed_by, scoped_by, delivered_for
- Temporal: renewed_from, supersedes, preceded_by, depends_on, blocks
- Role: assigned_to, approved_by, referred_by
- Reference: references, related
- Getting Started
- Implementing Layer A: Entity
- Implementing Layer B: Context
- Implementing Layer C: Governed
- Full Specification
The @businesscontextprotocol/sdk package provides:
- Types — Complete TypeScript type definitions for all BCP structures
- Schemas — Zod validation schemas for runtime validation
- Taxonomy — Full relationship taxonomy as queryable data
- Governance — Default risk classification and guard evaluation helpers
- Outcomes — Outcome tracking definitions and helpers
- Registration —
registerBcpTools()for one-line MCP integration
See the examples/ directory:
- minimal-server — Minimal BCP-compliant MCP server with in-memory data
This project is maintained by Anthril and funded by our sponsors.
We welcome contributions! Please see our contributing guidelines:
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-feature) - Commit your changes following Conventional Commits
- Push to the branch (
git push origin feature/my-feature) - Open a Pull Request
This project is licensed under the Apache License 2.0 — see the LICENSE file for details.
Copyright 2026 Anthril Pty Ltd