RongCloud MCP Server
OfficialClick 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., "@RongCloud MCP ServerRegister user Alice and get her token."
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.
Ronngcloud MCP Server
π δΈζη README
π Project Overview
rongcloud-server-mcp-python is an MCP server built on the FastMCP framework, integrating RongCloud instant messaging services. It supports user management, message sending, group operations, and more.
Related MCP server: lark-mcp
β¨ Tools
Tool | Description |
| Register a new user via RongCloud and return the user's token |
| Retrieve user information using RongCloud |
| Sends private messages and returns generated message IDs mapped to each recipient user ID |
| Sends group messages and returns generated message IDs mapped to each target group ID |
| Retrieves historical private messages between two users within a specified time range |
| Creates a new group chat in RongCloud with specified members |
| Permanently deletes a group chat from RongCloud |
| Retrieves the complete member list of an existing group chat in RongCloud |
| Adds one or more users to a specified group chat via RongCloud |
| Removes one or more users from a RongCloud group chat |
| Get the current time in milliseconds since Unix epoch (January 1, 1970 UTC). |
βοΈ Configuration
π§ Environment Variables
Variable Name | Required | Default | Description |
| β Yes | - | RongCloud Application App Key |
| β Yes | - | RongCloud Application App Secret |
| β No |
| RongCloud API base URL |
| β No |
| API request timeout (seconds) |
| β No |
| Log level (e.g., DEBUG, INFO) |
π§ͺ Example Configuration
RONGCLOUD_APP_KEY=your_app_key
RONGCLOUD_APP_SECRET=your_app_secret
RONGCLOUD_API_BASE=https://api-cn.ronghub.com
RONGCLOUD_API_TIMEOUT=10
FASTMCP_LOG_LEVEL=WARNINGπ» Claude Desktop Configuration
Config file paths:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%/Claude/claude_desktop_config.json
Example configuration:
{
"mcpServers": {
"rongcloud-server-mcp": {
"command": "uvx",
"args": [
"rongcloud-server-mcp-python"
],
"env": {
"RONGCLOUD_APP_KEY": "your_app_key",
"RONGCLOUD_APP_SECRET": "your_app_secret",
"RONGCLOUD_API_BASE": "https://api-cn.ronghub.com",
"RONGCLOUD_API_TIMEOUT": "10"
}
}
}
}π§βπ» Development Guide
π Quick Start
Clone the repository and enter the project directory:
git clone https://github.com/your-username/rcloud-server-mcp-python.git cd rcloud-server-mcp-pythonCopy example environment file and edit variables:
cp .env.example .envEdit
.envfile to set:RONGCLOUD_APP_KEY=your_app_key RONGCLOUD_APP_SECRET=your_app_secret RONGCLOUD_API_BASE=https://api-cn.ronghub.com FASTMCP_LOG_LEVEL=INFOCreate virtual environment, install dependencies, and start development server:
make venv make sync make install make dev
π‘ Run
make helpto see all available commands.
β Running Tests
make test # Run all tests
make lint # Check code style and quality
make fix # Auto-fix formatting issuesπ€ Contribution Guide
Contributions are welcome! Please follow these steps:
Fork the repository
Create a feature branch:
git checkout -b feature/YourFeatureCommit your changes:
git commit -m 'Add YourFeature'Push the branch:
git push origin feature/YourFeatureOpen a Pull Request
Please ensure the following before submitting:
No errors with
make lintAll tests pass with
make testCode is properly formatted with
make format
π License
This project is licensed under the MIT License.
Available Tools
11 toolscreate_groupB
Creates a new group chat in RongCloud with specified members.
| Name | Required | Description | Default |
|---|---|---|---|
| user_ids | Yes | List of user IDs to join the group, max 1000 users. | |
| group_id | Yes | Group ID, max length 64 characters. Supports letters and numbers. | |
| group_name | Yes | Group name, max length 128 characters. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It only says 'Creates a new group chat' without disclosing important behavioral traits such as whether group_id must be unique, what happens if the group already exists, permission requirements, or any side effects.
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 concise sentence that communicates the core purpose efficiently. It is well-structured and easy to read, though it could be slightly more detailed without becoming verbose.
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 lack of output schema and annotations, the description covers the basic action but misses contextual details like return values, error handling, or how the group creation result can be accessed. The presence of sibling tools like get_group_members partially mitigates this, but the description remains slightly incomplete for a creation operation.
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 description coverage is 100% for all three parameters (user_ids, group_id, group_name), each with clear constraints and descriptions. The tool description adds no additional meaning beyond what is already in the schema, so a baseline score of 3 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 'Creates a new group chat in RongCloud with specified members.' This is a specific verb (creates) + resource (group chat) and includes the platform name, distinguishing it from sibling tools like dismiss_group, join_group, or quit_group which perform different actions.
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 provides no guidance on when to use this tool versus alternatives. For example, it does not differentiate between creating a new group and joining an existing one, nor does it mention prerequisites or scenarios where this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dismiss_groupB
Permanently deletes a group chat from RongCloud.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | Operator's user ID. | |
| group_id | Yes | Group ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
States 'Permanently deletes' indicating irreversibility, but lacks details on side effects (e.g., member removal, message deletion) or required permissions. With no annotations, this is insufficient.
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?
Single concise sentence that includes key behavioral info ('Permanently') without fluff. Could be slightly improved by front-loading action verb.
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?
Lacks mention of return value or confirmation of deletion. For a destructive operation with no output schema, more context on outcomes or error handling is expected.
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% and parameters have descriptions. Tool description does not add meaning beyond schema, so baseline 3 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?
Description uses specific verb 'deletes' and resource 'group chat' with platform 'RongCloud'. Clearly distinguishes from sibling tools like quit_group (leaving vs deleting) and create_group.
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?
No guidance on when to use this tool vs alternatives (e.g., quit_group). Does not specify prerequisites like authorization or ownership.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_current_time_millisA
Get the current time in milliseconds since Unix epoch (January 1, 1970 UTC).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, but the description correctly implies a read-only, non-destructive operation. However, it does not specify if the time is from server or client, or if caching occurs.
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?
Single sentence with no unnecessary words, clearly conveying purpose and format.
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?
No output schema, so description should ideally specify return type. It implies a number but could be more explicit about the exact format (e.g., integer).
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?
No parameters exist; schema covers 100%. Description adds no parameter info, but baseline for 0 parameters is 4.
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' and the specific resource 'current time in milliseconds since Unix epoch', which is unique among sibling tools focused on groups, users, and messages.
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?
No explicit guidance on when to use this tool or alternatives, but given its unique and simple purpose among siblings, the context implies it is for timestamp retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_group_membersA
Retrieves the complete member list of an existing group chat in RongCloud.
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes | Group ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It states 'retrieves' indicating a read-only operation, but does not disclose error behavior for invalid group_id, permission requirements, or any side effects. This is minimally adequate for a simple query.
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 sentence with no wasted words. It front-loads the verb and clearly communicates the tool's purpose and scope in an efficient manner.
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 low complexity (1 required param, no output schema), the description covers the basic functionality but omits what the return value looks like (e.g., an array of user objects or IDs). This could be improved for completeness.
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 description coverage is 100% for the single parameter 'group_id', which is described as 'Group ID'. The description adds no additional meaning or context beyond the schema, so it meets the baseline for high coverage without extra value.
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 the specific verb 'Retrieves' and noun 'complete member list of an existing group chat', clearly stating the tool's function. It distinguishes from sibling tools like create_group, dismiss_group, and others that perform different actions on groups.
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 usage context (retrieving members of an existing group) but provides no explicit when-to-use or when-not-to-use guidance relative to alternatives like get_user_info or get_private_messages. Usage is inferred from the tool's name and function.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_private_messagesA
Retrieves historical private messages between two users within a specified time range.The time range is defined by startTime (newest) and endTime (oldest),with endTime must be earlier than startTime.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | ID of the user whose messages are being queried | |
| target_id | Yes | ID of the other user in the private conversation | |
| end_time | No | End timestamp in milliseconds (default: 24 hours before end time) | |
| start_time | No | Start timestamp in milliseconds (must be later than endTime, default: current time) | |
| page_size | No | Number of messages per page (default: 50, max: 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose all behavioral traits. It mentions time range semantics but omits pagination, ordering, rate limits, or any side effects. This is insufficient for a retrieval tool.
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 concise at two sentences, with no unnecessary information. Minor awkward phrasing ('with endTime must be earlier than startTime') does not detract significantly.
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?
No output schema is provided, and the description does not explain the return format, pagination (page_size parameter exists), or ordering. This leaves an agent without enough context for reliable invocation.
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%, so the baseline is 3. The description adds value by clarifying the relationship between start_time and end_time (start is newest, end is oldest) and that both users are specified, reducing confusion.
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 historical private messages between two users within a time range, using a specific verb and resource. It distinguishes from sibling tools, which are group-related or message sending.
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?
Usage is implied for viewing message history, but no explicit guidance on when to use or when not, nor alternatives are mentioned. The context of sibling tools makes it relatively clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_user_infoC
Retrieve user information using RongCloud.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | User ID defined by the app. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but discloses no behavioral traits (e.g., auth requirements, rate limits, scope of returned data). It barely adds beyond the name.
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?
Single sentence, no wasted words. However, it is too brief and could include more context without losing conciseness.
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 no output schema, the description should explain what user information is returned. It does not, leaving agents uncertain about the response structure. For a 1-param tool, it is incomplete.
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% and the description adds no additional meaning to the parameter beyond the schema's 'User ID defined by the app.' Baseline 3 applies because schema already documents the param.
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 states 'Retrieve user information using RongCloud,' clearly identifying the action (retrieve) and resource (user information). It distinguishes from sibling tools which are group/message related, though not explicitly differentiating from register_user.
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?
No guidance on when to use this tool versus siblings like register_user, nor any conditions or exceptions. The description lacks context for appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
join_groupB
Adds one or more users to a specified group chat via RongCloud.
| Name | Required | Description | Default |
|---|---|---|---|
| user_ids | Yes | User IDs to add to the group. Up to 1000 users. | |
| group_id | Yes | Group ID | |
| group_name | No | Group name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It only states the action (adds) without mentioning side effects, permissions required, or error conditions. The platform mention is weak behavioral context.
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?
Efficient single sentence with clear structure. It could be slightly more informative without sacrificing conciseness, but it is not verbose.
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?
For a tool with 3 params and no output schema, the description is too brief. It omits details like the requirement that the group must exist, what happens on failure, or the return value.
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%, so the description adds no new meaning beyond the schema. Baseline 3 is appropriate; the description does not enhance parameter understanding.
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 action ('adds one or more users'), the target resource ('specified group chat'), and the platform ('via RongCloud'). It differentiates from sibling tools like 'create_group' and 'quit_group'.
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?
No guidance on when to use this tool versus alternatives, no prerequisites or exclusions mentioned. The description is purely functional.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
quit_groupB
Removes one or more users from a RongCloud group chat.
| Name | Required | Description | Default |
|---|---|---|---|
| user_ids | Yes | User IDs to remove from the group. Up to 1000 users. | |
| group_id | Yes | Group ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure, but it only states the basic action. It does not discuss required permissions, side effects (e.g., notifications), error handling, or constraints beyond the parameter 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?
The description is a single sentence of 10 words, front-loading the core purpose with no wasted text.
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 no annotations, no output schema, and two required parameters, the description is too minimal. It omits important context such as permission requirements, error scenarios, and the relationship to sibling tools.
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 description coverage is 100%, so the baseline is 3. The description does not add meaning beyond what the schema already provides for the two parameters.
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 'removes' and the resource 'users from a RongCloud group chat', distinguishing it from sibling tools like create_group, join_group, and dismiss_group.
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?
No guidance is provided on when to use this tool versus alternatives like dismiss_group or join_group. There is no mention of prerequisites (e.g., admin permissions) or conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_userC
Register a new user via RongCloud and return the user's token.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | User ID defined by the app to obtain a token. Supports a combination of uppercase and lowercase letters and numbers, with a maximum length of 64 bytes. | |
| name | Yes | User name used for push services. Supports any characters including symbols, English letters, and Chinese characters, limited to a maximum of 64 characters. | |
| portrait_uri | No | User avatar URI, maximum length 1024 bytes. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must disclose behavioral traits. It implies a mutation (registration) but does not mention permissions, side effects, rate limits, or what happens if the user already exists. The description is minimal and leaves critical behavioral aspects unknown.
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 sentence of 11 words, which is concise but lacks structure and front-loading. It is too terse to be helpful; for example, it does not explain the significance of 'return the user's token' or any ordering of information. The sentence earns its place but underspecifies.
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 3 parameters, no output schema, and no annotations, the description is insufficient. It does not explain the return value (token), preconditions, or error scenarios. It fails to provide complete context for the agent to invoke the tool safely and effectively.
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% with each parameter described (user_id, name, portrait_uri). However, the tool description adds no additional meaning beyond the schema, such as parameter relationships or format constraints. Baseline is 3 due to high schema coverage, but no extra value is provided.
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 'Register a new user via RongCloud and return the user's token' clearly states the action (register) and resource (user) with a specific outcome (return token). It distinguishes from sibling tools like 'get_user_info' (retrieval) and 'send_*' (messaging), though it does not explicitly call out those differences.
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 provides no guidance on when to use this tool vs. alternatives, nor does it mention prerequisites or scenarios to avoid. Sibling tools like 'create_group' or 'get_user_info' are related but no comparison is made.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_group_text_messageB
Send group text messages to one or multiple groups via RongCloud.
| Name | Required | Description | Default |
|---|---|---|---|
| from_user_id | Yes | Sender user ID. | |
| to_group_ids | Yes | Recipient group IDs. Supports up to 3 group IDs. When sending directed group messages, only one group ID is allowed. | |
| content | Yes | Message content. Max size: 128KB. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits, but it only states the basic action. It does not mention idempotency, delivery guarantees, potential errors, rate limits, or any side effects, leaving the agent with little insight into behavior.
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, direct sentence with no extraneous information. It is concise and well-structured, containing only the essential purpose.
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 lack of output schema and annotations, the description is insufficiently complete. It does not explain expected outcomes (e.g., success/error responses), constraints like maximum group count, or behavior for invalid inputs, which are critical for a messaging tool.
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 description coverage is 100%, so the baseline is 3. The tool description adds no additional semantic value beyond the schema's parameter descriptions, which are already clear (e.g., 'Sender user ID', 'Recipient group IDs' with constraints).
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 action ('Send'), the resource ('group text messages'), and the platform ('via RongCloud'). It effectively distinguishes from sibling tools like send_private_text_message by specifying the group context.
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?
No guidance is provided on when to use this tool versus alternatives such as send_private_text_message. There is no mention of prerequisites, context for usage, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_private_text_messageC
Send private text messages to one or multiple recipients via RongCloud.
| Name | Required | Description | Default |
|---|---|---|---|
| from_user_id | Yes | Sender user ID. | |
| to_user_ids | Yes | Recipient user IDs. Supports sending to multiple users, up to 1000 per call. | |
| content | Yes | Message content. Max size: 128KB |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fails to disclose behavioral traits like rate limits, delivery guarantees, error handling, or idempotency. The schema mentions max recipients (1000) and content size (128KB), but the description does not repeat or expand on these.
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 sentence, which is concise but omits important usage and behavioral details. It is front-loaded with the core purpose but lacks structure for additional guidance.
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 no output schema, the description should explain return values or confirmation behavior. It does not. Additionally, it lacks details on error states, prerequisites, or limitations beyond what the schema provides.
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 input schema has 100% description coverage for all three parameters. The description does not add additional meaning beyond what is already in the schema, so it meets the baseline for this dimension.
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 action (send), resource (private text messages), and platform (RongCloud). It distinguishes from sibling tools like send_group_text_message by specifying 'private' messages.
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?
No guidance is provided on when to use this tool versus alternatives, such as send_group_text_message for group messages or get_private_messages for retrieval. There is no mention of prerequisites or scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
11 tool updates
v0.1.0- First observed
create_group - First observed
dismiss_group - First observed
get_current_time_millis - First observed
get_group_members - First observed
get_private_messages - First observed
get_user_info - First observed
join_group - First observed
quit_group - First observed
register_user - First observed
send_group_text_message - First observed
send_private_text_message
TDQS
Each tool has a distinct purpose: group CRUD, messaging, user management, and a utility function. No two tools perform overlapping actions, and descriptions clearly differentiate them.
Most tools follow a consistent verb_noun pattern (e.g., create_group, send_private_text_message). However, get_current_time_millis breaks the pattern by using an adjective and unit, causing a minor inconsistency.
With 11 tools covering group management, messaging, and user management, the scope is well-calibrated for a chat API. No tool feels superfluous, and the count fits typical MCP server sizes.
Core operations like create/dismiss groups, join/quit, send messages, and retrieve history are covered. However, missing update group, delete user, edit/delete messages, and conversation listing create notable gaps that agents may encounter.
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
Messaging tools for AI agents: send messages, manage chats, groups and channels.
1Carbon Voice MCP serves as a bridge that connects AI assistants like ChatGPT, Claude, and Cursor to a user's Carbon Voice account, turning voice messages and conversations into a private, on-demand knowledge base. It provides 28 specialized tools for comprehensive voice messaging management, including creating and sending messages, accessing conversation history with instant transcription, running AI actions (summarization, TLDR generation, meeting notes), and managing workspace collaboration through folders, contacts, and team communications.
Give AI agents secure access to RevDesk calling, SMS, phone numbers, caller IDs, and usage.
MCP server for Sendbird β chat users, channels, members, and messages from your AI client.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Feishu/Lark platform APIs for automation scenarios including message management, document operations, calendar scheduling, group management, and Bitable operations through natural language.8,845MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Feishu/Lark Open Platform APIs for tasks like document processing, chat management, and calendar scheduling.8,845MIT
- AlicenseBqualityBmaintenanceEnables AI assistants to manage contacts, send messages, handle conversations, and manage workspace via the Respond.io API.28106MIT
- FlicenseAqualityDmaintenanceEnables AI assistants to send and retrieve messages, access employee information, and interact with group chats via the SeaTalk API.11-
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/rongcloud/rongcloud-server-mcp-python'
If you have feedback or need assistance with the MCP directory API, please join our Discord server