dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
Read-only Stripe billing and customer tools for DeepSeek Harness with Restricted API Key support
A read-only Stripe billing and customer plugin for DeepSeek Harness (dsh). It gives agents bounded visibility into account status, customers, products, subscriptions, invoices, and payment intent outcomes.
The plugin is deliberately read-only. It never creates, updates, cancels, refunds, or deletes Stripe resources, and it does not return card, payment method, client secret, raw metadata, invoice PDF, or hosted invoice URL fields.
npm install @libai168/dsh-tool-stripe
Use a Stripe Restricted API Key with read-only permissions, preferably an rk_test or rk_live key scoped to only the resources this deployment needs. Do not use a full secret key when a restricted key is sufficient, and never commit a key.
- name: '@libai168/dsh-tool-stripe'
config:
apiKey: 'rk_test_replace_with_a_read_only_key'
# baseUrl: 'https://api.stripe.com'
# apiVersion: '2025-06-30.basil'
# timeoutMs: 15000
The client uses Stripe's Basic authentication and cursor pagination. Full example: examples/cordis.yml.
The baseUrl override must be an absolute http:// or https:// root URL. Only publicly reachable hosts are allowed: localhost, loopback, private, link-local, CGNAT, multicast, reserved/documentation/benchmark ranges, and every IANA special-purpose block are rejected, and a hostname whose DNS results contain any such address fails closed before the request is sent. Credentials, query strings, fragments, and non-root paths are not allowed.
| Tool | Description | Access |
|---|---|---|
| stripe_auth_test | Verify the key and return safe account status fields | read |
| stripe_list_customers | List customers with an optional email filter | read |
| stripe_list_products | List active/inactive products without raw metadata | read |
| stripe_list_prices | List prices by product, active state, type, or currency without raw metadata | read |
| stripe_list_subscriptions | List subscriptions by customer, status, or price | read |
| stripe_list_invoices | List invoices and bounded amount/status fields | read |
| stripe_list_payment_intents | List payment outcomes without card or client-secret fields | read |
Every list uses Stripe cursor pagination with limit, starting_after, and ending_before. Limits are clamped to 1-100.
stripe_list_prices returns only an allowlisted view of each Price: ID, product, currency, integer/decimal unit amount, active state, type, recurring interval, billing scheme, tax behavior, nickname, and creation time. It does not return metadata, tiers, transform quantities, payment links, or secret fields.
stripe_list_prices({ productId: 'prod_id', active: true, type: 'recurring', currency: 'usd', limit: 20 })
The model can start with stripe_auth_test, then use list tools with a small limit. It should pass the nextCursor returned by the previous page as starting_after. List outputs contain identifiers, statuses, timestamps, amounts, and currencies; they do not contain payment credentials or raw Stripe objects.
npm install
npm run typecheck
npm test
npm run build
npm pack --dry-run
See DEVELOPMENT.md for endpoint mapping and release checks.