Developer documentation
EazePro connector for Muse
A hosted, tenant-scoped MCP server using OAuth 2.1 authorization code flow with S256 PKCE. EazePro exposes a curated tool surface rather than its internal application API.
The original Read Only and Sales Assistant tools are listed below. Full access adds 77 CLI business operations; see the shared connector documentation for scopes, write confirmation and the complete catalogue.
Connection and authentication
The endpoint accepts stateless MCP Streamable HTTP requests from the established 2025 protocol revisions and the newer 2026-07-28 request model. It exposes only HTTP POST. OAuth authorization-server, OpenID Connect, JWKS, and protected-resource metadata are discoverable through the standard well-known URLs.
- Muse discovers the protected resource and authorization server.
- The user signs in to EazePro, selects exactly one active workspace, and chooses Read Only, Sales Assistant or Full access.
- EazePro displays the requested access before consent and issues a resource-bound, one-hour JWT access token plus a rotating refresh token valid up to 30 days.
- Every tool call rechecks consent, active membership, current role, permission flags, scope, and tenant ownership.
Client identity uses HTTPS Client ID Metadata Documents (CIMD) under the MCP 2026-07-28 profile. Open unauthenticated Dynamic Client Registration is disabled.
OAuth scopes
| Scope | Access |
|---|---|
| eazepro:workspace:read | Connected workspace and effective role context |
| eazepro:sales:read | Leads, activities, follow-ups, and sales summaries |
| eazepro:sales:write | Create/update leads, move stages, set follow-ups, and add activities |
| eazepro:operations:read | Shared schedule and order details |
| eazepro:finance:read | Receivables and revenue summaries |
| eazepro:drivers:read | Today’s delivery and driver progress |
OIDC identity scopes are openid profile email offline_access. Read Only is the default and omits eazepro:sales:write. A user cannot grant capabilities their current EazePro role does not have.
Read tools
| Tool | Input | Output |
|---|---|---|
| get_workspace_context | No input | Workspace identity, role, effective permission flags, and granted EazePro scopes |
| list_leads | search?, stage?, activeOnly=true, limit≤50, offset | Paginated lead summaries and total count |
| get_lead | id | One lead, linked person/company, stage history, and 25 recent activities |
| list_due_followups | dueBefore? (ISO 8601), limit≤50 | Open leads whose follow-up is due by the requested time |
| get_sales_summary | year?, month? | Lead volume, win rate, won/lost value, sources, and monthly metrics |
| list_schedule | dateFrom, dateTo (ISO 8601; ≤31 days), source | Direct and third-party calendar orders |
| get_order | id | Order, customer/contact, items, assignments, invoice status, and fulfillment details |
| get_receivables | filter, limit≤50, offset | Outstanding balances and overdue/upcoming/grace/unbilled summary |
| get_revenue_summary | dateFrom, dateTo (ISO 8601; ≤366 days), groupBy | Booked direct/partner revenue, payments, tips, count, and average value |
| get_today_deliveries | No input | Today’s delivery status, assigned driver, and tracking timestamps |
Read tools have no side effects beyond a payload-free security audit record. Results are capped, tenant filtered, and serialized as JSON text plus structured content.
Controlled write tools
| Tool | Input | Side effect |
|---|---|---|
| create_lead | idempotencyKey, title; optional contact, event, value, source, notes, follow-up | Creates one CRM lead and may link/create its person or company; duplicate-safe by idempotency key |
| update_lead | id, version; selected mutable lead fields | Updates the lead and increments its version; conflicts if the supplied version is stale |
| move_lead_stage | id, version, stage, lostReason? | Changes pipeline stage, records history, and closes won/lost leads |
| set_lead_followup | id, version, nextFollowUpAt | Sets or clears the next follow-up and increments the lead version |
| add_lead_activity | idempotencyKey, leadId, type; optional subject/body/summary/time | Adds one CRM activity; duplicate-safe by idempotency key |
Write tools require eazepro:sales:write and an active Owner, Manager, or Sales role. They never send emails, contact customers, change an order, or move money. Versioned writes fail on concurrent changes; intake and activity writes require an idempotency key.
Excluded capabilities and sensitive data
Read Only and Sales Assistant retain their original bounded actions. Full access additionally exposes the CLI business tools, including payment recording, refunds, invoice reminders, payout acknowledgement, order changes, deletion, driver tracking and team invitations. Service credentials, reusable authentication tokens, API-key administration, account settings, arbitrary SMS and direct card charging remain unavailable.
Limits, errors, and revocation
- Read tools: 60 calls per connected user/workspace per rolling minute.
- Write tools: 10 calls per connected user/workspace per rolling minute.
- List pages: at most 50 records; schedule ranges: 31 days; revenue ranges: 366 days.
- 401 responses include the protected-resource challenge when authorization is missing or invalid.
- 403 or tool errors cover missing scope, inactive membership, role denial, stale versions, tenant mismatch, revoked consent, and rate limits.
- Users revoke a connection from EazePro → Connected apps. Consent is deleted and matching tokens are invalidated; every later tool call is denied even if a signed access token has not yet expired.
Data handling and support
EazePro records tool name, user, workspace, OAuth client, outcome, duration, and time for security and troubleshooting. It does not store MCP tool arguments or returned customer data in the connector audit log. Connected data is used only to provide the user-requested function and is governed by the Privacy Policy, Terms, and Data Deletion Policy.
Security and integration support: info@codepaper.com.