Skip to content

feat(mcp): add Hy3 data analyst server#134

Open
dujunjin wants to merge 1 commit into
Tencent-Hunyuan:rhinobird2026from
dujunjin:agent/issue3-hy3-data-analyst
Open

feat(mcp): add Hy3 data analyst server#134
dujunjin wants to merge 1 commit into
Tencent-Hunyuan:rhinobird2026from
dujunjin:agent/issue3-hy3-data-analyst

Conversation

@dujunjin

Copy link
Copy Markdown

Summary

  • add a stdio MCP server for CSV, JSON, JSONL, and NDJSON analysis powered by Hy3
  • expose three documented tools: profile_dataset, analyze_dataset, and generate_data_report
  • add path confinement, file/row/sample limits, environment-only credentials, and API-key redaction
  • include one-command uv installation, bilingual documentation, client configs, sample data, and a demo GIF

Why

This implements the data-analysis scenario from #3. MCP clients can inspect a dataset locally, ask Hy3 evidence-grounded questions, and generate a structured Markdown report without hard-coded credentials or public deployment.

Client integration

  • WorkBuddy 2.115.0 bundled CodeBuddy CLI: loaded the server and called profile_dataset
  • MCP Python SDK ClientSession: initialized over stdio, listed all three tools, and called profile_dataset
  • project-level templates included for CodeBuddy, WorkBuddy, and Cursor

The sample CSV returned 6 scanned rows, 6 columns, and one missing value in units in both client checks.

Hy3 Data Analyst MCP demo

Validation

  • uv run --no-sync ruff check .
  • uv run --no-sync pytest — 17 passed
  • uv run --no-sync python scripts/check_mcp.py
  • source distribution and wheel build successfully
  • all client JSON templates parse successfully

The local validation environment did not provide a reachable Hy3 endpoint or API key. The Hy3 path is covered by mocked integration tests that verify the OpenAI-compatible request payload, reasoning mode, grounded dataset context, response handling, and client cleanup.

Install

cd mcp-servers/hy3-data-analyst
uv tool install .

Addresses #3.

@dujunjin
dujunjin marked this pull request as ready for review July 23, 2026 10:22
@dujunjin dujunjin closed this Jul 23, 2026
@dujunjin dujunjin reopened this Jul 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant