Stars Cash Flow MCP Server
Provides a Hermes skill and CLI that enables the Hermes Agent to interact with the Stars Cash Flow API for managing Telegram-based orders, including order placement with confirmation and cancellation.
Allows interaction with the Stars Cash Flow reseller API to manage Telegram actions such as channel subscribers, boosts, and bot starts. Provides tools for listing services, checking balance, placing orders (with cost confirmation), order status, and cancellation.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Stars Cash Flow MCP Servercheck my balance"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Stars Cash Flow — MCP server, AI skill & Hermes tool
Buy and manage real Telegram Stars CPA / SMM orders — channel subscribers, boosts and bot starts — straight from Claude, ChatGPT, or any AI agent.
Drive the Stars Cash Flow reseller API from any AI agent. Stars Cash Flow is a CPA exchange for real Telegram actions — channel subscribers, boosts and bot starts fulfilled by verified real users, not bots. The API is JustAnotherPanel / Perfect-Panel compatible, so it drops into any existing SMM-panel integration.
One API contract, three first-class surfaces:
Surface | Path | For |
MCP server (TypeScript) |
| Claude Desktop, Claude Code, any MCP host |
Universal skill | Claude Code skills, ChatGPT Custom GPT Actions | |
Hermes skill + CLI | Hermes Agent, or any shell |
Highlights
🤝 Drop-in compatible — JustAnotherPanel / Perfect-Panel API; swap URL + key.
🔒 Money-safe by design — ordering and cancelling are two-step; nothing spends or refunds without explicit confirmation.
🧩 Works everywhere — MCP for Claude, an OpenAPI action for ChatGPT, a skill + zero-dependency CLI for Hermes and any shell.
📘 Fully documented — API reference, quickstart, FAQ, error reference, runnable examples.
✅ Tested & typed — TypeScript client, vitest suite, CI on Node 18/20/22, published with provenance.
Related MCP server: Telegram MCP Server
Documentation
📘 API reference — every action, field and guarantee
🚀 Quickstart — set up each surface in minutes
❓ FAQ — common questions
⚠️ Error reference — every error message and fix
🧪 Examples — runnable curl / Python / Node
The API in 30 seconds
POST https://api-stars.ros.media/api/v2 — form-encoded, dispatched on action:
action | fields | returns |
| — | catalog (id, name, USD rate /1000, min, max) |
|
|
|
|
|
|
|
|
|
|
|
|
Get an API key from @StarsCashFlowbot →
Reseller. Everything except services needs the key; the key holds a USD
balance. Rate limit: 60 req/min/key.
🔴 Money safety
add debits real USD. Every surface here prices the order first and refuses to
spend without explicit confirmation:
MCP —
create_orderandcancel_orderare two-step: the first call returns a preview (cost estimate / what would be cancelled); they only act when called again withconfirm: true.CLI —
order/cancelprint an estimate and do nothing unless--confirm.Skill — instructs the agent to price, show the cost, and get a "yes" first.
Never hardcode or print the key — read it from STARS_CASH_FLOW_API_KEY.
Install — MCP server
Once published:
npx -y @rosmedia/stars-cash-flow-mcpOr from source:
git clone https://github.com/govRosMedia/stars-cash-flow-mcp.git
cd stars-cash-flow-mcp
npm install && npm run buildRegister in an MCP host (claude_desktop_config.json / .mcp.json):
{
"mcpServers": {
"stars-cash-flow": {
"command": "npx",
"args": ["-y", "@rosmedia/stars-cash-flow-mcp"],
"env": {
"STARS_CASH_FLOW_API_KEY": "your-key",
"STARS_CASH_FLOW_API_BASE": "https://api-stars.ros.media/api/v2"
}
}
}
}Tools: list_services, get_balance, create_order (confirm-gated),
order_status, cancel_order.
See the Quickstart for ChatGPT and Hermes setup.
Use the typed client directly
import { StarsCashFlowClient } from "@rosmedia/stars-cash-flow-mcp";
const client = new StarsCashFlowClient(); // reads STARS_CASH_FLOW_API_KEY
const services = await client.listServices();
const cost = StarsCashFlowClient.cost(services[0], 1000); // USDDevelopment
npm install
npm run build # tsc → dist/
npm test # vitest
npm run typecheck # tsc --noEmitCI runs build + tests on Node 18/20/22. See CONTRIBUTING.md.
License
MIT © Stars Cash Flow
Available Tools
5 toolscancel_orderCancel order (refunds remainder)A
Cancel one or more orders. The unfulfilled remainder is refunded to the key's USD balance. Pass orders as a list of order IDs.
| Name | Required | Description | Default |
|---|---|---|---|
| orders | Yes | Order IDs to cancel |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given no annotations, the description reveals the refund behavior ('unfulfilled remainder is refunded to the key's USD balance'). This adds context beyond the input schema, though it omits details like irreversibility or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, focused sentences with no filler. The critical information (cancellation and refund) is front-loaded, and the parameter usage is clearly stated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has low complexity and no output schema, but the description fails to mention constraints like whether fully fulfilled orders can be cancelled or if partial cancellations are supported. The refund detail is helpful but leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'orders' has 100% schema coverage with description. The description adds 'Pass orders as a list of order IDs', which reiterates the schema. No additional semantic information is provided beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool cancels orders and refunds the unfulfilled remainder, using a specific verb ('Cancel') and resource ('orders'). It distinguishes from siblings like 'create_order' and 'order_status' by focusing on cancellation and refund.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when or when not to use the tool, nor does it compare with sibling tools. It implies usage via the verb 'cancel' but lacks guidance on scenarios like already fulfilled orders.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_orderCreate order (spends balance)A
Place a Stars Cash Flow order. THIS SPENDS the key's USD balance. Two-step by design: call without confirm (or confirm=false) to get a cost estimate and validation; call again with confirm=true to actually place the order. link is the target channel/post/bot link (required for most services).
| Name | Required | Description | Default |
|---|---|---|---|
| link | Yes | Target link (channel/post/bot). Required for most services. | |
| confirm | No | Must be true to actually place the order and spend balance. Omit/false = estimate only. | |
| service | Yes | Service ID from list_services | |
| quantity | Yes | Quantity of units to order |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Highlights key behavioral trait 'THIS SPENDS the key's USD balance'. Explains two-step idempotency pattern. No annotations provided, but lacks details on auth or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose and key warning. No filler, efficient and direct.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Explains two-step process, spends balance, required fields. No output schema, but missing return value description is acceptable. Adequate for use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage 100%, but description adds context: explains confirm as two-step toggle and link as 'target channel/post/bot link', beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Title explicitly states 'spends balance', description specifies 'Stars Cash Flow order' and distinguishes from siblings (cancel, balance, list, status). Clear verb+resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit two-step design: call without confirm for estimate, then with confirm=true to place order. No alternatives among siblings, but usage pattern is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_balanceGet balanceA
Get the remaining USD balance of the configured reseller API key.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It correctly indicates a read operation (get balance), but does not disclose additional behavioral traits such as authentication requirements, rate limits, or whether the balance is real-time.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single 11-word sentence that is perfectly concise and front-loaded with the key action 'Get the remaining USD balance'. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters or output schema, the description is largely sufficient. It could mention whether the balance is cached or requires authentication, but for a simple query it is complete enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description adds no parameter meaning beyond what the schema provides. Baseline score of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves the remaining USD balance of the configured reseller API key, specifying the resource (balance), currency (USD), and scope (configured reseller API key). It distinguishes effectively from sibling tools that deal with orders and services.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for checking available funds, but does not explicitly state when to use versus alternatives (e.g., before creating an order). It provides clear context for its intended use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_servicesList servicesA
List the Stars Cash Flow service catalog with live USD rates (per 1000), min/max quantity and whether each service needs a link. No API key required. Use this to discover service IDs and price an order before calling create_order.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It accurately describes a read-like listing operation with live rates and no API key requirement. While it doesn't explicitly state 'read-only', the context implies no destructive behavior. The description adds useful behavioral context beyond the empty schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. The first sentence states the purpose and key data points; the second provides usage context. Information is front-loaded and efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, no output schema, and the presence of sibling tools like 'create_order' and 'get_balance,' the description is complete. It explains the tool's role in the workflow (discovery before ordering) and all necessary details for an AI agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, and schema coverage is 100% trivially. The description adds meaning by detailing what the output contains (rates per 1000, min/max, link requirement), compensating for the lack of a structured output schema. It clarifies the semantic value of the tool beyond the empty input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('Stars Cash Flow service catalog'), and explicitly mentions the key attributes (live USD rates, min/max quantity, link requirement). It clearly distinguishes itself from sibling tools like 'create_order' and 'get_balance' by positioning itself as a discovery tool for pricing orders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this to discover service IDs and price an order before calling create_order,' providing clear when-to-use guidance. It also states 'No API key required,' a prerequisite. It does not mention when not to use it or alternatives, but given zero parameters and a straightforward purpose, this is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
order_statusOrder statusA
Get the status of one or more orders. Pass a single order or a list of orders (up to 100). Returns charge, start_count, status, remains.
| Name | Required | Description | Default |
|---|---|---|---|
| order | No | Single order ID | |
| orders | No | Multiple order IDs (up to 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must carry the full burden. It implicitly indicates a read operation ('Get the status') and lists returned fields, but it does not explicitly state that the tool is read-only, idempotent, or free of side effects. This is adequate but could be more transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, each serving a clear purpose: defining the function and detailing parameters and return values. No redundant words; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, no output schema, no nested objects), the description covers core functionality well. It could benefit from explaining the meaning of the return fields (charge, start_count, status, remains), but the context is sufficient for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds value by explaining that 'orders' accepts up to 100 IDs and that either 'order' or 'orders' can be used. This extra context goes beyond the schema's basic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'status of one or more orders', and specifies how to pass orders (single or list). It lists the returned fields, making the purpose unambiguous and distinct from sibling tools like cancel_order or create_order.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for retrieving order status but does not explicitly state when to use it over alternatives. No guidance on when not to use or context for distinguishing from siblings, though the purpose is clear enough for basic use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose: listing services, checking balance, placing orders, canceling orders, and checking status. No two tools overlap in functionality.
All tool names follow a consistent verb_noun pattern using snake_case (e.g., create_order, list_services, get_balance), making them predictable and easy to understand.
With 5 tools, the set is well-scoped for the service's purpose, covering all essential operations without unnecessary bloat. Each tool serves a clear role.
The tool set covers the full lifecycle: discovery (list_services), funding (get_balance), ordering (create_order), cancellation (cancel_order), and tracking (order_status). No obvious gaps for the intended domain.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Verified, pay-per-use API tools for AI agents through one authenticated connection.
Monetize and manage your Tip4Serv store directly from your LLM.
Directory of APIs, merchants, and tools AI agents can actually use.
Stripe payments for AI agents. Create links, verify, manage customers.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI agents to send and receive messages, media, and files on Telegram, and manage chats via a bot token.17MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with the Telegram Bot API, allowing them to send messages, forward messages, get bot information, and receive updates.293MIT
- AlicenseAqualityBmaintenanceEnables AI agents to purchase Telegram Stars, Premium, and TON top-ups by building unsigned transactions for the agent's TON wallet to sign.11162MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to interact with a user's Telegram account: list chats, read history, search, and send messages through Telegram's MTProto API.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/govRosMedia/stars-cash-flow-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server