> ## Documentation Index
> Fetch the complete documentation index at: https://rankahead.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# GEO Tasks Tools — Rankahead MCP Reference

> Create, update, and manage generative engine optimization tasks in Rankahead via MCP. Organize GEO work across categories, LLM targets, and kanban columns.

GEO tasks are the action layer of Rankahead. Each task represents a concrete optimization action — such as adding schema markup, building a citation, or filling a content gap — that is expected to improve your brand's visibility in LLM-generated responses. The GEO tasks tools let agents read and write to your task board, create new tasks from detected gaps, update status as work progresses, and remove tasks that are no longer relevant.

***

## list\_geo\_tasks

Lists all GEO tasks in your account. You can filter by board column to retrieve tasks at a specific stage of your workflow, or by category to focus on a particular optimization area.

<ParamField path="column" type="string">
  Optional column filter. Accepted values: `TODO`, `IN_PROGRESS`, `DONE`.
</ParamField>

<ParamField path="category" type="string">
  Optional category filter. Accepted values: `CONTENT_GAP`, `SCHEMA_MARKUP`, `CITATION_BUILDING`, `FORUM_PRESENCE`.
</ParamField>

<CodeGroup>
  ```json Request — all tasks theme={null}
  {
    "jsonrpc": "2.0",
    "method": "tools/call",
    "params": {
      "name": "list_geo_tasks",
      "arguments": {}
    },
    "id": 1
  }
  ```

  ```json Request — in-progress citation tasks theme={null}
  {
    "jsonrpc": "2.0",
    "method": "tools/call",
    "params": {
      "name": "list_geo_tasks",
      "arguments": {
        "column": "IN_PROGRESS",
        "category": "CITATION_BUILDING"
      }
    },
    "id": 2
  }
  ```
</CodeGroup>

<ResponseField name="tasks" type="object[]">
  Array of GEO task objects, each containing the task ID, title, category, impact score, effort score, column, and associated LLM targets.
</ResponseField>

***

## get\_geo\_task

Returns full details for a single GEO task, including any notes attached to the task.

<ParamField path="taskId" type="string" required>
  The ID of the GEO task to retrieve.
</ParamField>

<CodeGroup>
  ```json Request theme={null}
  {
    "jsonrpc": "2.0",
    "method": "tools/call",
    "params": {
      "name": "get_geo_task",
      "arguments": {
        "taskId": "geo_06pfq7w6s4ic"
      }
    },
    "id": 3
  }
  ```
</CodeGroup>

<ResponseField name="taskId" type="string">
  Unique identifier for the task.
</ResponseField>

<ResponseField name="title" type="string">
  Short description of the optimization action.
</ResponseField>

<ResponseField name="category" type="string">
  Task category: `CONTENT_GAP`, `SCHEMA_MARKUP`, `CITATION_BUILDING`, or `FORUM_PRESENCE`.
</ResponseField>

<ResponseField name="impact" type="number">
  Estimated impact score from 1 (lowest) to 5 (highest).
</ResponseField>

<ResponseField name="effort" type="number">
  Estimated effort score from 1 (lowest) to 5 (highest).
</ResponseField>

<ResponseField name="column" type="string">
  Current board column: `TODO`, `IN_PROGRESS`, or `DONE`.
</ResponseField>

<ResponseField name="targetLlms" type="string[]">
  LLMs this task is intended to improve visibility on (e.g. `["CHATGPT", "PERPLEXITY"]`).
</ResponseField>

<ResponseField name="notes" type="string">
  Free-text notes attached to the task.
</ResponseField>

<ResponseField name="promptId" type="string">
  Optional linked prompt ID, if the task was created from a specific prompt's gap analysis.
</ResponseField>

***

## create\_geo\_task

Creates a new GEO task on your board. You must supply a title and category. All other fields are optional and have sensible defaults.

<ParamField path="title" type="string" required>
  A short, action-oriented description of the task (e.g. "Add FAQ schema to pricing page").
</ParamField>

<ParamField path="category" type="string" required>
  Task category. Accepted values: `CONTENT_GAP`, `SCHEMA_MARKUP`, `CITATION_BUILDING`, `FORUM_PRESENCE`.
</ParamField>

<ParamField path="impact" type="number" default="3">
  Estimated impact from 1 (lowest) to 5 (highest). Defaults to `3`.
</ParamField>

<ParamField path="effort" type="number" default="3">
  Estimated effort from 1 (lowest) to 5 (highest). Defaults to `3`.
