vn.datacore/datacore-a2a
OfficialClick on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@vn.datacore/datacore-a2aChuẩn hoá địa chỉ: 123 Nguyễn Huệ, Q1, TP.HCM"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
DataCore A2A — MCP server
Lets an MCP client (Claude Code, Claude Desktop, VS Code, Cursor…) use DataCore's data skills as native tools: Vietnamese address normalization, address validation, company lookup, embedding generation.
MCP client (stdio) ──► datacore-mcp ──HTTPS──► DataCore APIZero dependency, Python 3.9+.
Installation
pip install datacore-a2a-mcpRelated MCP server: Company Data MCP Server
Prerequisites
This server is a client, not a service. It needs a DataCore endpoint and a mandate token to call — contact 3TIT to be issued one. Without those two, the server starts up and exits immediately with a message saying which variable is missing.
Configuration
Variable | Required | Meaning |
| yes | Base URL of the DataCore endpoint issued to you, e.g. |
| yes | AP2 mandate token issued by DataCore — determines which skills can be called and the spend cap |
| no | Comma-separated list of skill ids to limit the tools, or |
| no | Timeout per request (seconds), default |
Use the exact URL DataCore issued along with the mandate. A different endpoint
will not accept your mandate and will return 401.
Claude Code / Claude Desktop
Add to .mcp.json (project) or the Claude Desktop config:
{
"mcpServers": {
"datacore-a2a": {
"command": "datacore-mcp",
"env": {
"DATACORE_A2A_URL": "https://api.example.com",
"DATACORE_MANDATE": "<mandate-token>"
}
}
}
}Tools
The tool list is generated from the endpoint, not hardcoded here — so when DataCore adds a skill, restart the server and the new tool appears.
By default, 4 skills wired to the real backend are exposed:
Tool | Skill id | What it does |
|
| Normalizes a Vietnamese address into province / district / commune |
|
| Checks whether an address exists per administrative data |
|
| Looks up a company by name or tax ID |
|
| Generates embedding vectors for text |
Every tool is read-only (readOnlyHint: true): nothing is written, deleted,
or created. Calling again with the same input yields the same result.
Three other DataCore skills (company.graph, company.financial-sankey,
company.news) are deliberately not exposed: they are currently returning
mock/deterministic data. If you want to see them for testing, set
DATACORE_SKILLS="*", and don't trust the results.
Examples
The three prompts below run through three different tools:
Address normalization — "Normalize this address into province/district/commune: So 1 Ly Thai To, Hoan Kiem, Ha Noi"
Company lookup — "Find company information for tax ID 0100109106 and tell me its operating status"
Embedding — "Generate an embedding for this industry description and tell me how many dimensions the vector has: bán buôn thiết bị điện tử"
Security model
This server carries the mandate token as-is in the X-AP2-Mandate header for
DataCore to verify, and never sets any other authorization header on its own. A
client is not a place to grant itself permissions — it only forwards what it was
issued, and all allow/deny decisions live on the DataCore side.
The mandate is a bearer credential: whoever holds it can call exactly the
skills in it, up to the spend cap, until it expires. Treat it like a password —
don't commit a .mcp.json with the token filled in, and if your client supports
it, read it from a secret manager instead of leaving it inline.
This package never writes the token to logs, not even partially; the text
content you send is not logged either. That is a commitment for the process
running on your machine — the service side is a different matter, and
PRIVACY.md states plainly what it stores.
Troubleshooting
Logs go to stderr, prefixed with [datacore-mcp]. stdout is the JSON-RPC
channel.
Symptom | Common cause |
Server exits immediately, |
|
| Mandate expired, or |
| The mandate's spend cap has been used up |
| Skill is outside the mandate's allowlist — request a mandate that includes that skill |
| The skill's backend on the DataCore side is not responding |
No tools appear |
|
Reporting security issues
mcp-security@datacore.vn. Don't open a public issue for security bugs.
If you suspect your mandate has leaked, report it immediately — don't wait until it expires. We need to know so we can handle it on the service side.
Privacy
See PRIVACY.md. In short: this package runs on your machine, stores nothing, sends nothing anywhere except the DataCore endpoint you configure yourself, and never writes the mandate token to logs.
License
MIT — see LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Query your org's data in natural language — read-only MCP access to SQL, NoSQL, files & warehouses.
Governed data discovery, exact queries, decisions, simulations, and runtime utilities over MCP.
Let AI agents query data and act across all your business apps via MCP.
A paid remote MCP for AI SDK data query MCP, built to return verdicts, receipts, usage logs, and aud
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables read-only SQL querying and schema inspection across MSSQL, PostgreSQL, and MySQL databases via MCP tools.-
- FlicenseNot gradedqualityCmaintenanceEnables read-only access to company data across PostgreSQL, MongoDB Atlas, and flat files through MCP tools, allowing AI assistants to query and retrieve information via natural language.-
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to query internal business data for insights into customers, revenue, subscriptions, sales, and churn through controlled, read-only MCP tools.-
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to securely query PostgreSQL with pgvector, DynamoDB, and MongoDB Atlas with Vector Search through a read-only, allowlisted MCP interface.MIT