Stream
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| STREAM_API_KEY | Yes | Your Stream API key | |
| STREAM_TIMEOUT | No | Request timeout (seconds) | 30 |
| STREAM_BASE_URL | No | API base URL | https://stream-app-service.streampay.sa |
| STREAM_MAX_RETRIES | No | Retry count for 429 / 5xx | 2 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_payment_linkB | Create a new payment / checkout link on Stream. items is a list of objects, each containing:
You cannot mix one-time and recurring products in the same link. |
| list_payment_linksC | List all payment links with optional filters. statuses can include: INACTIVE, ACTIVE, COMPLETED. |
| get_payment_linkB | Retrieve a single payment link by its ID. |
| deactivate_payment_linkB | Deactivate (archive) a payment link so it can no longer be used. |
| create_customerB | Create a new customer in Stream. Provide at least a name. Optionally include phone_number, email, external_id, iban, alias, comment, preferred_language (EN/AR), and communication_methods (WHATSAPP, EMAIL, SMS). |
| list_customersC | List / search customers with pagination. Returns a paginated list of customers. |
| get_customerB | Get a single customer record by ID. |
| update_customerC | Update fields on an existing customer. Only the fields you provide will be changed; others remain untouched. |
| delete_customerA | Soft-delete a customer by ID. The customer record is archived but not permanently removed. |
| create_productC | Create a new product or service in Stream. type is |
| list_productsB | List products with optional filters. type can be |
| get_productB | Get a single product by ID. |
| update_productB | Update an existing product's name, description, or active status. Only the fields you provide will be changed. |
| archive_productA | Archive a product so it can no longer be sold. This is a soft-delete; the product record is retained for history. |
| list_paymentsB | List payments with optional filters. Filter by statuses (PENDING, PROCESSING, SUCCEEDED, FAILED, CANCELED, UNDER_REVIEW, EXPIRED, SETTLED, REFUNDED), invoice_id, search_term, or a date range (from_date / to_date in ISO-8601). |
| get_paymentA | Get details of a single payment by ID. Returns amount, status, payment method, customer info, and more. |
| mark_payment_as_paidB | Manually mark a payment as paid. Record a payment received through manual methods. payment_method must be one of: CASH, BANK_TRANSFER, CARD, or QURRAH. |
| refund_paymentB | Issue a refund on a completed payment. refund_reason must be one of: REQUESTED_BY_CUSTOMER, DUPLICATE, FRAUDULENT, OTHER. |
| create_couponB | Create a new discount coupon on Stream. Set is_percentage to True for percentage discount, False for fixed amount. For fixed coupons, currency is required (e.g. SAR, USD). |
| list_couponsB | List all coupons with optional filters. active filters by active/inactive status. is_percentage filters by discount type. |
| get_couponB | Get a single coupon by ID. |
| deactivate_couponB | Deactivate a coupon so it can no longer be redeemed. |
| create_invoiceA | Create a ZATCA-compliant invoice in Stream. items is a list of line-item dicts, each with:
scheduled_on is the ISO-8601 date-time for when the invoice is due/sent. Set notify_consumer to True to send the invoice to the customer. |
| list_invoicesB | List invoices with optional filters. Filter by organization_consumer_id, statuses (DRAFT, CREATED, SENT, ACCEPTED, REJECTED, COMPLETED, CANCELED, EXPIRED), payment_statuses (PENDING, PROCESSING, SUCCEEDED, FAILED, etc.), or a date range. |
| get_invoiceB | Get a single invoice by ID. |
| send_invoiceB | (Re)send an invoice to the customer via email / SMS. |
| void_invoiceA | Void (cancel) an unpaid invoice. Once voided, the invoice can no longer be paid. |
| list_stream_docsA | List all available Stream documentation pages. Pages are auto-discovered from the Stream docs sitemap. Returns slug, URL, and resource URI for each page. Use the slug with get_stream_doc to fetch the full content. |
| get_stream_docA | Fetch the content of a Stream documentation page by slug. Slugs are auto-discovered from the sitemap. Call list_stream_docs first to see what's available, or pass a slug directly if you already know it (e.g. 'getting-started', 'testing-cards', 'webhooks', 'authentication', etc.). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| get_openapi_spec | Returns the full Stream OpenAPI JSON spec for agent reference. Fetched from https://docs.streampay.sa/openapi.json and cached for 1 hour. |
TDQS
Scored across 29 tools
Most tools have distinct purposes targeting specific resources (e.g., customers, invoices, payments) with clear actions. However, some overlap exists: 'archive_product' and 'deactivate_payment_link' both perform soft-deletes, and 'send_invoice' could be confused with 'create_invoice' with notify_consumer=True. The descriptions help clarify, but there is minor ambiguity.
Tool names follow a highly consistent verb_noun pattern throughout (e.g., create_customer, get_invoice, list_payments, update_product). All tools use snake_case with clear, descriptive verbs, making the set predictable and easy to navigate.
With 29 tools, the count feels heavy for an e-commerce/payment processing server. While the domain is broad, many tools are variations (e.g., multiple list/get/update operations) that could potentially be consolidated. It's borderline but manageable, leaning toward slightly excessive.
The tool set provides comprehensive CRUD and lifecycle coverage for core resources like customers, products, invoices, payments, and coupons. It includes creation, retrieval, listing, updating, archiving/deactivation, and specific actions like refunding or voiding, with no obvious gaps for the stated domain.