</ParamField>

<ParamField path="column" type="string" default="TODO">
  Initial board column. Accepted values: `TODO`, `IN_PROGRESS`, `DONE`. Defaults to `TODO`.
</ParamField>

<ParamField path="targetLlms" type="string">
  JSON array string of LLM identifiers to target (e.g. `'["CHATGPT","PERPLEXITY"]'`). Accepted values within the array: `CHATGPT`, `PERPLEXITY`, `CLAUDE`, `GEMINI`.
</ParamField>

<ParamField path="notes" type="string">
  Optional free-text notes providing context or implementation guidance for the task.
</ParamField>

<ParamField path="promptId" type="string">
  Optional prompt ID to associate this task with a specific answer gap detected during a prompt run.
</ParamField>

<CodeGroup>
  ```json Request — minimal theme={null}
  {
    "jsonrpc": "2.0",
    "method": "tools/call",
    "params": {
      "name": "create_geo_task",
      "arguments": {
        "title": "Add FAQ schema to pricing page",
        "category": "SCHEMA_MARKUP"
      }
    },
    "id": 4
  }
  ```

  ```json Request — full details theme={null}
  {
    "jsonrpc": "2.0",
    "method": "tools/call",
    "params": {
      "name": "create_geo_task",
      "arguments": {
        "title": "Submit product listing to G2 and Capterra",
        "category": "CITATION_BUILDING",
        "impact": 5,
        "effort": 2,
        "column": "TODO",
        "targetLlms": "[\"CHATGPT\",\"PERPLEXITY\"]",
        "notes": "G2 and Capterra are frequently cited by ChatGPT when answering CRM comparison questions. Prioritize G2 first.",
        "promptId": "prm_02kxw9a1m7d3y"
      }
    },
    "id": 5
  }
  ```
</CodeGroup>

***

## update\_geo\_task

Updates one or more fields on an existing GEO task. Only the fields you provide are changed. Use this tool to move tasks between board columns, adjust scores, or add implementation notes.

<ParamField path="taskId" type="string" required>
  The ID of the task to update.
</ParamField>

<ParamField path="title" type="string">
  Updated task title.
</ParamField>

<ParamField path="category" type="string">
  Updated category. Accepted values: `CONTENT_GAP`, `SCHEMA_MARKUP`, `CITATION_BUILDING`, `FORUM_PRESENCE`.
</ParamField>

<ParamField path="impact" type="number">
  Updated impact score from 1 to 5.
</ParamField>

<ParamField path="effort" type="number">
  Updated effort score from 1 to 5.
</ParamField>

<ParamField path="column" type="string">
  Updated board column. Accepted values: `TODO`, `IN_PROGRESS`, `DONE`.
</ParamField>

<ParamField path="targetLlms" type="string">
  Updated JSON array string of target LLMs (e.g. `'["CHATGPT","GEMINI"]'`).
</ParamField>

<ParamField path="notes" type="string">
  Updated notes for the task.
</ParamField>

<CodeGroup>
  ```json Request — move to in-progress theme={null}
  {
    "jsonrpc": "2.0",
    "method": "tools/call",
    "params": {
      "name": "update_geo_task",
      "arguments": {
        "taskId": "geo_06pfq7w6s4ic",
        "column": "IN_PROGRESS"
      }
    },
    "id": 6
  }
  ```

  ```json Request — mark done and add notes theme={null}
  {
    "jsonrpc": "2.0",
    "method": "tools/call",
    "params": {
      "name": "update_geo_task",
      "arguments": {
        "taskId": "geo_06pfq7w6s4ic",
        "column": "DONE",
        "notes": "G2 listing published on 2025-05-10. Profile verified. Monitor citation rate over next 30 days."
      }
    },
    "id": 7
  }
  ```
</CodeGroup>

***

## delete\_geo\_task

Permanently deletes a GEO task. This action cannot be undone.

<ParamField path="taskId" type="string" required>
  The ID of the task to delete.
</ParamField>

<Warning>
  Task deletion is permanent. If you want to preserve the task for reference, move it to the `DONE` column using `update_geo_task` instead.
</Warning>

<CodeGroup>
  ```json Request theme={null}
  {
    "jsonrpc": "2.0",
    "method": "tools/call",
    "params": {
      "name": "delete_geo_task",
      "arguments": {
        "taskId": "geo_06pfq7w6s4ic"
      }
    },
    "id": 8
  }
  ```
</CodeGroup>
