missive

Read email/chat conversations, messages, contacts and teams; draft, send and update threads.

我該用這個嗎

品質與安全性

A
說明品質
91%
結構描述完整度
96%
命名品質
76%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

發現項目(4)

  • LOWTool 'missive_list_conversation_messages' name length outside 3-30 range在 missive_list_conversation_messages 中
  • LOWTool 'missive_list_conversation_comments' name length outside 3-30 range在 missive_list_conversation_comments 中
  • LOWTool 'missive_list_conversation_drafts' name length outside 3-30 range在 missive_list_conversation_drafts 中
  • LOWTool 'missive_list_conversation_posts' name length outside 3-30 range在 missive_list_conversation_posts 中

根據工具定義與協定合規性的自動化分析。

上下文成本

~3,596Token(工具定義)
~1.8 KB典型回應大小
顯著的注意力影響(128k 上下文的 2.81%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "missive": {
      "url": "https://missive.usefulapi.io/mcp"
    }
  }
}

遠端端點

https://missive.usefulapi.io/mcpstreamable-http

它能做什麼

工具清單

工具(19)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢missive_list_conversations(limit, until, inbox, assigned, closed, ...)

List conversations (email/chat threads). Missive requires EXACTLY ONE mailbox-type filter — one of inbox / assigned / closed / flagged / snoozed / trashed / all / shared_label / team_inbox / team_all / organization. Missive: GET /conversations.

