Skip to main content
Glama
fieldjoshua

Upwork MCP Server

by fieldjoshua

Send Message

upwork_send_message

Send a message in an Upwork conversation room using the room ID and content, with optional file attachments. Keep messages professional and relevant to the work.

Instructions

Send a message in a conversation room.

Send a message to a client or in a job/contract conversation.

Args:

  • room_id (string, required): The conversation room ID

  • content (string, required): Message content (1-10000 chars)

  • attachments (string[], optional): File URLs to attach (max 5)

Returns: Confirmation of message sent.

Important: Keep messages professional and relevant to the work.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
contentYesThe message content to send
room_idYesThe conversation room ID to send the message to
attachmentsNoURLs or file paths to attach to the message

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a non-read-only, non-idempotent action, and the description aligns by saying 'send a message.' It adds minor behavioral context such as the professional tone requirement and return confirmation, but doesn't disclose side effects like duplicate messages if called repeatedly, which idempotentHint=false implies could occur.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a summary sentence, Args, Returns, and Important sections. The second sentence ('Send a message to a client...') is somewhat redundant with the first, but the rest is efficient and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (3 parameters, no nested objects, no output schema), the description adequately covers the essentials: what it does, parameters, return value, and a usage caution. It could mention that room_id can be obtained from list_messages, but that's a minor convenience, not a gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully describes all three parameters with descriptions and constraints (room_id, content, attachments). The description's Args section largely repeats this information, adding no meaning beyond the schema. Baseline of 3 is appropriate because schema coverage is 100%.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states exactly what the tool does: send a message in a conversation room, with explicit context of messaging a client or in a job/contract conversation. It clearly differentiates from the read-only sibling tools like list_messages, and no other sibling handles sending messages.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use this tool: when there is a conversation room and the agent needs to send a message to a client or within a job/contract conversation. It doesn't explicitly name exclusions or alternatives, but the sibling set makes the purpose obvious enough that no exclusions are necessary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.