# Citedy MCP Tools

Source of truth: `lib/mcp/tool-definitions.ts`.
Generated automatically by `scripts/generate-agentic-docs.ts`.

Total tools: **58**

Endpoint: `https://mcp.citedy.com/mcp`

## adapt

| Tool | Endpoint | Description |
|---|---|---|
| `adapt.generate` | `POST /api/agent/adapt` | Generate social adaptations for an article. |

## agent

| Tool | Endpoint | Description |
|---|---|---|
| `agent.health` | `GET /api/agent/health` | Return infrastructure health checks for agent platform. |
| `agent.me` | `GET /api/agent/me` | Return agent profile, balances and limits. |
| `agent.status` | `GET /api/agent/status` | Return actionable operational status snapshot (credits, socials, schedule, knowledge, content). |

## article

| Tool | Endpoint | Description |
|---|---|---|
| `article.delete` | `DELETE /api/agent/articles/{id}` | Permanently delete an article and its associated storage files. |
| `article.generate` | `POST /api/agent/autopilot` | Generate an SEO-optimized article. By default publishes immediately; set auto_publish=false to create as draft. May take 30-90 seconds. |
| `article.get` | `GET /api/agent/articles/{id}` | Poll a queued article job by id. Use the id returned by article.generate to get the current status or the final generated article result. |
| `article.list` | `GET /api/agent/articles` | List previously generated articles for the current workspace. |
| `article.publish` | `POST /api/agent/articles/{id}/publish` | Publish a draft article. Use after generating with auto_publish=false to trigger the publish pipeline. |
| `article.unpublish` | `PATCH /api/agent/articles/{id}` | Unpublish an article (revert to draft status). The article remains accessible for editing but is removed from the public blog. |

## brand

| Tool | Endpoint | Description |
|---|---|---|
| `brand.scan` | `POST /api/agent/tools/brand-scan` | Run AI brand visibility scan across major LLM providers (async, poll with brand.scan.get). |
| `brand.scan.get` | `GET /api/agent/tools/brand-scan/{id}` | Get brand scan status and final result payload by scan ID. |

## competitors

| Tool | Endpoint | Description |
|---|---|---|
| `competitors.discover` | `POST /api/agent/competitors/discover` | Discover competitors by keyword set. |
| `competitors.scout` | `POST /api/agent/competitors/scout` | Analyze a competitor domain. |

## gaps

| Tool | Endpoint | Description |
|---|---|---|
| `gaps.generate` | `POST /api/agent/gaps/generate` | Generate SEO/GEO content gap opportunities. |
| `gaps.list` | `GET /api/agent/gaps` | List saved content gaps. |

## gsc

| Tool | Endpoint | Description |
|---|---|---|
| `gsc.report` | `GET /api/agent/gsc/report` | Get Google Search Console performance report: clicks, impressions, CTR, avg position, top queries, top pages, position movers, content opportunities, and article suggestions. Returns connect URL if GSC is not linked. Free (0 credits). |

## ingest

| Tool | Endpoint | Description |
|---|---|---|
| `ingest.batch` | `POST /api/agent/ingest/batch` | Create ingestion jobs in batch mode for multiple URLs. |
| `ingest.content.get` | `GET /api/agent/ingest/{id}/content` | Fetch extracted content payload for a completed ingestion job. |
| `ingest.create` | `POST /api/agent/ingest` | Create an ingestion job from a source URL. |
| `ingest.get` | `GET /api/agent/ingest/{id}` | Get ingestion job status/result by ID. |

## leadmagnet

| Tool | Endpoint | Description |
|---|---|---|
| `leadmagnet.archive` | `PATCH /api/agent/lead-magnets/{id}` | Archive a lead magnet by ID. |
| `leadmagnet.generate` | `POST /api/agent/lead-magnets` | Start lead magnet generation (checklist/swipe/framework) and return polling instructions. |
| `leadmagnet.get` | `GET /api/agent/lead-magnets/{id}` | Fetch lead magnet status/result by ID. |
| `leadmagnet.publish` | `PATCH /api/agent/lead-magnets/{id}` | Publish a lead magnet by ID. |

## personas

| Tool | Endpoint | Description |
|---|---|---|
| `personas.list` | `GET /api/agent/personas` | List available writing personas. |

## products

| Tool | Endpoint | Description |
|---|---|---|
| `products.create` | `POST /api/agent/products` | Upload product knowledge document. |
| `products.delete` | `DELETE /api/agent/products/{id}` | Delete product knowledge document by ID. |
| `products.list` | `GET /api/agent/products` | List product knowledge documents. |
| `products.search` | `POST /api/agent/products/search` | Search product knowledge documents. |

## schedule

