Tool tree
gradeNot graded
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/"
}