Skip to main content

DataCore A2A — MCP server

Cho phép một MCP client (Claude Code, Claude Desktop, VS Code, Cursor…) dùng các skill dữ liệu của DataCore như tool native: chuẩn hoá địa chỉ Việt Nam, kiểm tra địa chỉ, tra cứu doanh nghiệp, sinh embedding.

MCP client (stdio) ──► datacore-mcp ──HTTPS──► DataCore API

Zero dependency, Python 3.9+.

Cài đặt

pip install datacore-a2a-mcp

Cần có trước

Server này là client, không phải dịch vụ. Nó cần một endpoint DataCore và một mandate token để gọi — liên hệ 3TIT để được cấp. Không có hai thứ đó thì server khởi động rồi thoát ngay kèm thông báo thiếu biến nào.

Cấu hình

Biến Bắt buộc Ý nghĩa
DATACORE_A2A_URL có Base URL của endpoint DataCore được cấp cho bạn, ví dụ https://api.example.com
DATACORE_MANDATE có AP2 mandate token do DataCore cấp — quyết định skill nào được gọi và hạn mức chi tiêu
DATACORE_SKILLS không Danh sách skill id cách nhau bằng phẩy để giới hạn tool, hoặc * để lấy hết. Bỏ trống dùng mặc định
DATACORE_TIMEOUT không Timeout mỗi request (giây), mặc định 30

Dùng đúng URL DataCore cấp kèm mandate. Một endpoint khác sẽ không nhận mandate của bạn và trả 401.

Claude Code / Claude Desktop

Thêm vào .mcp.json (project) hoặc config của Claude Desktop:

{
  "mcpServers": {
    "datacore-a2a": {
      "command": "datacore-mcp",
      "env": {
        "DATACORE_A2A_URL": "https://api.example.com",
        "DATACORE_MANDATE": "<mandate-token>"
      }
    }
  }
}

Tool

Tool list được sinh từ endpoint, không hardcode ở đây — nên khi DataCore thêm skill, restart server là thấy tool mới.

Mặc định expose 4 skill đã nối backend thật:

Tool Skill id Việc nó làm
address_normalize address.normalize Chuẩn hoá địa chỉ Việt Nam thành tỉnh / huyện / xã
address_validate address.validate Kiểm tra một địa chỉ có tồn tại theo dữ liệu hành chính
company_search company.search Tra cứu doanh nghiệp theo tên hoặc mã số thuế
company_embeddings company.embeddings Sinh vector embedding cho văn bản

Mọi tool là read-only (readOnlyHint: true): không ghi, không xoá, không tạo gì. Gọi lại cùng input cho cùng kết quả.

Ba skill khác của DataCore (company.graph, company.financial-sankey, company.news) cố ý không được expose: chúng đang trả dữ liệu mock/deterministic. Muốn thấy chúng để thử thì đặt DATACORE_SKILLS="*", và đừng tin kết quả.

Ví dụ

Ba prompt dưới đây chạy qua ba tool khác nhau:

  1. Chuẩn hoá địa chỉ — "Chuẩn hoá địa chỉ này thành tỉnh/huyện/xã: So 1 Ly Thai To, Hoan Kiem, Ha Noi"
  2. Tra cứu doanh nghiệp — "Tìm thông tin doanh nghiệp có mã số thuế 0100109106 và cho tôi biết trạng thái hoạt động"
  3. Embedding — "Sinh embedding cho đoạn mô tả ngành nghề này rồi cho biết vector có bao nhiêu chiều: bán buôn thiết bị điện tử"

Mô hình bảo mật

Server này mang mandate token nguyên dạng ở header X-AP2-Mandate để phía DataCore verify, và không tự khai bất kỳ header authorization nào khác. Một client không được là nơi tự cấp quyền cho chính nó — nó chỉ chuyển tiếp thứ nó được cấp, còn mọi quyết định cho phép hay từ chối đều nằm ở phía DataCore.

Mandate là bearer credential: ai giữ nó cũng gọi được đúng những skill trong đó, tới hết hạn mức, cho tới khi hết hạn. Giữ nó như giữ mật khẩu — đừng commit .mcp.json đã điền token, và nếu client của bạn hỗ trợ, đọc nó từ trình quản lý secret thay vì để inline.

Package này không bao giờ ghi token ra log, kể cả một phần; nội dung text bạn gửi cũng không. Đó là cam kết cho tiến trình chạy trên máy bạn — phía dịch vụ là chuyện khác, và PRIVACY.md nói thẳng nó lưu những gì.

Xử lý sự cố

Log đi ra stderr, prefix [datacore-mcp]. stdout là kênh JSON-RPC.

Triệu chứng Nguyên nhân thường gặp
Server thoát ngay, THIẾU biến môi trường bắt buộc Chưa set DATACORE_A2A_URL hoặc DATACORE_MANDATE
401 mọi request Mandate hết hạn, hoặc DATACORE_A2A_URL không phải endpoint đã cấp kèm mandate đó
402 Đã dùng hết spend cap của mandate
403 Skill nằm ngoài allowlist của mandate — xin mandate có skill đó
502 Backend của skill đó phía DataCore không phản hồi
Không thấy tool nào DATACORE_SKILLS lọc hết, hoặc endpoint chưa đăng ký skill nào

Báo lỗi bảo mật

mcp-security@datacore.vn. Đừng mở issue công khai cho lỗi bảo mật.

Nghi mandate của mình bị lộ thì báo ngay — đừng đợi tới lúc nó hết hạn. Chúng tôi cần biết để xử lý phía dịch vụ.

Quyền riêng tư

Xem PRIVACY.md. Ngắn gọn: package này chạy trên máy bạn, không lưu gì, không gửi đi đâu ngoài endpoint DataCore bạn tự cấu hình, và không bao giờ ghi mandate token vào log.

License

MIT — xem LICENSE.

Metadata

Release files for datacore-a2a-mcp 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for datacore-a2a-mcp 0.1.0
File Size Uploaded
datacore_a2a_mcp-0.1.0.tar.gz 11.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for datacore-a2a-mcp 0.1.0
File Interpreter ABI Platform
datacore_a2a_mcp-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 23.0 kB

Release files / datacore_a2a_mcp-0.1.0.tar.gz

Download URL datacore_a2a_mcp-0.1.0.tar.gz
Size 11.9 kB
Tags Source
SHA-256 checksum
How to use checksums
6609313a74a5f5be5643c50369a394fccf49eceea8cf2eee3afac6749a5e2d7a
BLAKE2b-256 checksum
How to use checksums
f8a090e31c362420104ad67093269b3e70dc0ddeb80a8e2dc7c73cb58de5f87b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release files / datacore_a2a_mcp-0.1.0-py3-none-any.whl

Download URL datacore_a2a_mcp-0.1.0-py3-none-any.whl
Size 11.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8b2b84e7e13eaf7818f5c6e7610b04e23aa877edf8b28d7a37ef0da273003511
BLAKE2b-256 checksum
How to use checksums
a7789e40b6852d0e4c14dd4481a809258c57717984e0e126a6a7b41bc8188d25
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.12

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page