← WebMCP Directory

Tool tree

valentinmorali.github.io

AI & AgentsTools verified
Website
A mail client with no AI inside. It teaches your agent, via WebMCP, to read, search and reply to your mail in your own voice.
Explore capabilities
    search_emailsAnswer

    Search the user's mailbox by free text. Matches sender names, subjects and message bodies. Returns matching threads ranked by relevance, with thread_id for use in other tools.

    View tool JSON
    {
      "name": "search_emails",
      "kind": "answer",
      "impl": "imperative",
      "description": "Search the user's mailbox by free text. Matches sender names, subjects and message bodies. Returns matching threads ranked by relevance, with thread_id for use in other tools.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Free-text search, e.g. 'milan s3 pricing'"
          },
          "folder": {
            "type": "string",
            "enum": [
              "inbox",
              "sent",
              "archive"
            ],
            "description": "Optional folder filter"
          }
        },
        "required": [
          "query"
        ]
      },
      "page": "/ghostwriter/"
    }
    read_threadAction

    Read the full contents of one email thread by thread_id, and open it on screen so the user can follow along.

    View tool JSON
    {
      "name": "read_thread",
      "kind": "act",
      "impl": "imperative",
      "description": "Read the full contents of one email thread by thread_id, and open it on screen so the user can follow along.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "thread_id": {
            "type": "string"
          }
        },
        "required": [
          "thread_id"
        ]
      },
      "page": "/ghostwriter/"
    }
    get_open_emailAnswer

    Return the thread the user currently has open on screen, if any. Use this when the user says 'this email' or 'the one I'm looking at'.

    View tool JSON
    {
      "name": "get_open_email",
      "kind": "answer",
      "impl": "imperative",
      "description": "Return the thread the user currently has open on screen, if any. Use this when the user says 'this email' or 'the one I'm looking at'.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/ghostwriter/"
    }
    resolve_contactAnswer

    Resolve a person's name to their email address using the people in this mailbox.

    View tool JSON
    {
      "name": "resolve_contact",
      "kind": "answer",
      "impl": "imperative",
      "description": "Resolve a person's name to their email address using the people in this mailbox.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "A name fragment, e.g. 'Milan'"
          }
        },
        "required": [
          "name"
        ]
      },
      "page": "/ghostwriter/"
    }
    get_writing_styleAnswer

    Return the user's email writing style, derived from their sent mail: greeting, sign-off, typical length, plus real sample emails. ALWAYS call this before drafting a reply on the user's behalf, and imitate it closely.

    View tool JSON
    {
      "name": "get_writing_style",
      "kind": "answer",
      "impl": "imperative",
      "description": "Return the user's email writing style, derived from their sent mail: greeting, sign-off, typical length, plus real sample emails. ALWAYS call this before drafting a reply on the user's behalf, and imitate it closely.",
      "inputSchema": {
        "type": "object",
        "properties": {}
      },
      "page": "/ghostwriter/"
    }
    draft_replyAction

    Open the compose window with a drafted reply to a thread, written in the user's own style (call get_writing_style first). The user sees and can edit the draft. This does NOT send anything. After calling this, update_draft and send_email become available.

    View tool JSON
    {
      "name": "draft_reply",
      "kind": "act",
      "impl": "imperative",
      "description": "Open the compose window with a drafted reply to a thread, written in the user's own style (call get_writing_style first). The user sees and can edit the draft. This does NOT send anything. After calling this, update_draft and send_email become available.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "thread_id": {
            "type": "string",
            "description": "Thread to reply to. Omit for a brand-new email."
          },
          "to": {
            "type": "string",
            "description": "Recipient email, only for a brand-new email."
          },
          "subject": {
            "type": "string",
            "description": "Subject, only for a brand-new email."
          },
          "body": {
            "type": "string",
            "description": "The full drafted email body, in the user's voice."
          }
        },
        "required": [
          "body"
        ]
      },
      "page": "/ghostwriter/"
    }
    archive_emailAction

    Move a thread to the archive (or back to the inbox if it is already archived).

    View tool JSON
    {
      "name": "archive_email",
      "kind": "act",
      "impl": "imperative",
      "description": "Move a thread to the archive (or back to the inbox if it is already archived).",
      "inputSchema": {
        "type": "object",
        "properties": {
          "thread_id": {
            "type": "string"
          }
        },
        "required": [
          "thread_id"
        ]
      },
      "page": "/ghostwriter/"
    }