| Tool | Endpoint | Description |
|---|---|---|
| `schedule.gaps` | `GET /api/agent/schedule/gaps` | List schedule gaps for upcoming days. |
| `schedule.list` | `GET /api/agent/schedule` | List upcoming article/post/social schedule timeline. |

## scout

| Tool | Endpoint | Description |
|---|---|---|
| `scout.reddit` | `POST /api/agent/scout/reddit` | Run Reddit scout analysis. Returns processing status — poll scout.reddit.result for results. |
| `scout.reddit.result` | `GET /api/agent/scout/reddit/{runId}` | Get Reddit scout run status and results by run ID. |
| `scout.x` | `POST /api/agent/scout/x` | Run X/Twitter scout analysis. Returns processing status — poll scout.x.result for results. |
| `scout.x.result` | `GET /api/agent/scout/x/{runId}` | Get X scout run status and results by run ID. |

## seo

| Tool | Endpoint | Description |
|---|---|---|
| `seo.headings.check` | `POST /api/agent/tools/headings` | Analyze heading hierarchy (H1-H6) for a page. |
| `seo.internal_links.plan` | `POST /api/agent/tools/internal-links` | Plan internal linking opportunities from source URL and target URLs/sitemap. |
| `seo.links.analyze` | `POST /api/agent/tools/links` | Analyze internal/external links and link attributes. |
| `seo.meta_tags.check` | `POST /api/agent/tools/meta-tags` | Analyze meta tags for a target page URL. |
| `seo.og_image.generate` | `POST /api/agent/tools/og-image` | Generate an Open Graph image artifact and return hosted URL for brand assets. |
| `seo.og.preview` | `POST /api/agent/tools/og-preview` | Extract Open Graph and Twitter card preview metadata. |
| `seo.robots.check` | `POST /api/agent/tools/robots` | Check robots.txt availability and parsed directives. |
| `seo.schema.validate` | `POST /api/agent/tools/schema-validate` | Validate JSON-LD schema markup for a page. |
| `seo.sitemap.check` | `POST /api/agent/tools/sitemap` | Check sitemap availability and robots sitemap hints. |

## session

| Tool | Endpoint | Description |
|---|---|---|
| `session.create` | `POST /api/agent/session` | Create and start an autopilot session. |

## settings

| Tool | Endpoint | Description |
|---|---|---|
| `settings.get` | `GET /api/agent/settings` | Get current agent settings. |

## shorts

| Tool | Endpoint | Description |
|---|---|---|
| `shorts.avatar` | `POST /api/agent/shorts/avatar` | Generate an AI avatar image for shorts and return hosted avatar URL. |
| `shorts.generate` | `POST /api/agent/shorts` | Generate shorts video and return poll instructions until final video URL is ready. |
| `shorts.get` | `GET /api/agent/shorts/{id}` | Get shorts generation status/result by ID. |
| `shorts.merge` | `POST /api/agent/shorts/merge` | Merge 2-4 short clips, apply subtitle phrases, and return final video URL. |
| `shorts.publish` | `POST /api/agent/shorts/publish` | Publish a generated short video directly to YouTube Shorts and/or Instagram Reels. Does not require an article — derives title/description/hashtags from speech_text via LLM. Instagram Reels costs 5 credits; YouTube Shorts is free. Returns per-platform results and timings. |
| `shorts.script` | `POST /api/agent/shorts/script` | Generate short-form video script text (hook/educational/cta styles). |

## social

| Tool | Endpoint | Description |
|---|---|---|
| `social.publish` | `POST /api/agent/publish` | Publish, schedule, cancel, or direct-publish (as-is, no AI adaptation) social content. |

## webhooks

| Tool | Endpoint | Description |
|---|---|---|
| `webhooks.delete` | `DELETE /api/agent/webhooks/{id}` | Delete a webhook endpoint by ID. |
| `webhooks.deliveries` | `GET /api/agent/webhooks/deliveries` | List webhook delivery attempts. |
| `webhooks.list` | `GET /api/agent/webhooks` | List webhook endpoints for current agent. |
| `webhooks.register` | `POST /api/agent/webhooks` | Register webhook endpoint for agent events. |

## Async Polling

- `article.generate` -> `article.get` (key: `id`)
- `leadmagnet.generate` -> `leadmagnet.get` (key: `id`)
- `scout.x` -> `scout.x.result` (key: `runId`)
- `scout.reddit` -> `scout.reddit.result` (key: `runId`)
- `ingest.create` -> `ingest.get` (key: `id`)
- `ingest.batch` -> `ingest.get` (key: `id`)
- `brand.scan` -> `brand.scan.get` (key: `id`)
- `shorts.generate` -> `shorts.get` (key: `id`)
