摘要
通过你的 AI 使用 Daftra,这款面向中东地区的云端会计和 ERP 系统:查询发票、客户、产品、库存和总账,并在确认后创建发票、收款、费用、采购和会计分录。
引导式设置
2 分钟将 Daftra 连接到 Microsoft Copilot
开始 AnythingMCP Cloud 免费试用,在引导式设置中连接 Daftra,再把你的 MCP URL 添加到 Microsoft Copilot。无需代码,也无需自行运行服务器。
无需信用卡 · 7 天试用 · 提供自托管方案
试试这样问
Daftra 的示例提示
点击任意提示即可复制,然后粘贴到 Claude、ChatGPT、Cursor、Gemini、Copilot 或 OpenClaw 中,在该连接器上运行。
Claude 是 AI,可能会出错。请核对回答。
💡 无需安装? 直接使用 cloud.anythingmcp.com。 登录、点击 Connectors → Daftra、粘贴凭证、生成 MCP API key,即可完成。无 Docker、无
git clone、无本地服务器。
Daftra + Microsoft Copilot
通过你的 AI 使用 Daftra,这款面向中东地区的云端会计和 ERP 系统:查询发票、客户、产品、库存和总账,并在确认后创建发票、收款、费用、采购和会计分录。
前提条件
完整的设置说明已内置在连接器中 (在 store 中选择连接器时可见)。所需环境变量:
DAFTRA_SUBDOMAIN, DAFTRA_API_KEY
步骤 1 — 获取凭证
- 以管理员身份登录 Daftra。
- 打开 Settings > API > API Keys,点击 Generate API key,起一个名字,例如 AnythingMCP。
- 将密钥粘贴到
DAFTRA_API_KEY,把 Daftra 地址的第一部分填入DAFTRA_SUBDOMAIN:对于acme.daftra.com,填写acme。然后安装连接器。 - 先运行
daftra_list_stores:它会列出你的仓库,并确认密钥可用。
密钥只发送到你自己的 Daftra 账户,并以该账户的权限运行。
涵盖内容:销售发票、贷项通知单和退货收据、发票收款、客户和供应商、产品、产品分类和库存变动、采购发票、费用、资金账户(现金箱、银行账户和钱包),以及包含会计分录和科目表的总账。
先确认:发票、收款、费用、会计分录、采购、退货和库存变动都会记入你的账簿和库存。每次写入之前,AI 都会说明将要进行的更改,并等待你确认。新发票可以保存为草稿;登记收款只是记录你已经收到的款项,不会向任何人扣款。三个删除工具(daftra_delete_invoice、daftra_delete_invoice_payment 和 daftra_delete_expense)安装时默认关闭。
ID、日期和金额:每个工具使用的都是 Daftra 的内部 id,而不是打印出来的编号(例如发票编号 no 000123);AI 会用列表类工具查找 id。仓库、资金账户和记账科目分别来自 daftra_list_stores、daftra_list_treasuries 和 daftra_list_journal_accounts。日期格式为 YYYY-MM-DD,金额使用单据币种,手工分录必须平衡:借方合计等于贷方合计。AI 修改采购发票的明细行时会发送全部明细行,因为未发送的行可能会被删除。
常见错误:401 或 403 表示 API 密钥错误、已删除或没有权限:请在 Settings > API > API Keys 中生成新密钥。每次调用都返回 404 表示子域名错误:它是你登录地址中 .daftra.com 之前的部分。400 或 422:缺少必填字段或某个 id 不存在,错误信息会指出具体是哪一个。
云端与自托管:两者都通过互联网调用你账户自己的 daftra.com 子域名,除此之外没有区别。
这个连接器不涉及收入和税费(Daftra 的 API 密钥无法访问它们),也不涉及工单、预约、员工、工时记录、备注和附件。
步骤 2 — 安装 adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
步骤 3 — 在 Microsoft Copilot 中添加连接器
你的服务器 URL: 在 AnythingMCP 中打开 MCP Servers → 此连接器所在的服务器,复制它的 URL(
https://cloud.anythingmcp.com/mcp/…)。本指南中出现YOUR_SERVER_ID的地方都用它替换。
Microsoft Copilot 通过在 Copilot Studio 中构建的智能体使用 MCP 服务器:把 AnythingMCP 作为工具添加到智能体,然后把智能体发布到 Microsoft 365 Copilot 和 Teams。Copilot Studio 从 Microsoft 的云端通过 Streamable HTTP 连接,AnythingMCP 支持这种方式。
- 在 Copilot Studio 中打开你的智能体(或新建一个),进入 Tools,选择 Add a tool → New tool → Model Context Protocol。
- 填写 Server name(例如
AnythingMCP)、说明连接器用途的 Server description,以及 Server URLhttps://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID。Copilot Studio 根据描述决定何时调用该服务器。 - 身份验证选择 API key,把 Type 设为 Header,请求头名称填
X-API-Key,然后选择 Create。 - 在 Add tool 中选择 Create a new connection,粘贴 AnythingMCP 的 MCP API 密钥(MCP Servers → 你的服务器 → API keys),然后选择 Add to agent。
- 在智能体的 Test 窗格中试一试:提出需要用到
Daftra的工具的请求。 - 选择 Publish,然后进入 Channels → Microsoft 365 and Microsoft Teams,保持勾选 Make agent available in Microsoft Copilot,再选择 Add channel。See agent in Teams 会为你安装该智能体;在 Microsoft 365 Copilot 中输入 @ 并选择该智能体。
希望每个用户各自登录?请选择 OAuth 2.0 → Dynamic discovery 代替 API 密钥:每个用户会在智能体首次调用时登录 AnythingMCP。
自托管?请用你实例的公网 HTTPS 地址替换 https://cloud.anythingmcp.com。Copilot Studio 从 Microsoft 的云端连接,因此 localhost 无法使用。
可用工具
| Tool | What it does |
|---|---|
daftra_list_invoices | List sales invoices, newest first, each with its client, totals and payment status |
daftra_get_invoice | Get one sales invoice by its internal id with client, line items (InvoiceItem), taxes, payments and totals |
daftra_list_credit_notes | List credit notes issued to clients, newest first, with client and totals |
daftra_list_refund_receipts | List sales refund receipts (returned goods against an invoice), newest first, with client and totals |
daftra_list_invoice_payments | List payments recorded against sales invoices, newest first: invoice id, amount, method, date, treasury and status |
daftra_list_clients | List clients (customers) with their id, business or personal name, contact details and balance |
daftra_get_client | Get one client by its internal id with contact details, addresses and account settings |
daftra_list_suppliers | List suppliers (vendors) with their id, name and contact details |
daftra_get_supplier | Get one supplier by its internal id with contact details and account settings |
daftra_list_products | List products and services with id, name, code, selling and buying prices and stock settings |
daftra_get_product | Get one product by its internal id: prices, taxes, type, stock per warehouse and, for a bundle, its components (ProductBundle) |
daftra_list_product_categories | List the product categories with their ids and names |
daftra_list_stores | List warehouses (stores in Daftra) with their ids and names |
daftra_list_stock_transactions | List stock movements (goods in and out per product and warehouse) with quantity, price, date and source |
daftra_list_purchase_invoices | List purchase invoices from suppliers, newest first, with supplier, totals and payment status |
daftra_get_purchase_invoice | Get one purchase invoice by its internal id with supplier, every line (PurchaseOrderItem) with units and prices, taxes and totals |
daftra_list_expenses | List expenses with amount, date, category, vendor, treasury and accounts |
daftra_list_treasuries | List treasuries: cash boxes, bank accounts and wallets, with id, name, type and currency |
daftra_list_journals | List journal entries of the general ledger, newest first, with date, description, totals and source document |
daftra_get_journal | Get one journal entry by its internal id with all its debit and credit lines (JournalTransaction) and their accounts |
daftra_list_journal_accounts | List the posting accounts of the chart of accounts with id, code, name, parent category (journal_cat_id) and type |
daftra_list_journal_categories | List the parent (summary) accounts of the chart of accounts with id, code, name and their own parent (journal_cat_id, -1 at the top level) |
daftra_create_invoice | Create a sales invoice for a client |
daftra_create_invoice_payment | Record a payment received against a sales invoice: amount, date, method and the treasury it went into |
daftra_create_client | Create a client (customer) with name and contact details |
daftra_update_client | Change fields of an existing client; only the fields you pass are changed |
daftra_create_supplier | Create a supplier (vendor) with name and contact details |
daftra_create_product | Create a product, service or bundle |
daftra_update_product | Change fields of an existing product; only the fields in Product are changed (for example name, product_code, prices, status) |
daftra_create_purchase_invoice | Create a purchase invoice from a supplier: header in PurchaseOrder (supplier_id required) and the lines in PurchaseOrderItem |
daftra_update_purchase_invoice | Update a purchase invoice |
daftra_create_expense | Record an expense: amount, date, vendor, category and the treasury it was paid from |
daftra_update_expense | Change fields of an existing expense, for example the treasury it was paid from, the amount or the note; only the fields you pass are… |
daftra_create_journal | Post a manual journal entry: a header in Journal and two or more lines in JournalTransaction |
daftra_create_journal_account | Add a posting account to the chart of accounts under an existing parent category |
daftra_create_stock_transaction | Record a manual stock movement (goods in or out) for one product in one warehouse, for example to correct a balance |
daftra_create_refund_receipt | Create a sales refund receipt (a return) against an existing invoice: header in RefundReceipt with the original invoice id in… |
daftra_delete_invoice | Delete a sales invoice by its internal id, with its effect on stock and the ledger |
daftra_delete_invoice_payment | Delete a payment recorded against an invoice, by the payment id (not the invoice id) |
daftra_delete_expense | Delete an expense by its internal id, with its ledger entry |
daftra_set_invoice_draft_status | Issue a draft sales invoice (draft_status 0: it gets its official sequential number and posts its payment journals; with e-invoicing it is… |
daftra_update_journal | Edit a manual journal entry: header in Journal and the COMPLETE set of lines in JournalTransaction (a line with id is updated, a line… |
daftra_create_journal_category | Add a category (a folder of the chart of accounts that groups sub-categories and posting accounts) |
daftra_create_treasury | Add a treasury (cash box) or bank account that payments and expenses can be paid from or into |
daftra_delete_journal | Delete a manual journal entry by its internal id |
daftra_list_estimates | List estimates (quotations, عروض الأسعار), newest first, each with its client and totals |
daftra_get_estimate | Get one estimate (quotation) by its internal id with client, line items, taxes, documents and totals |
daftra_create_estimate | Create an estimate (quotation, عرض سعر) for a client: the same header and lines as an invoice, in Invoice.client_id and InvoiceItem |
示例提示
- “上个月的销售发票中哪些还没付款?按客户汇总未付金额。”
- “为客户 Al Noor Trading 创建一张发票草稿:10 把办公椅,每把 450 SAR,从主仓库出货。”
- “为发票 000123 登记一笔 4,500 SAR 的收款,今天已到账主银行账户。”
- “做一笔今天日期的分录,把 2,000 从主现金箱转到备用金,保存前先给我看分录明细。”
FAQ
这适用于哪个 Copilot? 适用于工作中的 Microsoft 365 Copilot,通过 Copilot Studio 的智能体实现。面向个人账户的 Microsoft Copilot 应用无法添加自己的 MCP 服务器。
我需要什么? 一个可以使用 Copilot Studio 的工作账户(许可证或试用版),用于构建智能体。在 Microsoft 365 Copilot 或 Teams 中使用它的人需要拥有该智能体的访问权限:把它共享给他们,或请管理员为整个组织发布。如果你的组织对 Power Platform 连接器设置了数据策略,这些策略同样适用于 MCP 服务器。
智能体不调用工具。 检查请求头名称是否正好是 X-API-Key,密钥是否属于与 URL 相同的 MCP 服务器,并把 Server description 写得具体:Copilot Studio 根据它决定何时调用服务器。每次修改后重新发布智能体;在已打开的对话中输入 "start over" 即可使用新版本。
下一步
这份指南对你有帮助吗?