# DataCore A2A

Connects your coding assistant to Vietnamese data tools for postal address normalization, registry lookups and text embeddings.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI
- Author: DataCore-VietNam
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/DataCore-VietNam/datacore-a2a-mcp
- Updated: 2026-10-23
- HTML: https://affpapa.org/en/nevibecode/mcp/datacore-a2a

## What it does

The package acts as a local bridge forwarding stdio commands from your AI client to DataCore API endpoints via HTTPS. Tool definitions generate dynamically from the gateway at startup rather than remaining hardcoded. By default, four read-only operations are active: administrative address parsing into province and ward, geographic validation, registry company search and vector generation.

No records are altered or deleted during tool runs. You need Python 3.9+ and an active account on `datacore.vn`. Supplying `DATACORE_A2A_URL` along with either `DATACORE_API_KEY` or `DATACORE_MANDATE` is mandatory; missing credentials cause the server process to exit immediately on launch.

## Requirements
- Needs: Python and uv (commands run via uvx)
- Environment variables: `DATACORE_A2A_URL`, `DATACORE_MANDATE`, `DATACORE_SKILLS`, `DATACORE_TIMEOUT` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env DATACORE_A2A_URL=<DATACORE_A2A_URL> --env DATACORE_MANDATE=<DATACORE_MANDATE> --env DATACORE_SKILLS=<DATACORE_SKILLS> --env DATACORE_TIMEOUT=<DATACORE_TIMEOUT> --transport stdio datacore-a2a -- uvx datacore-a2a-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from datacore-a2a-mcp <command>

### Codex

**Platform CLI**
```bash
codex mcp add datacore-a2a --env DATACORE_A2A_URL=<DATACORE_A2A_URL> --env DATACORE_MANDATE=<DATACORE_MANDATE> --env DATACORE_SKILLS=<DATACORE_SKILLS> --env DATACORE_TIMEOUT=<DATACORE_TIMEOUT> -- uvx datacore-a2a-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from datacore-a2a-mcp <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "datacore-a2a": {
            "command": "uvx",
            "args": [
                "datacore-a2a-mcp"
            ],
            "env": {
                "DATACORE_A2A_URL": "<DATACORE_A2A_URL>",
                "DATACORE_MANDATE": "<DATACORE_MANDATE>",
                "DATACORE_SKILLS": "<DATACORE_SKILLS>",
                "DATACORE_TIMEOUT": "<DATACORE_TIMEOUT>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from datacore-a2a-mcp <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "datacore-a2a": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "datacore-a2a-mcp"
            ],
            "env": {
                "DATACORE_A2A_URL": "<DATACORE_A2A_URL>",
                "DATACORE_MANDATE": "<DATACORE_MANDATE>",
                "DATACORE_SKILLS": "<DATACORE_SKILLS>",
                "DATACORE_TIMEOUT": "<DATACORE_TIMEOUT>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from datacore-a2a-mcp <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e DATACORE_A2A_URL=<DATACORE_A2A_URL> -e DATACORE_MANDATE=<DATACORE_MANDATE> -e DATACORE_SKILLS=<DATACORE_SKILLS> -e DATACORE_TIMEOUT=<DATACORE_TIMEOUT> datacore-a2a uvx datacore-a2a-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from datacore-a2a-mcp <command>

## When to use it
- normalize Vietnamese street addresses into province and ward levels
- verify location validity against official administrative records
- retrieve enterprise records by tax identifier or legal name
- calculate vector embeddings for industry descriptions

## Example prompts
- Normalize this address into province, district, and ward: So 1 Ly Thai To, Hoan Kiem, Ha Noi
- Check company details and active status for tax ID 0100109106
- Generate embeddings for wholesale electronics trade and output vector dimensions

## Similar
- [World Monitor](https://affpapa.org/en/nevibecode/mcp/world-monitor.md) — MCP server · ★ 89609
- [Scrapling MCP Server](https://affpapa.org/en/nevibecode/mcp/scrapling-mcp-server.md) — MCP server · ★ 89899
- [MCP Toolbox for Databases](https://affpapa.org/en/nevibecode/mcp/googleapis-mcp-toolbox-for-databases.md) — MCP server · ★ 16730
- [PostHog MCP Server](https://affpapa.org/en/nevibecode/mcp/posthog-mcp-server.md) — MCP server · ★ 40459
- [dbx](https://affpapa.org/en/nevibecode/mcp/dbx.md) — MCP server · ★ 27844
- [Metabase](https://affpapa.org/en/nevibecode/mcp/metabase.md) — MCP server · ★ 49863

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
