Pine Assistant MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PINE_USER_ID | No | Pine AI user ID | |
| PINE_BASE_URL | No | Pine AI backend URL (default: https://www.19pine.ai) | https://www.19pine.ai |
| PINE_DEVICE_ID | No | Stable device identifier. Recommended when the server runs as a subprocess (Claude Desktop, Cursor) | |
| PINE_ACCESS_TOKEN | No | Pine AI access token |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tasks | {
"list": {},
"cancel": {},
"requests": {
"tools": {
"call": {}
},
"prompts": {
"get": {}
},
"resources": {
"read": {}
}
}
} |
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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. |
| 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. |
| 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"). |
| 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. |
| pine_session_getA | Get session details including state, title, and timestamps. |
| 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. |
| pine_session_urlB | Get the web URL for a session. Share with the user for progress tracking, payments, or credits. |
| 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). |
| 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. |
| 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. |
| 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"}. |
| 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"). |
| 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. |
| 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. |
| pine_task_stopC | Stop a running Pine AI task. |
| 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. |
| pine_delete_attachmentA | Delete a previously uploaded attachment. Args: attachment_id: The attachment ID from pine_upload_attachment. |
| 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. |
| 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. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/19PINE-AI/pine-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server