輸入結構描述

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Max conversations to return (default 25, max 50).",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "until": {
      "description": "Unix timestamp cursor — return records older than this (offset-less pagination).",
      "type": "number"
    },
    "inbox": {
      "description": "Conversations in your inbox.",
      "type": "boolean"
    },
    "assigned": {
      "description": "Conversations assigned to you.",
      "type": "boolean"
    },
    "closed": {
      "description": "Closed conversations.",
      "type": "boolean"
    },
    "flagged": {
      "description": "Flagged conversations.",
      "type": "boolean"
    },
    "snoozed": {
      "description": "Snoozed conversations.",
      "type": "boolean"
    },
    "trashed": {
      "description": "Trashed conversations.",
      "type": "boolean"
    },
    "all": {
      "description": "All conversations.",
      "type": "boolean"
    },
    "shared_label": {
      "description": "Conversations under a shared label id.",
      "type": "string"
    },
    "team_inbox": {
      "description": "Conversations in a team's inbox (team id).",
      "type": "string"
    },
    "team_all": {
      "description": "All of a team's conversations (team id).",
      "type": "string"
    },
    "organization": {
      "description": "Filter to an organization id.",
      "type": "string"
    },
    "email": {
      "description": "Filter to conversations involving this email address.",
      "type": "string"
    },
    "contact_organization": {
      "description": "Filter to a contact organization id.",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢missive_get_conversation(id)

Get a single conversation by id. Missive: GET /conversations/{id}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The resource id (a UUID-like string)."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢missive_list_conversation_messages(id, limit, until)

List the messages (emails) in a conversation. Missive: GET /conversations/{id}/messages.

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The resource id (a UUID-like string)."
    },
    "limit": {
      "description": "Max messages to return (default 10, max 10).",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "until": {
      "description": "Unix timestamp cursor — return records older than this (offset-less pagination).",
      "type": "number"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢missive_get_message(conversation_id, id)

Get a single message, including the full body. Missive: GET /conversations/{conversation_id}/messages/{id}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "conversation_id": {
      "type": "string",
      "description": "The conversation id the message belongs to."
    },
    "id": {
      "type": "string",
      "description": "The message id."
    }
  },
  "required": [
    "conversation_id",
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢missive_list_conversation_comments(id, limit, until)

List internal comments (team chat) on a conversation. Missive: GET /conversations/{id}/comments.

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The resource id (a UUID-like string)."
    },
    "limit": {
      "description": "Max records to return.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "until": {
      "description": "Unix timestamp cursor — return records older than this (offset-less pagination).",
      "type": "number"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢missive_list_conversation_drafts(id, limit, until)

List draft messages on a conversation. Missive: GET /conversations/{id}/drafts.

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The resource id (a UUID-like string)."
    },
    "limit": {
      "description": "Max records to return.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "until": {
      "description": "Unix timestamp cursor — return records older than this (offset-less pagination).",
      "type": "number"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢missive_list_conversation_posts(id, limit, until)

List posts (integration/app-generated items) on a conversation. Missive: GET /conversations/{id}/posts.

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The resource id (a UUID-like string)."
    },
    "limit": {
      "description": "Max records to return.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "until": {
      "description": "Unix timestamp cursor — return records older than this (offset-less pagination).",
      "type": "number"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢missive_list_contacts(contact_book, search, order, limit, offset, ...)

List contacts in a contact book. Missive: GET /contacts.

輸入結構描述

{
  "type": "object",
  "properties": {
    "contact_book": {
      "type": "string",
      "description": "The contact book id to list contacts from (required)."
    },
    "search": {
      "description": "Free-text search over contacts.",
      "type": "string"
    },
    "order": {
      "description": "Sort order (default \"last_name\").",
      "type": "string"
    },
    "limit": {
      "description": "Max contacts to return (default 50, max 200).",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "offset": {
      "description": "Number of records to skip (offset pagination).",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "modified_since": {
      "description": "Unix timestamp — only contacts modified since.",
      "type": "number"
    },
    "include_deleted": {
      "description": "Include deleted contacts.",
      "type": "boolean"
    }
  },
  "required": [
    "contact_book"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢missive_get_contact(id)

Get a single contact by id. Missive: GET /contacts/{id}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The resource id (a UUID-like string)."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢missive_list_contact_books(limit, offset)

List contact books (address books). Missive: GET /contact_books.

輸入結構描述

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Max contact books to return (default 50, max 200).",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "offset": {
      "description": "Number of records to skip (offset pagination).",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢missive_list_contact_groups(contact_book, kind, limit, offset)

List contact groups or organizations within a contact book. Missive: GET /contact_groups.

輸入結構描述

{
  "type": "object",
  "properties": {
    "contact_book": {
      "type": "string",
      "description": "The contact book id (required)."
    },
    "kind": {
      "type": "string",
      "enum": [
        "group",
        "organization"
      ],
      "description": "Which kind to list: \"group\" or \"organization\"."
    },
    "limit": {
      "description": "Max records to return.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "offset": {
      "description": "Number of records to skip (offset pagination).",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "contact_book",
    "kind"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢missive_list_teams(organization, limit, offset)

List teams in the organization(s). Missive: GET /teams.

輸入結構描述

{
  "type": "object",
  "properties": {
    "organization": {
      "description": "Filter to an organization id.",
      "type": "string"
    },
    "limit": {
      "description": "Max records to return.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "offset": {
      "description": "Number of records to skip (offset pagination).",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢missive_list_users(organization, limit, offset)

List users (team members). Missive: GET /users.

輸入結構描述

{
  "type": "object",
  "properties": {
    "organization": {
      "description": "Filter to an organization id.",
      "type": "string"
    },
    "limit": {
      "description": "Max records to return.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "offset": {
      "description": "Number of records to skip (offset pagination).",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢missive_list_shared_labels(organization, limit, offset)

List shared labels (team-shared folders/tags). Missive: GET /shared_labels.

輸入結構描述

{
  "type": "object",
  "properties": {
    "organization": {
      "description": "Filter to an organization id.",
      "type": "string"
    },
    "limit": {
      "description": "Max records to return.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "offset": {
      "description": "Number of records to skip (offset pagination).",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢missive_list_organizations(limit, offset)

List organizations you belong to. Missive: GET /organizations.

輸入結構描述

{
  "type": "object",
  "properties": {
    "limit": {
      "description": "Max records to return.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "offset": {
      "description": "Number of records to skip (offset pagination).",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢missive_list_responses(organization, limit, offset)

List canned responses / templates. Missive: GET /responses.

輸入結構描述

{
  "type": "object",
  "properties": {
    "organization": {
      "description": "Filter to an organization id.",
      "type": "string"
    },
    "limit": {
      "description": "Max records to return.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "offset": {
      "description": "Number of records to skip (offset pagination).",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴missive_create_draft(body, subject, to_fields, cc_fields, bcc_fields, ...)

Create a draft email/message. WARNING: setting send=true SENDS a real email immediately (send_at schedules it) instead of saving a draft. Attach to an existing thread with `conversation`. Missive: POST /drafts.

輸入結構描述

{
  "type": "object",
  "properties": {
    "body": {
      "type": "string",
      "description": "The message body (HTML) — required."
    },
    "subject": {
      "description": "The subject line.",
      "type": "string"
    },
    "to_fields": {
      "description": "Recipients ({address, name?}).",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "description": "Email address."
          },
          "name": {
            "description": "Display name.",
            "type": "string"
          }
        },
        "required": [
          "address"
        ],
        "description": "An email participant ({address, name?})."
      }
    },
    "cc_fields": {
      "description": "Cc recipients.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "description": "Email address."
          },
          "name": {
            "description": "Display name.",
            "type": "string"
          }
        },
        "required": [
          "address"
        ],
        "description": "An email participant ({address, name?})."
      }
    },
    "bcc_fields": {
      "description": "Bcc recipients.",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "description": "Email address."
          },
          "name": {
            "description": "Display name.",
            "type": "string"
          }
        },
        "required": [
          "address"
        ],
        "description": "An email participant ({address, name?})."
      }
    },
    "from_field": {
      "description": "The sender ({address, name?}).",
      "type": "object",
      "properties": {
        "address": {
          "type": "string",
          "description": "Email address."
        },
        "name": {
          "description": "Display name.",
          "type": "string"
        }
      },
      "required": [
        "address"
      ]
    },
    "conversation": {
      "description": "Attach the draft to an existing conversation id.",
      "type": "string"
    },
    "references": {
      "description": "Message-ID references (for threading).",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "send": {
      "description": "If true, SEND the email immediately instead of saving a draft.",
      "type": "boolean"
    },
    "send_at": {
      "description": "Unix timestamp to schedule the send.",
      "type": "number"
    },
    "organization": {
      "description": "Organization id to send from.",
      "type": "string"
    },
    "add_assignees": {
      "description": "User ids to assign to the conversation.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "add_shared_labels": {
      "description": "Shared label ids to apply.",
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "body"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴missive_update_conversation(id, add_assignees, remove_assignees, add_shared_labels, remove_shared_labels, ...)

Update a conversation — assign/unassign users, add/remove shared labels, close/reopen, move to inbox, or set subject/color/team. Missive: PATCH /conversations/{id}.

輸入結構描述

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The resource id (a UUID-like string)."
    },
    "add_assignees": {
      "description": "User ids to assign.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "remove_assignees": {
      "description": "User ids to unassign.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "add_shared_labels": {
      "description": "Shared label ids to add.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "remove_shared_labels": {
      "description": "Shared label ids to remove.",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "close": {
      "description": "Close (archive) the conversation.",
      "type": "boolean"
    },
    "reopen": {
      "description": "Reopen the conversation.",
      "type": "boolean"
    },
    "add_to_inbox": {
      "description": "Move the conversation back to the inbox.",
      "type": "boolean"
    },
    "subject": {
      "description": "Set the conversation subject.",
      "type": "string"
    },
    "color": {
      "description": "Set the conversation color.",
      "type": "string"
    },
    "organization": {
      "description": "Organization id (context for the update).",
      "type": "string"
    },
    "team": {
      "description": "Team id to move the conversation to.",
      "type": "string"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴missive_create_contact(contact_book, first_name, last_name, starred, infos, ...)

Create a contact in the given contact book. Missive: POST /contacts.

輸入結構描述

{
  "type": "object",
  "properties": {
    "contact_book": {
      "type": "string",
      "description": "The contact book id to create the contact in (required)."
    },
    "first_name": {
      "description": "First name.",
      "type": "string"
    },
    "last_name": {
      "description": "Last name.",
      "type": "string"
    },
    "starred": {
      "description": "Whether the contact is starred.",
      "type": "boolean"
    },
    "infos": {
      "description": "Contact info entries (email/phone/etc. objects).",
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    },
    "memberships": {
      "description": "Group/organization membership objects.",
      "type": "array",
      "items": {
        "type": "object",
        "propertyNames": {
          "type": "string"
        },
        "additionalProperties": {}
      }
    }
  },
  "required": [
    "contact_book"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本19 個工具