Skip to main content
Glama
19PINE-AI

Pine Assistant MCP Server

Official
by 19PINE-AI

Pine Assistant MCP Server

A local MCP server that lets any LLM agent manage Pine AI tasks — negotiate bills, cancel subscriptions, resolve disputes, and make phone calls on your behalf.

Built on the pine-assistant Python SDK.

Installation

pip install pine-mcp-server

Or run directly with uvx (no install needed):

uvx pine-mcp-server

Related MCP server: knitbrain

Quick Start

1. Get your Pine AI credentials

You need an access_token and user_id from Pine AI. Either:

  • Sign up at 19pine.ai and retrieve your credentials, or

  • Use the built-in auth tools (pine_auth_request_code / pine_auth_verify_code) to authenticate via email.

2. Configure your MCP client

Claude Desktop — edit claude_desktop_config.json:

{
  "mcpServers": {
    "pine-assistant": {
      "command": "uvx",
      "args": ["pine-mcp-server"],
      "env": {
        "PINE_ACCESS_TOKEN": "your-access-token",
        "PINE_USER_ID": "your-user-id"
      }
    }
  }
}

Cursor — edit .cursor/mcp.json:

{
  "mcpServers": {
    "pine-assistant": {
      "command": "uvx",
      "args": ["pine-mcp-server"],
      "env": {
        "PINE_ACCESS_TOKEN": "your-access-token",
        "PINE_USER_ID": "your-user-id"
      }
    }
  }
}

If you prefer pip install, replace "command": "uvx" with "command": "pine-mcp-server" and remove the "args" field.

3. Use it

Ask your LLM agent something like:

"Use Pine AI to negotiate my Comcast internet bill. My account number is 12345."

The agent will create a session, send your request, and check back for updates.

How It Works

The server follows a "load conversation" model — like refreshing a browser page:

  1. Create a sessionpine_session_create

  2. Send a message describing the task — pine_send_message

  3. Wait, then check what Pine replied — pine_get_history

  4. Start the task when ready — pine_task_start

  5. Check again for results — pine_get_history

There is no real-time streaming. The agent periodically loads the conversation history to see updates, similar to refreshing the Pine web app.

Available Tools

Authentication

Tool

Description

pine_auth_request_code

Request a verification code via email

pine_auth_verify_code

Verify the code and obtain credentials

Sessions

Tool

Description

pine_session_create

Create a new Pine session

pine_session_list

List sessions with optional filters

pine_session_get

Get details about a session

pine_session_delete

Delete a session

pine_session_url

Get the web URL to view a session

Conversation

Tool

Description

pine_get_history

Load conversation history (the core "refresh" tool)

pine_send_message

Send a text message to Pine

pine_send_form_response

Submit a form that Pine sent

pine_send_auth_confirmation

Submit an OTP/verification code

pine_send_location_response

Submit location coordinates

pine_send_location_selection

Submit a location selection

Tasks

Tool

Description

pine_task_start

Start task execution

pine_task_stop

Stop a running task

Attachments

Tool

Description

pine_upload_attachment

Upload a local file (bill, screenshot, etc.)

pine_delete_attachment

Delete an uploaded attachment

Social & Scheduling

Tool

Description

pine_social_share

Share results on social media to earn credits

pine_update_call_reminder

Update a scheduled call reminder

Environment Variables

Variable

Required

Description

PINE_ACCESS_TOKEN

Yes*

Pine AI access token

PINE_USER_ID

Yes*

Pine AI user ID

PINE_BASE_URL

No

