Skip to content

feat: add Baizhi Agent Toolkit MCP integration - #599

Draft
ct-jaryn wants to merge 1 commit into
OpenHands:mainfrom
ct-jaryn:JarynAI/baizhi-mcp-catalog
Draft

ct-jaryn wants to merge 1 commit into
OpenHands:mainfrom
ct-jaryn:JarynAI/baizhi-mcp-catalog

Conversation

@ct-jaryn

@ct-jaryn ct-jaryn commented Sep 17, 2026

Copy link
Copy Markdown
  • A human has tested these changes.

Why

Make Baizhi Agent Toolkit discoverable through the existing OpenHands MCP integration catalog, with a fixed remote endpoint and the host's existing API-key input. This is a catalog contribution, not a new MCP client, local proxy, model provider, or application-specific implementation.

I maintain the Baizhi Cloud Agent Toolkit integrations and coordinate product operations, and am contributing through ct-jaryn on behalf of Baizhi Cloud. We would welcome your feedback on catalog suitability and ongoing compatibility.

Summary

  • Add one baizhi-agent-toolkit JSON entry using Streamable HTTP (shttp) and required bearer authentication, with console/docs links and account, credit, and tool-scope guidance.
  • Regenerate the shared JavaScript catalog index; Python consumes the same JSON source.
  • Add a contract test for the endpoint, authentication requirements, console link, disclosures, and absence of an additional automation-secret copy.

Issue Number

Refs #598. Please triage the request under the repository's enhancement/readiness process. This PR remains a draft; submission is not a claim that the issue has received maintainer approval or the ready-for-dev label.

The readiness bot reports that the issue needs its enhancement classification. My account cannot add that label (AddLabelsToLabelable permission denied), so maintainer triage is needed; the local body check passes when evaluated as an enhancement.

How to Test

From this branch, using the repository's documented test environment:

npm run build:integrations
uv sync --group test
uv run pytest -q tests/test_catalogs.py tests/test_catalog_schema.py tests/test_integration_catalog_in_sync.py

Locally passed against base 3b31849893dbd665e7bfd92afc313524cccef7f6:

  • Catalog generation and all 117 tests in those three modules, using Node.js 22.22.2 and an existing isolated Python 3.12.14 environment with pytest 9.1.1, Pydantic 2.13.4, and jsonschema. uv was not available locally; the uv setup above is the repository's reproduction route, not a command claimed to have been run.
  • Explicit Baizhi lookup through the JavaScript and Python APIs: included by the MCP filter and excluded by the OAuth-only filter.
  • Independent read-only review and byte-for-byte generated-index verification.
  • 7 isolated React component behavior groups passed using the unchanged install modal and its option-selection/secret-saving helpers from the fixed Agent Canvas revision below. Source Git blobs were verified; React 19.2.8 matches that revision. Checks cover password/required/fixed-URL properties, no automatic submission, cancellation, blank and whitespace-only rejection, trimmed Bearer payload, fixed-URL defense, test/save failures, fresh-mount state, and no extra Secrets copy. Visual primitives, translations, network/storage mutations, and backend context are test doubles; this is not browser or persistence acceptance testing. Only synthetic values were used, with no network requests. react-test-renderer is deprecated and Node's VM module support is experimental; these harness limitations remain disclosed.

For the installation check, use a supported Agent Canvas development build consuming this catalog revision:

  1. Select Baizhi Agent Toolkit in the MCP catalog. Follow the console link to obtain a personal key; do not put a real key in screenshots, logs, configuration examples, or review comments.
  2. Confirm the endpoint is fixed, the key field is masked, and blank input cannot install the server. Cancel once and confirm existing server settings remain unchanged.
  3. Enter only the key, without Bearer, and explicitly install. Confirm successful discovery on the actual backend, then inspect the tool list before use. A Cloud-side synthetic success result is not connection evidence.
  4. Review all discovered capabilities and costs. This entry does not constrain the server to three tools; any tool invocation is separate from discovery and can consume service credits.
  5. Verify reload, key replacement, authentication failure, and removal. Revoke the test key in the Baizhi console afterward; deleting a local connection is not provider-side revocation.

The install-modal source was reviewed at OpenHands/OpenHands@9737f713616a1e452f822c2967f0e2c8bf2dc308: it provides a password field, required-key validation, fixed-URL handling, and explicit submission for this catalog shape. The complete Agent Canvas UI flow, credential persistence, production MCP connection, and tool execution have not been run for this contribution. No real API key, model request, or paid tool was used. The full repository test suite was not run.

Video/Screenshots

Not supplied: the UI acceptance checks above are still pending. The human-test checkbox is intentionally unchecked.

Notes

Baizhi is a hosted commercial service requiring each user's own account and API key. Tool inputs are sent to the hosted service; users should review their data-handling requirements and service costs before connecting. The linked integration repository publishes configuration, documentation, and tests, not the hosted backend source.

The entry does not set a popularity rank, enable tools for existing users, add automatic approval, or duplicate the credential into an automation secret. The existing host owns credential persistence; this PR does not claim that a masked field proves a particular encryption or storage guarantee.

Landing in this repository is distinct from publishing a package and an Agent Canvas release consuming it. We are happy to maintain the entry and complete compatibility checks with reviewers. This proposal does not imply OpenHands endorsement or an established partnership.

@github-actions github-actions Bot added the type: feat A new feature label Sep 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: feat A new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant