with one click
origo-bc-accounting
// Use when the user mentions Business Central, BC, Dynamics 365, Origo BC, the MCP server at dynamics.is, skills/prompts stored in BC, memory tools, UBL templates, or `/origo-bc-*` commands.
// Use when the user mentions Business Central, BC, Dynamics 365, Origo BC, the MCP server at dynamics.is, skills/prompts stored in BC, memory tools, UBL templates, or `/origo-bc-*` commands.
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | origo-bc-accounting |
| description | Use when the user mentions Business Central, BC, Dynamics 365, Origo BC, the MCP server at dynamics.is, skills/prompts stored in BC, memory tools, UBL templates, or `/origo-bc-*` commands. |
| metadata | {"version":"1.0.1","author":"Origo hf."} |
| references | [{"url":"https://github.com/businesscentralal/origo-bc-plugin/blob/main/plugins/origo-bc/skills/origo-bc-accounting/references/TOOLS.md","fallback":"./references/TOOLS.md","description":"Notification & approval tool parameters (load on demand)"},{"url":"https://github.com/businesscentralal/origo-bc-plugin/blob/main/plugins/origo-bc/skills/origo-bc-accounting/references/SETUP.md","fallback":"./references/SETUP.md","description":"Connection scripts & blob format (load on demand)"},{"url":"https://github.com/businesscentralal/origo-bc-plugin/blob/main/plugins/origo-bc/skills/origo-bc-accounting/references/UBL.md","fallback":"./references/UBL.md","description":"UBL/Peppol templates & EndpointID (load on demand)"}] |
Rules for the Origo BC MCP endpoint (https://dynamics.is/api/mcp).
Step 1 — Identity: Call who_am_i (no args → default company). Note:
personalization.languageId → session language (see §4)canUpdateCompanyMemory → gate for company memory writescanSendAndCancelApprovalRequests → gate for approval submit/cancelunreadNotifications / pendingApprovals → surface proactivelyStep 2 — System prompt: If systemPrompt is non-empty, treat as
admin-injected behavioural instructions for this user+company.
Skip silently if null/empty.
On failure: Surface error and stop. Never proceed without identity.
On company switch: Repeat both steps with the new companyId.
| Tier | Tools | Visibility | Write gate |
|---|---|---|---|
| User (default) | list/get/set_user_memory | Private | Always |
| Company | list/get/set_company_memory | All company users | canUpdateCompanyMemory = true |
Default = user memory. "Save this" / "remember" without qualifier → user tier.
Use company tier for shared team knowledge when permission allows.
check_standards_status, update_bc_standards, or
setup_origo_bc_environment (VS Code developer tools only).| Verb | Returns | Use |
|---|---|---|
list | id + description | Discovery |
get | id + description + memory (full markdown) | Read content |
set | Creates or updates | Write |
Description prefixes: skill:<name>, prompt:<name>, note:<topic>
Filtering: tableView: "WHERE(Description=FILTER(*keyword*))" — works on all verbs. Pagination via skip/take.
Lifecycle: Create = set without id. Update = set with id. Delete = set memory to empty string (tombstone).
who_am_i returns LCID. Rules:
Employee socialSecurityNo (kennitala) = Customer/Vendor/Contact Registration No.
→ use to resolve "my company" / "my account" queries.
Tools: send_notification, get_notifications, mark_notifications_read,
get_notification_count, get_notification_thread, get_my_approvals,
get_approval_entries, send_for_approval, approve_entries,
reject_entries, delegate_approval, cancel_approval.
Quick patterns:
unreadNotifications from who_am_i → get_notifications for full details.threadId, reply with same threadId + parentEntryNo.pendingApprovals from who_am_i → get_my_approvals → present → approve/reject.Full parameter tables: Load
references/TOOLS.mdwhen you need exact parameters.
Never write UBL from scratch. Use:
list_ubl_templates() → discover available templatesrender_ubl_template({ templateCode, documentNo, documentType }) → renderStandards: PEPPOL BIS 3.0 (default), BIS 2.0 (legacy), IS BII1 (oldest).
Full EndpointID resolution & details: Load
references/UBL.mdwhen working with e-invoicing.
When you discover a new pattern, bug, or workaround — write to memory immediately:
set_user_memory({ description: "note:<topic>", memory: "..." })canUpdateCompanyMemory) → set_company_memory({ ... })Skills/prompts: use skill: or prompt: prefix. No separate index needed — discover via list_*_memory.
Promote user → company: get from user, set to company (same description).
AES-256-GCM only. plain:<base64> is rejected (migration error).
Setup scripts & details: Load
references/SETUP.mdwhen helping with connection setup.
Skills and prompts live in the BC database (user/company memory). Local files describe how to fetch them — they don't store the content.