Pine AI backend URL (default: https://www.19pine.ai)

PINE_DEVICE_ID

No

Stable device identifier. Recommended when the server runs as a subprocess (Claude Desktop, Cursor) — otherwise a fresh random ID is generated on each launch if ~/.pine/device_id is unwritable.

* Not required if you authenticate at runtime using the auth tools.

Development

pip install -e ".[dev]"

License

MIT

Available Tools

19 tools
pine_auth_request_codeA

Step 1: Send a verification code to the user's Pine AI email.

After calling this, ask the user to check their email (including spam) and provide the code. Then call pine_auth_verify_code with the code and the returned request_token.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

Describes the action (email sent, request_token returned) and user interaction (ask user for code). Without annotations, this disclosure is sufficient for a simple code request. Lacks details on rate limits or email delivery guarantees, but not critical.

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

Conciseness5/5

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

Three sentences, step-numbered, no redundancy. Each sentence adds value: action, user instruction, next step.

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?

With an output schema present (though not shown), the description covers the purpose and flow. Missing potential error cases or prerequisites, but overall adequate for a simple authentication step.

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

Parameters2/5

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

Only one parameter (email). The description mentions 'Pine AI email' but does not specify format, validation, or constraints. Schema coverage is 0%, so description should compensate but does not sufficiently clarify parameter semantics.

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 clearly states the action: 'Send a verification code to the user's Pine AI email.' It identifies itself as Step 1 and distinguishes from the sibling tool pine_auth_verify_code by outlining the sequential flow.

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

Usage Guidelines5/5

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

Explicitly states when to use this tool (as Step 1) and when to use the sibling (Step 2: call pine_auth_verify_code after receiving the code). It advises asking the user to check email and spam.

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

pine_auth_verify_codeA

Step 2: Verify the email code and activate Pine AI credentials.

Use the request_token from pine_auth_request_code and the code the user received. On success, all Pine tools become available.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes
emailYes
request_tokenYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden. It discloses that on success, credentials are activated and all Pine tools become available. This is a significant behavioral effect. However, it does not detail potential failure modes or side effects, but given the simplicity of the action, it is sufficiently transparent.

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

Conciseness5/5

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

The description is extremely concise, consisting of only two sentences. The first sentence front-loads the purpose and step number, and the second provides usage details and outcome. No unnecessary words.

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

Completeness5/5

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

Given that an output schema exists, the description need not explain return values. It explains the activation effect on other tools, which is the most important context for an auth verification step. The description is complete for its complexity level.

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

Parameters4/5

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

Although schema description coverage is 0%, the description adds meaning to all three required parameters. It explains that 'request_token' comes from pine_auth_request_code and 'code' is from the user. The 'email' parameter is implicit but clear. This adds value beyond the bare schema.

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 clearly states it is step 2 of the auth flow, verifying an email code and activating Pine AI credentials. It specifies the verb 'verify' and the resource 'email code', and distinguishes from the sibling tool pine_auth_request_code.

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 explicitly mentions using the request_token from pine_auth_request_code and the code from the user. It also states the outcome (all Pine tools become available). It provides clear context for when to call this tool as part of a two-step process, though it does not explicitly state 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.

pine_delete_attachmentA

Delete a previously uploaded attachment.

Args: attachment_id: The attachment ID from pine_upload_attachment.

ParametersJSON Schema
NameRequiredDescriptionDefault
attachment_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided; description only states 'delete' without disclosing permanence, side effects, auth requirements, or rate limits.

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?

Very concise two-line description with front-loaded action, though the Args block adds minimal overhead.

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?

Adequately covers the simple tool with 1 parameter and output schema; lacks error or return info but sufficient for basic deletion.

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?

Schema coverage is 0%, but description adds meaning: 'attachment_id: The attachment ID from pine_upload_attachment' clarifies the parameter source beyond schema type.

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?

Clearly states 'Delete a previously uploaded attachment' with specific verb and resource, distinguishing from sibling tools like pine_upload_attachment.

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

Usage Guidelines3/5

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

Implies usage after uploading an attachment via the mention of 'attachment_id from pine_upload_attachment', but lacks explicit guidance on when to use vs alternatives or when not to use.

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

pine_get_historyA

Poll Pine's conversation history — the core way to see replies (no streaming).

Call after sending a message or starting a task. Wait a few seconds between polls. Look for: [FORM], [BILLING], [PAYMENT], [TASK READY], [CREDITS NEEDED], [AUTH NEEDED], [THREE-WAY CALL], [TASK FINISHED], [ACTION NEEDED].

Args: session_id: The session to load history for. max_messages: Max messages to fetch (default 30). order: "asc" (oldest first) or "desc" (newest first). from_message_id: Fetch messages after this ID (for pagination).

ParametersJSON Schema
NameRequiredDescriptionDefault
orderNoasc
session_idYes
max_messagesNo
from_message_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses that the tool polls history, does not stream, and lists special markers to look for, giving insight into expected responses. It does not cover rate limits or error conditions, but the behavioral details are adequate.

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

Conciseness5/5

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

The description is concise and front-loaded: a one-sentence purpose, followed by usage guidance, a list of markers, and parameter descriptions. Every sentence adds value without redundancy, achieving efficient communication.

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

Completeness5/5

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

Given the tool's complexity (4 parameters, polling behavior, special markers), the description covers all necessary aspects: purpose, usage timing, behavioral hints, and parameter details. The presence of an output schema means return values need no explanation, and the description is complete for an AI agent to use correctly.

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

Parameters5/5

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

Schema description coverage is 0%, but the description adds clear semantics for all 4 parameters: session_id, max_messages, order, and from_message_id. It explains their purpose and defaults, compensating fully for the missing schema descriptions.

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 'Poll Pine's conversation history — the core way to see replies (no streaming).' This clearly identifies the tool's verb (Poll) and resource (conversation history), and distinguishes it from siblings like pine_send_message and pine_session_create, which have different purposes.

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 says 'Call after sending a message or starting a task. Wait a few seconds between polls,' providing clear context on when to use the tool. It does not explicitly state when not to use it or mention alternatives, but the guidance is sufficient for typical use cases.

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

pine_send_auth_confirmationA

Submit an OTP/verification code for an [AUTH NEEDED] event.

ALWAYS ask the user for the code first — never guess or hallucinate OTPs, PINs, or security answers.

Args: session_id: The session requesting authentication. message_id: The auth request's message_id from pine_get_history. data: Verification data, e.g. {"code": "123456"}.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYes
message_idYes
session_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

No annotations are provided, so the description must cover behavioral aspects. It warns against guessing codes and provides an example for the data parameter, but it does not disclose return values, error handling, side effects, or whether the action is destructive. With 0% schema coverage, more detail would be beneficial.

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

Conciseness5/5

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

The description is concise: a brief main sentence followed by a clear Args list. Every sentence adds value, and the warning is front-loaded. No unnecessary words.

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?

The description covers the main purpose and parameter semantics, and integrates the warning. Given the presence of sibling tools and the existence of an output schema (though not detailed), the description is mostly complete. It could be enhanced by describing the response or error scenarios.

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

Parameters5/5

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

The description adds significant meaning beyond the schema by explaining each parameter: session_id ('session requesting authentication'), message_id ('auth request's message_id from pine_get_history'), and data (with an example). Since schema coverage is 0%, this is essential and well-done.

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 clearly states the verb 'Submit' and the resource 'OTP/verification code' within the context of an '[AUTH NEEDED] event'. It distinguishes from siblings like pine_auth_request_code (which likely requests a code) and pine_auth_verify_code.

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 includes a crucial guideline: 'ALWAYS ask the user for the code first — never guess or hallucinate'. It implicitly sets the context of use after an auth request. However, it does not explicitly state when not to use this tool or provide direct comparison with siblings.

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

pine_send_form_responseA

Submit a form shown in pine_get_history as [FORM].

Fill fields you know; ask the user for unknowns (especially preferences or security info). Use exact option labels for select fields.

Args: session_id: The session containing the form. message_id: The form's message_id from pine_get_history output. form_data: {"field_name": "value"} pairs matching the form fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
form_dataYes
message_idYes
session_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It describes the action as submitting a form (write operation) but does not disclose potential side effects, error scenarios, or idempotency. It also does not describe the return value despite an output schema existing.

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

Conciseness5/5

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

Description is concise: one-line purpose, then usage guidelines, then parameter list. Every sentence adds value with no redundancy.

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?

Covers purpose, usage, and parameters well. Lacks information about output/return values (even though output schema exists) and error handling. For a form submission tool, this is a minor gap.

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

Parameters5/5

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

Schema has 0% description coverage, but the description compensates fully by explaining each parameter: session_id is 'The session containing the form', message_id is 'The form's message_id from pine_get_history output', and form_data is '{"field_name": "value"} pairs matching the form fields'. This adds crucial meaning beyond types.

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 explicitly states 'Submit a form shown in pine_get_history as [FORM]', clearly identifying the action and resource. It distinguishes itself from siblings like pine_get_history (which retrieves history) and other send tools.

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

Usage Guidelines5/5

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

Provides explicit guidance: 'Fill fields you know; ask the user for unknowns (especially preferences or security info). Use exact option labels for select fields.' This tells the agent when to act autonomously vs. defer to user, and how to handle specific field types.

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

pine_send_location_responseA

Submit location coordinates for a [LOCATION NEEDED] event. Ask the user if unknown.

Args: session_id: The session requesting the location. message_id: The location request's message_id from pine_get_history. latitude: Latitude string (e.g. "37.7749"). longitude: Longitude string (e.g. "-122.4194").

ParametersJSON Schema
NameRequiredDescriptionDefault
latitudeYes
longitudeYes
message_idYes
session_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are present, so the description must fully disclose behavior. It only states the action of submitting coordinates without explaining side effects, such as whether a message is sent, data is persisted, or authentication is required. This is insufficient for an agent to understand implications.

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 very short and front-loaded with the purpose. However, the placeholder '[LOCATION NEEDED]' is unclear and slightly detracts from professionalism. Overall, it is efficiently written with docstring-style parameter descriptions.

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

Completeness3/5

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

For a tool with 4 simple string parameters and no nested objects, the description covers the purpose and parameter meanings adequately. However, it lacks context about return values, error handling, or prerequisites like session validity. An output schema exists but is not described, leaving gaps.

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

Parameters4/5

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

The schema has 0% description coverage, but the tool description provides clear parameter semantics: 'session_id: The session requesting the location', 'message_id: The location request's message_id from pine_get_history', etc. This adds significant meaning beyond the raw schema.

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 clearly states 'Submit location coordinates for a [LOCATION NEEDED] event,' specifying the action and target. It distinguishes from sibling 'pine_send_location_selection' by focusing on raw coordinates.

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

Usage Guidelines3/5

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

The description implies usage by saying 'Ask the user if unknown,' but does not explicitly state when to use this tool versus alternatives like pine_send_location_selection. No exclusion criteria or alternative tool mentions are provided.

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

pine_send_location_selectionC

Submit a location selection from options Pine provided.

Args: session_id: The session with the location selection. message_id: The location selection request's message_id. places: Selected place objects from Pine's provided options.

ParametersJSON Schema
NameRequiredDescriptionDefault
placesYes
message_idYes
session_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states 'Submit a location selection' with no mention of side effects, confirmation, error handling, or return behavior. This is insufficient for a mutation tool.

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

Conciseness3/5

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

The description is short but includes an 'Args' section that largely repeats the parameter names. It is not overly verbose, but could be more concise by integrating parameter descriptions naturally.

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

Completeness2/5

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

Despite required parameters and an output schema (presumed), the description does not explain what the tool returns or any post-conditions. For a submission action with three required parameters, more context is needed.

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

Parameters2/5

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

Schema coverage is 0%, yet the description adds minimal meaning beyond parameter names. 'places' is described as 'Selected place objects from Pine's provided options,' which is vague. session_id and message_id are merely restated. The description does not explain format, structure, or constraints of the objects.

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

Purpose4/5

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

The description clearly states the action: 'Submit a location selection from options Pine provided.' It specifies verb ('Submit') and resource ('location selection') and implies it's from prior options. However, it does not explicitly distinguish from the sibling tool 'pine_send_location_response', which could be ambiguous.

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

Usage Guidelines2/5

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 pine_send_location_response or pine_send_form_response. The description lacks any context about prerequisites or scenarios.

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

pine_send_messageA

Send a message to Pine AI — describe the task, answer questions, or provide info.

Also used to submit form answers as JSON ({"field_name": "value"}) when pine_send_form_response is not applicable. Use pine_get_history afterward to see Pine's response.

Args: session_id: The session to send the message to. content: Text message or JSON form data to send. attachments: Optional attachment metadata from pine_upload_attachment.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYes
session_idYes
attachmentsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations, the description carries full burden for behavioral disclosure. It describes the action (send message) and that it can take JSON form data, but does not address side effects, whether the operation is asynchronous, error behavior, or if it modifies state beyond sending. Lacks depth on behavioral traits.

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

Conciseness5/5

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

The description is concise (6-7 lines) and well-structured: primary purpose, secondary use case, follow-up suggestion, then parameter descriptions. Every sentence adds value without redundancy.

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?

For a tool with 3 parameters, no annotations, and an output schema, the description covers main and alternative uses and explains parameters. However, it could mention that the tool returns a response or that it is non-blocking. It adequately directs users to pine_get_history for the response.

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

Parameters5/5

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

Schema coverage is 0%, so description must explain all parameters. It does so explicitly: session_id identifies the session, content can be text or JSON, attachments are optional metadata from pine_upload_attachment. This adds meaning beyond the schema's raw types.

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?

Description states the tool is used to 'Send a message to Pine AI' and also 'submit form answers as JSON' when pine_send_form_response is not applicable. It distinguishes from siblings like pine_get_history, making the purpose clear and specific.

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?

Explicitly mentions when to use the tool (describe task, answer questions, provide info) and when to use an alternative (pine_send_form_response is not applicable). Suggests using pine_get_history afterward, providing clear context for usage.

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

pine_session_createA

Create a new Pine AI session to start a customer service task.

Returns session_id and web URL. Next step: call pine_send_message with the user's request (e.g. "Negotiate my Comcast bill").

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions return values (session_id, web URL) but does not disclose behavioral traits such as authentication requirements, rate limits, or side effects. For a session creation tool, these are important gaps.

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

Conciseness5/5

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

The description is concise (two sentences) and front-loaded: it states the purpose first, then the output, then the next action. Every sentence adds value with no fluff.

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 simplicity of the tool (no parameters) and the existence of an output schema, the description covers the purpose, return values, and next step. It lacks behavioral context (e.g., authentication), but with zero parameters and no annotations, it is mostly complete.

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

Parameters5/5

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

The input schema has zero parameters, and the schema description coverage is 100%. The description adds value beyond the schema by explaining what the tool returns and the next step, which is not in the schema.

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 clearly states the action (create a new Pine AI session) and the purpose (start a customer service task). It distinguishes this tool from siblings like pine_session_get, pine_session_list, and pine_session_delete by being the creation tool.

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 explicitly says when to use this tool (to start a customer service task) and provides a direct next step (call pine_send_message). It does not explicitly state when not to use it, but the context is clear among sibling tools.

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

pine_session_deleteA

Delete a Pine AI session.

Args: session_id: The session to delete. force_delete: If True, force-delete even if the session has an active task.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes
force_deleteNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

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

No annotations provided, but the description explains the 'force_delete' parameter, revealing that deletion may be blocked if the session has an active task. This adds valuable behavioral context beyond the schema.

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 brief and front-loaded with a clear purpose; each sentence serves a purpose. However, it could be slightly more polished with a note on return values.

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

Completeness3/5

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

While the description clarifies the parameters, it lacks information about what the tool returns or potential side effects. An output schema exists but is not visible in the context.

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

Parameters5/5

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

Schema coverage is 0%, and the description compensates fully by explaining both parameters: 'session_id' as the target, and 'force_delete' as a way to override active tasks.

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 clearly states 'Delete a Pine AI session' with a specific verb and resource. Among sibling tools, it's distinct from other session operations and delete operations.

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

Usage Guidelines3/5

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

The description implies deletion usage but does not explicitly state when to use it versus alternatives, nor does it exclude cases.

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

pine_session_getA

Get session details including state, title, and timestamps.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It states 'Get session details', indicating a read operation with no side effects. However, it does not disclose error handling, authentication requirements, rate limits, or what happens if the session_id is invalid. The description is adequate but not rich in 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.

Conciseness4/5

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

The description is a single, straightforward sentence without unnecessary words. It is front-loaded with the purpose. However, it could be slightly more informative about the output or limitations without becoming verbose.

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

Completeness3/5

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

The tool has one parameter and an output schema, so the description is minimally complete. However, it does not explain the return values (though the output schema exists) or error scenarios. Given the simplicity of the tool, the description is adequate but could provide more context for proper selection among the many sibling tools.

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

Parameters1/5

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

The input schema has 0% description coverage, meaning the parameter 'session_id' has no description in the schema. The tool description does not explain the format, source, or constraints of session_id. This provides no added meaning beyond the schema's type declaration.

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 clearly states the verb 'Get', the resource 'session details', and lists the fields 'state, title, and timestamps'. It distinguishes this tool from sibling tools like pine_session_list (which lists sessions) and pine_session_create/delete/url (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.

Usage Guidelines4/5

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

The description implies this tool is used to retrieve details of a specific session, but it does not provide explicit guidance on when to use it versus alternatives like pine_session_list for listing sessions or pine_session_url for getting a URL. The context is clear but lacks exclusion or alternative recommendations.

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

pine_session_listA

List Pine AI sessions with optional state filter.

Args: state: Filter by state (e.g. "init", "task_ready", "in_progress"). limit: Max sessions to return (default 30). offset: Pagination offset.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
stateNo
offsetNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It indicates a read-like operation (listing) but does not disclose behavioral traits such as auth requirements, rate limits, or safety guarantees. The description adds minimal insight beyond the schema.

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

Conciseness5/5

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

The description is extremely concise, with a clear one-line summary followed by a structured parameter list. Every sentence adds value and the format is front-loaded, making it easy for an AI to parse.

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 presence of an output schema (not shown but exists), the description adequately covers input parameters and basic behavior. It explains filtering and pagination, which is sufficient for a listing tool. However, it could mention that results are returned as a list.

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

Parameters4/5

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

With 0% schema description coverage, the description compensates by explaining each parameter's purpose and giving examples (e.g., state filter values). It adds meaning beyond the schema, though a full list of possible state values would improve completeness.

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

Purpose4/5

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

The description clearly states the tool lists Pine AI sessions with an optional state filter. The verb 'List' is specific and the resource is well-identified, but it does not explicitly differentiate from sibling tools like pine_session_get (single session retrieval), which would improve clarity.

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

Usage Guidelines3/5

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

The description implies usage for listing sessions with optional filtering, but does not provide explicit guidance on when not to use it or mention alternatives such as pine_session_get for individual sessions. Only inferred usage context is given.

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

pine_session_urlB

Get the web URL for a session. Share with the user for progress tracking, payments, or credits.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states 'Get the web URL' implying a read operation, but does not disclose behavioral traits such as whether the session must be active, whether the URL expires, or any authentication requirements. The description lacks sufficient 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.

Conciseness5/5

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

The description is two sentences long with no fluff. The first sentence clearly states the primary function, and the second adds usage context. It is front-loaded and every word earns its place.

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 that an output schema exists (so return values are documented elsewhere) and the tool is simple with one parameter, the description provides the core purpose and usage context. However, it could be more complete by mentioning that the URL is specifically for the session identified by session_id, but overall it is adequate for a basic tool.

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

Parameters1/5

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

The input schema has 0% description coverage for the single parameter 'session_id'. The tool description does not add any meaning beyond the parameter name; it fails to explain what constitutes a valid session_id, its format, or scope. With no schema description and no additional context in the description, the agent has insufficient information to correctly provide the parameter.

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 clearly states 'Get the web URL for a session' using a specific verb ('Get') and resource ('web URL for a session'). It distinguishes from siblings like pine_session_get (returns session details) and pine_session_create (creates a session) by focusing on URL retrieval. Additionally, it provides context on sharing for tracking/payments/credits.

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

Usage Guidelines3/5

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

The description implies when to use the tool (to obtain and share a session URL), but does not explicitly state when not to use it or mention alternatives among siblings such as pine_session_get for retrieving full session details. Guidance is implied rather than explicit.

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

pine_social_shareA

Share completed task results on social media to earn Pine credits.

Args: session_id: The completed session to share results from. platform: One of "x", "facebook", or "linkedin". shared_url: The URL of the social media post.

ParametersJSON Schema
NameRequiredDescriptionDefault
platformYes
session_idYes
shared_urlYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It indicates mutation ('share on social media') but does not disclose side effects, authentication needs, rate limits, or what happens upon sharing. The behavioral disclosure is minimal.

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

Conciseness5/5

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

The description is two sentences with a clear arg list, no redundancy. It presents the purpose upfront and then lists parameters efficiently. Every sentence contributes value.

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

Completeness3/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 required params, output schema exists), the description covers the essential purpose and parameters. However, it misses contextual information such as authentication requirements or the need for a completed session. An output schema exists, so return value explanation is optional.

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?

Schema description coverage is 0%, so the description must compensate. It provides brief descriptions for each parameter: session_id as 'The completed session', platform with enumerated options, shared_url as 'URL of the social media post'. This adds meaning but lacks detail on formats or constraints.

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 clearly states the tool's action: 'Share completed task results on social media to earn Pine credits.' It identifies the specific verb ('Share'), resource ('completed task results on social media'), and immediate benefit ('earn Pine credits'). This distinguishes it from sibling tools focused on authentication, sessions, and attachments.

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

Usage Guidelines3/5

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

The description implies usage after completing a session (via the 'session_id' parameter) but does not explicitly state when to use or avoid this tool, nor does it mention alternatives or prerequisites. Guidance is only implicit.

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

pine_task_startA

Start task execution after billing is confirmed.

Only call after: [BILLING] free task, [BILLING] payment received, or [PAYMENT] completed. Do NOT call if [TASK READY] says credits confirmed/auto-started — the task is already running.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

No annotations provided; description does not disclose side effects, auth requirements, or rate limits. Only preconditions are given.

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?

Three sentences, focused and efficient. However, backticks around signal names are unnecessary but not detrimental.

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

Completeness3/5

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

Has output schema but no info on return values. Describes preconditions but not overall behavior. Adequate but incomplete.

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

Parameters2/5

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

Only parameter session_id is not explained in description; schema coverage is 0%, so no added meaning beyond schema.

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 clearly states the tool starts task execution after billing confirmation. It distinguishes from sibling tool pine_task_stop.

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

Usage Guidelines5/5

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

Explicitly provides when to call (after billing signals) and when not to call (if task auto-started). Clear context.

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

pine_task_stopC

Stop a running Pine AI task.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It fails to mention effects (e.g., whether stop is immediate or graceful), returned output (despite existing output schema), or 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.

Conciseness3/5

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

The description is very short, which could be efficient, but it lacks necessary detail. Every sentence should earn its place; this one does not fully serve the agent.

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

Completeness2/5

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

Given the lack of parameter descriptions, no annotations, and an existing output schema, the description is incomplete. It does not specify what the return value indicates or what happens if the task is not running.

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

Parameters1/5

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

The sole parameter 'session_id' has no description in the schema (0% coverage) and the tool description does not explain its purpose, required format, or how to obtain it. This is a critical gap.

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 clearly states the action ('Stop') and the resource ('a running Pine AI task'). It directly contrasts with the sibling 'pine_task_start', providing clear differentiation.

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

Usage Guidelines2/5

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 like 'pine_task_start' or other session-related tools. The description lacks context on prerequisites or conditions for stopping a task.

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

pine_update_call_reminderB

Update a scheduled call reminder. Confirm timing with the user first.

Args: session_id: The session with the scheduled call. message_id: The call reminder's message_id. scheduled_time: ISO 8601 datetime for the call. enabled: True to enable, False to disable.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYes
message_idYes
session_idYes
scheduled_timeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only states 'update' and recommends confirmation, but does not explain side effects (e.g., notifications sent, permissions required, reversibility). This is insufficient for a mutation tool.

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 concise with a front-loaded purpose sentence followed by a clear parameter list. No unnecessary information is included, making it efficient for an agent to parse.

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

Completeness3/5

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

Given the tool's complexity (4 required params, output schema present), the description covers the core purpose and parameter meanings. However, it lacks behavioral context (e.g., error handling, state changes) that would be expected without annotations.

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

Parameters4/5

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

The Args section provides meaningful descriptions for all four parameters, compensating for the 0% schema coverage. It clarifies purpose (e.g., 'session with the scheduled call') and format (ISO 8601 for time), though more detail on expected values could improve.

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

Purpose4/5

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

The description clearly states the tool updates a scheduled call reminder, using a specific verb and resource. It distinguishes from sibling tools like pine_session_create or pine_send_message by focusing on reminder updates.

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

Usage Guidelines3/5

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

The description advises to 'confirm timing with the user first,' providing a basic usage guideline. However, it lacks explicit when-not-to-use or alternative tool suggestions, which limits its utility for selection.

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

pine_upload_attachmentA

Upload a file (bill, screenshot, document) for a Pine AI session.

Returns attachment metadata — pass it to pine_send_message via the attachments parameter to include the file in a message.

Args: file_path: Absolute path to the file to upload.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided, so description carries the burden. It discloses that it returns attachment metadata and the file is uploaded for a session. However, it omits details like file size limits, allowed types, auth requirements, or whether uploads are permanent. Adequate but could be more informative.

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

Conciseness5/5

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

Three sentences, front-loaded with purpose, then usage instruction, then parameter documentation. No wasted words, efficient structure.

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 simplicity (1 param, no enums, output schema exists), the description covers purpose, usage, and input. Missing potential constraints like file size or type, but overall sufficient for a basic upload tool.

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

Parameters4/5

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

Schema description coverage is 0%, but the description adds 'Absolute path to the file to upload' to the parameter file_path, clarifying its purpose and format. This compensates for the missing schema description.

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 clearly states the verb 'Upload', the resource 'file for a Pine AI session', and enumerates example types (bill, screenshot, document). It distinguishes from siblings like pine_delete_attachment (delete) and pine_send_message (use the attachment).

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?

Explicitly instructs to pass the returned metadata to pine_send_message via the attachments parameter, indicating a clear workflow. Lacks explicit exclusions or when-not-to-use, but context is sufficient.

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

TDQS

A3.7/5.0
Disambiguation5/5

Each tool has a distinct purpose with clear boundaries. Authentication, session management, messaging, attachments, forms, location, tasks, and social sharing are all separated into specific tools, minimizing confusion.

Naming Consistency4/5

All tool names follow the 'pine_<descriptive_name>' pattern with underscores, but the order of verb and noun varies slightly (e.g., 'pine_auth_request_code' vs 'pine_session_create'). Still, the naming is consistent in style and readability.

Tool Count5/5

19 tools is well-scoped for a customer service automation assistant. Each tool covers a necessary function without redundancy or bloat, making the toolset manageable and focused.

Completeness4/5

The toolset covers the core lifecycle: session management, authentication, messaging, attachments, form responses, location handling, task control, and social sharing. Minor gaps exist such as no explicit tool for deleting call reminders or handling payments, but these can be worked around.

Maintenance

ActivityInactive
ResponsivenessSlow

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

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Local-first MCP server that gives any AI coding agent per-project memory, workflow intelligence, and always-on, lossless token & context optimization.
    37
    18
    3
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    A self-hosted MCP server that gives AI agents full email superpowers.
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    A self-hosted MCP server that gives AI agents controlled access to a machine: filesystem, shell, background processes, git, web fetching and persistent key-value memory.
    GPL 3.0

Latest Blog Posts

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/19PINE-AI/pine-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server