GuideBlink MCP 1.3.0

Every call, parameter, result, and side effect.

This is the exact reference for the GuideBlink stateless Streamable HTTP server. Parameter tables are generated from the same schemas returned by tools/list.

Fastest setup

Send this complete message to Codex

The public template uses a placeholder. When you generate a Bearer token on Integrations, GuideBlink shows the same message with the real token already inserted. Copy that complete message into a private Codex chat.

Codex setup message
Set up GuideBlink as a Streamable HTTP MCP server for this Codex host.
MCP URL: https://shortsblink.com/mcp
Bearer token: [PASTE YOUR GUIDEBLINK TOKEN]
MCP reference: https://shortsblink.com/docs/mcp

Use Bearer-token authentication. Store the token as a protected credential or environment variable, never in source control or a project file.
Keep write-tool approvals enabled, and ask for any permission needed to update the local Codex MCP configuration.
Restart or reconnect MCP when finished, call tools/list, and verify that the GuideBlink tools are available.
Do not repeat the Bearer token in your response. Reply with the connection status and the available GuideBlink tool names only.

Bearer-token safety: the generated message is shown only on the token-creation response. Do not put it in a public/shared chat, screenshot, source-control file, or LinkedIn message.

Transport

Connection and JSON-RPC protocol

Endpointhttps://shortsblink.com/mcp
HTTPPOST onlyStateless Streamable HTTP
AuthenticationBearer tokenAuthorization: Bearer gbmcp_…
Current versionsMCP 2026-07-28GuideBlink server 1.3.0

Every request is one JSON-RPC 2.0 object. Send Content-Type: application/json, Accept: application/json, text/event-stream, and the bearer token generated on Integrations. GuideBlink returns JSON and an MCP-Protocol-Version response header.

1. Initialize
{
  "jsonrpc": "2.0",
  "id": "initialize-guideblink",
  "method": "initialize",
  "params": {
    "protocolVersion": "2026-07-28",
    "capabilities": {},
    "clientInfo": {"name": "my-mcp-client", "version": "1.0"}
  }
}

The response selects the requested supported protocol version, advertises tools.listChanged: false, and returns server-wide instructions. If the requested version is not supported, GuideBlink selects 2026-07-28.

JSON-RPC methodRequest IDExact behavior
initializeRequiredNegotiates the protocol and returns capabilities, server identity, version, and workflow instructions.
notifications/initializedOmitAccepted as an optional notification; returns HTTP 202 with no JSON body.
pingRequiredReturns an empty JSON-RPC result: {} object.
tools/listRequiredReturns all live tool names, descriptions, input schemas, and safety annotations.
tools/callRequiredRuns params.name with the object in params.arguments for the bearer-token owner.
notifications/cancelledOmitAccepted with HTTP 202, but does not cancel an already queued GuideBlink background job.
2. Discover the live schemas
{
  "jsonrpc": "2.0",
  "id": "list-guideblink-tools",
  "method": "tools/list",
  "params": {}
}
Raw HTTP example
curl https://shortsblink.com/mcp \
  --request POST \
  --header "Authorization: Bearer $GUIDEBLINK_MCP_TOKEN" \
  --header "Content-Type: application/json" \
  --header "Accept: application/json, text/event-stream" \
  --header "MCP-Protocol-Version: 2026-07-28" \
  --data '{"jsonrpc":"2.0","id":"list-tools","method":"tools/list","params":{}}'

Normal Codex use: Codex performs this handshake and constructs tools/call automatically. Raw JSON examples are provided for debugging and custom MCP clients.

Contract

Tool results, errors, and retries

Successful tool result shape
{
  "jsonrpc": "2.0",
  "id": "call-id",
  "result": {
    "content": [{"type": "text", "text": "{...}"}],
    "isError": false,
    "structuredContent": {"field": "value"}
  }
}

Use structuredContent for follow-up calls. create_social_image adds an MCP image block and a resource_link; create_scroll_video adds a resource_link.

isError: true

A valid tool call failed validation or business rules. HTTP remains 200 and structuredContent.error explains the recoverable problem. Insufficient-credit errors also include code, balances, and pricing_url.

-32001 / HTTP 401

The bearer token is missing, invalid, replaced, or revoked.

-32600 / HTTP 400

The body is not a valid JSON-RPC 2.0 request.

-32602

The tool name or JSON-RPC parameters are invalid. Tool-specific argument validation normally returns isError: true.

-32601

The JSON-RPC method is not supported.

-32000 / 403 or 429

The Origin header is untrusted or the MCP request rate limit was reached.

Generation retries are safe only when they reuse the same request_id for the same kind. GuideBlink stores it as an idempotency key; changing it intentionally creates a new project and a new reservation.

Operational rules

Limits, ownership, and media URLs

600MCP requests per token per hour
30generation starts per account per hour
30image calls and video-link calls per account per hour, separately
60 / 6signed image / video downloads per account per hour
1 hoursigned PNG and MP4 URL lifetime
10,000recipient links per account
  • Every database query verifies ownership using the user attached to the bearer token.
  • Creating a new MCP token revokes every previously active token for that account.
  • Signed media URLs contain access to one derived file only. They are marked private/no-store and noindex; download the file instead of sharing the temporary URL.
  • GuideBlink never sends LinkedIn messages and never publishes a Post to LinkedIn.
  • Confirmed recipient-link opens identify the unique URL, not a person with certainty.

Tool group

Expertise and Voice

get_expertise_profile

Read expertise profile

Read-only

Read the authenticated creator's role, services, audiences, proof, CTA, language, and normalized reference text.

How it works
Reads the authenticated account's normalized Expertise profile. If the profile row does not exist yet, GuideBlink creates an empty default row before returning it.
Returns
profile (id, role, services, target_clients, audience_targets, proof_points, CTA, output language, writing samples, extracted reference text, timestamps) and edit_url.
Credits
0 credits; no LLM call.
Approval / side effect
Read-only; no write approval.

Parameters

No parameters. Send an empty arguments: {} object.

Exact tools/call request
{
  "jsonrpc": "2.0",
  "id": "call-get_expertise_profile",
  "method": "tools/call",
  "params": {
    "name": "get_expertise_profile",
    "arguments": {}
  }
}
update_expertise_profile

Update expertise profile

Write / create

Patch only the supplied expertise fields. This is a free manual save and does not use AI or credits.

How it works
Patches only the fields supplied in arguments and returns the complete saved profile. audience_targets is normalized to at most three unique readers and also updates target_clients; supplying target_clients instead rebuilds audience_targets. An empty supplied text clears that field, except an empty output_language becomes English.
Returns
profile, edit_url, updated_fields, and credits_charged: 0.
Credits
0 credits; this is a manual save and does not extract or generate text with AI.
Approval / side effect
Account write; Codex should show the proposed profile changes before saving.
  • cta_url must be an allowed public HTTP or HTTPS URL.
  • Unknown fields are rejected.

Parameters

NameTypeRequiredLimits / defaultDescription
rolestring Nomax chars: 500 Professional role or positioning.
servicesstring Nomax chars: 5000 Services, capabilities, and problems the creator solves.
target_clientsstring Nomax chars: 5000 Legacy newline-separated target readers; saving it rebuilds audience_targets.
audience_targetsarray<string> Nomax items: 3 One to three specific readers for a post; guides use the first reader.
proof_pointsstring Nomax chars: 10000 Verified achievements, examples, credentials, or boundaries for grounded claims.
cta_textstring Nomax chars: 500 Default call-to-action wording.
cta_urlstring Nomax chars: 2000 Optional safe public HTTP(S) CTA URL.
output_languagestring Nomax chars: 80 Default generated-content language; an empty value becomes English.
writing_samplesstring Nomax chars: 40000 Normalized pasted writing examples used as reference context.
Exact tools/call request
{
  "jsonrpc": "2.0",
  "id": "call-update_expertise_profile",
  "method": "tools/call",
  "params": {
    "name": "update_expertise_profile",
    "arguments": {
      "role": "AI automation engineer",
      "services": "Production AI agents and workflow automation",
      "audience_targets": [
        "SaaS founders",
        "Operations leaders"
      ],
      "proof_points": "Describe only verified projects and outcomes.",
      "output_language": "English"
    }
  }
}
get_voice_profile

Read tone of voice

Read-only

Read the creator's hook, post, and CTA examples plus writing rules and advanced instructions.

How it works
Reads the authenticated account's current hook examples, full Post examples, CTA examples, writing rules, and advanced instructions. It creates an empty default Voice row when needed.
Returns
voice (id, five editable Voice fields, timestamps) and edit_url.
Credits
0 credits; no LLM call.
Approval / side effect
Read-only; no write approval.

Parameters

No parameters. Send an empty arguments: {} object.

Exact tools/call request
{
  "jsonrpc": "2.0",
  "id": "call-get_voice_profile",
  "method": "tools/call",
  "params": {
    "name": "get_voice_profile",
    "arguments": {}
  }
}
update_voice_profile

Update tone of voice

Write / create

Patch only the supplied Voice fields. This is a free manual save and does not analyze examples or spend credits.

How it works
Patches only supplied Voice fields, preserving every omitted field. Supplying an empty string clears that field. This call stores examples and rules exactly as manual Voice input; it does not run the separate AI extraction workflow.
Returns
voice, edit_url, updated_fields, and credits_charged: 0.
Credits
0 credits; no LLM call.
Approval / side effect
Account write; show the exact proposed text before saving.

Parameters

NameTypeRequiredLimits / defaultDescription
hook_examplesstring Nomax chars: 20000 Approved opening-hook examples.
post_examplesstring Nomax chars: 80000 Complete approved Post examples.
cta_examplesstring Nomax chars: 20000 Approved CTA examples.
writing_rulesstring Nomax chars: 20000 Explicit tone, rhythm, formatting, and claim rules.
advanced_instructionsstring Nomax chars: 20000 Additional reusable instructions applied during generation.
Exact tools/call request
{
  "jsonrpc": "2.0",
  "id": "call-update_voice_profile",
  "method": "tools/call",
  "params": {
    "name": "update_voice_profile",
    "arguments": {
      "hook_examples": "Most agent evals start too late.",
      "cta_examples": "Comment EVALS and I will send the guide.",
      "writing_rules": "Use concrete examples. Do not invent metrics."
    }
  }
}

Tool group

Templates and generation

list_content_templates

List Post and Guide templates

Read-only

List owned editable content templates. Select one of these template IDs before starting generation.

How it works
Ensures the account's ten default templates exist, then lists owned editable templates. kind can filter the result; omit it to receive both Post and Guide templates.
Returns
templates with id, kind, name, description, structure, instructions, source, and updated_at; plus count and edit_url.
Credits
0 credits; no LLM call.
Approval / side effect
Read-only; no write approval.
  • Use a returned Guide template_id with create_guide. Post template_id is optional.

Parameters

NameTypeRequiredLimits / defaultDescription
kindstring enum Novalues: "post", "guide" Optional template-kind filter; omit to return both kinds.
Exact tools/call request
{
  "jsonrpc": "2.0",
  "id": "call-list_content_templates",
  "method": "tools/call",
  "params": {
    "name": "list_content_templates",
    "arguments": {
      "kind": "guide"
    }
  }
}
get_generation_quote

Quote Post or Guide credits

Read-only

Return the current model-dependent credit reservation and whether the account can afford it. No credits are spent.

How it works
Calculates the conservative credit reservation for the requested content kind using the models currently selected on the Voice page. It also reads the current credit balance and affordability without reserving anything.
Returns
kind, quoted_credits, available_credits, can_generate, pricing_url, selected models, and the reservation/refund note.
Credits
0 credits; quoting does not reserve or spend credits.
Approval / side effect
Read-only. Call this immediately before create_post or create_guide and show the quote to the user.

Parameters

NameTypeRequiredLimits / defaultDescription
kindstring enum Yesvalues: "post", "guide" The content kind to quote.
Exact tools/call request
{
  "jsonrpc": "2.0",
  "id": "call-get_generation_quote",
  "method": "tools/call",
  "params": {
    "name": "get_generation_quote",
    "arguments": {
      "kind": "post"
    }
  }
}
create_post

Generate three LinkedIn drafts

Write / create External visibility

Reserve the quoted credits and queue three editable LinkedIn drafts. Call the quote tool and obtain user approval first.

How it works
Validates the brief, reserves the current quoted credits atomically, creates a Post project, and queues one background job that produces three drafts. It returns immediately; poll get_generation_job. Reusing the same request_id for a Post returns the original job and does not reserve credits twice.
Returns
project_id, job_id, kind, status, progress, quoted_credits, available_credits, request_id, duplicate_request, editor_url, pricing_url, and poll_with.
Credits
Reserves the quoted amount. After completion, unused reserved credits are returned based on measured model cost. A safe failure settles or refunds the reservation according to recorded usage.
Approval / side effect
Paid write; call get_generation_quote and obtain explicit user approval first.
  • source_urls accepts at most 12 safe public URLs.
  • If template_id is supplied, it must identify an owned Post template.

Parameters

NameTypeRequiredLimits / defaultDescription
request_idstring Yesmin chars: 8; max chars: 100; pattern: ^[A-Za-z0-9._:-]+$ A stable unique key for this request. Reusing it returns the original job without charging again.
topicstring Yesmin chars: 10; max chars: 5000 The content idea, problem, source notes, and relevant context.
titlestring Nomax chars: 200 Optional project title. When omitted, GuideBlink uses the first non-empty topic line.
audience_targetsarray<string> Nomax items: 3 One to three specific readers for a post; guides use the first reader.
template_idinteger Nominimum: 1 An owned template ID from list_content_templates; mandatory for Guides and optional for Posts.
use_voiceboolean Nodefault: true Whether generation should apply the saved Voice profile.
source_urlsarray<string> Nomax items: 12 Safe public HTTP(S) source URLs to use as supplied research context.
optionsobject No Optional advanced brief fields.
options.goalstring Nomax chars: 1000 The reader outcome or business goal for this content.
options.proofstring Nomax chars: 2500 Verified examples, observations, or evidence the content may use.
options.ctastring Nomax chars: 500 The desired call to action; it must not invent an offer or outcome.
options.must_includestring Nomax chars: 3000 Specific points, sections, examples, or constraints the result must include.
Exact tools/call request
{
  "jsonrpc": "2.0",
  "id": "call-create_post",
  "method": "tools/call",
  "params": {
    "name": "create_post",
    "arguments": {
      "request_id": "post-agent-evals-001",
      "topic": "Why final-answer grading is not enough for production AI agents",
      "title": "Agent evals beyond the final answer",
      "audience_targets": [
        "AI engineering leaders",
        "Product managers"
      ],
      "use_voice": true,
      "options": {
        "goal": "Teach one practical evaluation lesson",
        "cta": "Invite readers to request the guide"
      }
    }
  }
}
create_guide

Generate a long-form guide

Write / create External visibility

Reserve the quoted credits and queue a researched guide. Requires an owned guide template; companion posts are not generated automatically.

How it works
Validates the brief, reserves the quote, creates a Guide project, and queues the researched long-form generation job. A Guide template is mandatory. To expand a Post, supply both source_project_id and source_post_variant. Companion Posts are not generated by this call. Reusing the same Guide request_id returns the original job without another reservation.
Returns
project_id, job_id, kind, status, progress, quoted_credits, available_credits, request_id, duplicate_request, editor_url, pricing_url, and poll_with.
Credits
Reserves the quoted Guide amount; unused reserved credits are returned after measured usage. Failed work is settled or refunded from recorded usage.
Approval / side effect
Paid write; quote and explicit user approval are required first.
  • Only one active Guide generation is allowed per user.
  • source_post_variant without source_project_id is rejected.

Parameters

NameTypeRequiredLimits / defaultDescription
request_idstring Yesmin chars: 8; max chars: 100; pattern: ^[A-Za-z0-9._:-]+$ A stable unique key for this request. Reusing it returns the original job without charging again.
topicstring Yesmin chars: 10; max chars: 5000 The content idea, problem, source notes, and relevant context.
titlestring Nomax chars: 200 Optional project title. When omitted, GuideBlink uses the first non-empty topic line.
audience_targetsarray<string> Nomax items: 3 One to three specific readers for a post; guides use the first reader.
template_idinteger Yesminimum: 1 An owned template ID from list_content_templates; mandatory for Guides and optional for Posts.
use_voiceboolean Nodefault: true Whether generation should apply the saved Voice profile.
source_urlsarray<string> Nomax items: 12 Safe public HTTP(S) source URLs to use as supplied research context.
optionsobject No Optional advanced brief fields.
options.goalstring Nomax chars: 1000 The reader outcome or business goal for this content.
options.proofstring Nomax chars: 2500 Verified examples, observations, or evidence the content may use.
options.ctastring Nomax chars: 500 The desired call to action; it must not invent an offer or outcome.
options.must_includestring Nomax chars: 3000 Specific points, sections, examples, or constraints the result must include.
source_project_idinteger Nominimum: 1 Optional owned Post project to expand into a guide.
source_post_variantinteger enum Novalues: 1, 2, 3 The source project's Draft 1, 2, or 3; required with source_project_id.
Exact tools/call request
{
  "jsonrpc": "2.0",
  "id": "call-create_guide",
  "method": "tools/call",
  "params": {
    "name": "create_guide",
    "arguments": {
      "request_id": "guide-agent-evals-001",
      "topic": "A practical system for evaluating production AI agents",
      "title": "A Complete Guide to AI Agent Evals",
      "audience_targets": [
        "AI engineering leaders"
      ],
      "template_id": 12,
      "source_urls": [
        "https://platform.openai.com/docs/guides/evals"
      ],
      "options": {
        "must_include": "Outcome grading, trajectory grading, and repeated reliability"
      }
    }
  }
}
get_generation_job

Check generated content

Read-only

Poll one owned generation job. Completed Post jobs include all drafts; completed Guide jobs include Markdown and research sources.

How it works
Reads one owned job and its current state. While work is active, poll_after_seconds is 2. A completed Post includes all three drafts; a completed Guide includes Markdown and citation sources. A failed job includes its safe error and final charged amount.
Returns
Job identity, kind, status, progress, reservation/charge fields, provider/model, error, timestamps, current balance, editor/pricing URLs and poll_after_seconds; plus drafts for a completed Post or guide_markdown, sources, and public_url for a completed Guide.
Credits
0 credits for polling.
Approval / side effect
Read-only; no write approval.
  • Typical states are queued, researching, drafting, validating, completed, and failed.

Parameters

NameTypeRequiredLimits / defaultDescription
job_idinteger Yesminimum: 1 An owned job ID returned by create_post or create_guide.
Exact tools/call request
{
  "jsonrpc": "2.0",
  "id": "call-get_generation_job",
  "method": "tools/call",
  "params": {
    "name": "get_generation_job",
    "arguments": {
      "job_id": 321
    }
  }
}

Tool group

Projects and Guide settings

list_projects

List Post and Guide projects

Read-only

List owned content projects so a client can find the project ID and available Post variants before editing settings or creating media.

How it works
Lists owned Post and Guide projects, newest updated first. Use it to resolve a project_id and to discover which Post draft variants exist before a visual export.
Returns
projects with id, kind, title, topic, slug, status, publication/gate settings, timestamps, available_post_variants, editor_url, and public_url; plus count.
Credits
0 credits; no LLM call.
Approval / side effect
Read-only; no write approval.

Parameters

NameTypeRequiredLimits / defaultDescription
kindstring enum Novalues: "post", "guide" Optional project-kind filter.
limitinteger Nominimum: 1; maximum: 100; default: 25 Maximum number of newest projects to return.
Exact tools/call request
{
  "jsonrpc": "2.0",
  "id": "call-list_projects",
  "method": "tools/call",
  "params": {
    "name": "list_projects",
    "arguments": {
      "kind": "post",
      "limit": 25
    }
  }
}
get_guide_settings

Read Guide settings and questions

Read-only

Read one owned Guide's title, publication and lead-gate settings, current questions, and reusable questions from other Guides.

How it works
Reads one owned Guide's editable public settings and normalized lead questions. It also deduplicates and returns reusable questions from the account's other Guides.
Returns
project_id, title, status, published, noindex, email_gate, gate_questions, reusable_questions, public_url, editor_url, and leads_url.
Credits
0 credits; no LLM call.
Approval / side effect
Read-only. Call this before update_guide_settings or set_guide_questions.

Parameters

NameTypeRequiredLimits / defaultDescription
project_idinteger Yesminimum: 1 The owned Guide project ID.
Exact tools/call request
{
  "jsonrpc": "2.0",
  "id": "call-get_guide_settings",
  "method": "tools/call",
  "params": {
    "name": "get_guide_settings",
    "arguments": {
      "project_id": 456
    }
  }
}
update_guide_settings

Update Guide settings

Write / create External visibility

Update an owned Guide's title, public/private state, lead gate, and search-engine visibility. Publishing requires completed Guide content.

How it works
Patches only the supplied Guide settings. title changes the displayed title; published controls the public URL; email_gate controls the name/email gate; noindex controls search-engine indexing. Publishing is rejected until the Guide contains completed Markdown.
Returns
The same complete settings payload as get_guide_settings, plus updated_fields and credits_charged: 0.
Credits
0 credits; no LLM call.
Approval / side effect
Account/public write. Publishing or unpublishing changes external visibility and must be shown for approval.
  • At least one setting besides project_id is required.
  • Omitted settings remain unchanged.

Parameters

NameTypeRequiredLimits / defaultDescription
project_idinteger Yesminimum: 1 The owned Guide project ID.
titlestring Nomin chars: 3; max chars: 200 Replacement public/editor Guide title.
publishedboolean No true makes a completed Guide public; false makes it private.
email_gateboolean No Whether visitors must complete the name/email gate before reading.
noindexboolean No true asks search engines not to index the public Guide.
Exact tools/call request
{
  "jsonrpc": "2.0",
  "id": "call-update_guide_settings",
  "method": "tools/call",
  "params": {
    "name": "update_guide_settings",
    "arguments": {
      "project_id": 456,
      "title": "AI Agent Evals: The Complete Guide",
      "published": true,
      "email_gate": true,
      "noindex": true
    }
  }
}
set_guide_questions

Set Guide lead questions

Write / create

Replace the complete lead-question list for one owned Guide. Read current settings first and include existing questions you want to keep. Supports text, single-answer, and multiple-answer questions.

How it works
Replaces the complete lead-question list for one owned Guide and optionally changes the name/email gate. Question IDs are normalized when missing or duplicated. single and multiple questions require 2-12 distinct choices; text questions store no choices.
Returns
The complete saved Guide settings payload, normalized gate_questions, reusable_questions, and credits_charged: 0.
Credits
0 credits; no LLM call.
Approval / side effect
Account write. Read current questions first and show the complete replacement list before saving.
  • An empty questions array removes every custom question.
  • Maximum: eight questions per Guide.

Parameters

NameTypeRequiredLimits / defaultDescription
project_idinteger Yesminimum: 1 The owned Guide project ID.
questionsarray<object> Yesmax items: 8 The complete replacement question list; [] removes all custom questions.
questions[].idstring Nopattern: ^[a-z0-9_-]{1,40}$ Optional stable answer key; GuideBlink creates or normalizes it when needed.
questions[].promptstring Yesmin chars: 2; max chars: 300 The exact question shown to the Guide visitor.
questions[].typestring enum Yesvalues: "text", "single", "multiple" Free text, one choice, or multiple choices.
questions[].requiredboolean Nodefault: true Whether the visitor must answer before unlocking the Guide.
questions[].optionsarray<string> Nomin items: 2; max items: 12 Distinct answer choices required for single or multiple questions; ignored for text questions.
email_gateboolean Nodefault: true Enable the name/email gate with these questions.
Exact tools/call request
{
  "jsonrpc": "2.0",
  "id": "call-set_guide_questions",
  "method": "tools/call",
  "params": {
    "name": "set_guide_questions",
    "arguments": {
      "project_id": 456,
      "email_gate": true,
      "questions": [
        {
          "id": "challenge",
          "prompt": "What is your biggest agent-evaluation challenge?",
          "type": "text",
          "required": true
        },
        {
          "id": "stage",
          "prompt": "What stage are you at?",
          "type": "single",
          "required": true,
          "options": [
            "Planning",
            "Pilot",
            "Production"
          ]
        }
      ]
    }
  }
}

Tool group

Images and video

create_social_image

Create a social-post image

Write / create

Create a free 1080×1080 PNG from an owned Post draft or Guide. Returns the image directly and an expiring download link.

How it works
Renders a deterministic 1080x1080 PNG from an owned Guide or selected Post draft. word_cloud extracts prominent terms; quote_card uses the selected content's opening hook. The MCP result contains the image itself and a signed download resource.
Returns
Structured metadata (project_id, content_source, style, filename, MIME type, dimensions, digest, download_url, expiry, credits_charged) plus an MCP image content block and resource_link.
Credits
0 credits; local rendering, no LLM call.
Approval / side effect
Creates a derived file but does not publish or upload it.
  • variant is required for a Post project; omit it to use Guide Markdown.
  • The signed download URL expires after 3,600 seconds.

Parameters

NameTypeRequiredLimits / defaultDescription
project_idinteger Yesminimum: 1 An owned Post or Guide project ID.
variantinteger enum Novalues: 1, 2, 3 Required for a Post project; optional for a Guide companion Post.
stylestring enum Novalues: "word_cloud", "quote_card"; default: "word_cloud" The deterministic square-image design.
Exact tools/call request
{
  "jsonrpc": "2.0",
  "id": "call-create_social_image",
  "method": "tools/call",
  "params": {
    "name": "create_social_image",
    "arguments": {
      "project_id": 789,
      "variant": 2,
      "style": "word_cloud"
    }
  }
}
create_scroll_video

Create a square scrolling video

Write / create

Create a free expiring download link for a styled 1080×1080 five-second MP4 from an owned Post draft or Guide. Rendering starts when the link is downloaded.

How it works
Creates a signed resource link for a styled 1080x1080, five-second scrolling MP4 based on an owned Guide or Post draft. Rendering begins only when the signed URL is opened, so the tool call itself returns quickly.
Returns
project_id, content_source, filename, MIME type, 1080x1080 dimensions, five-second duration, download_url, expiry, rendering note, credits_charged, and an MCP resource_link.
Credits
0 credits; local video rendering, no LLM call.
Approval / side effect
Creates a private derived download; it does not upload or publish media.
  • variant is required for a Post project.
  • The link expires after one hour and permits at most six video downloads per account per hour.

Parameters

NameTypeRequiredLimits / defaultDescription
project_idinteger Yesminimum: 1 An owned Post or Guide project ID.
variantinteger enum Novalues: 1, 2, 3 Required for a Post project; optional for a Guide companion Post.
Exact tools/call request
{
  "jsonrpc": "2.0",
  "id": "call-create_scroll_video",
  "method": "tools/call",
  "params": {
    "name": "create_scroll_video",
    "arguments": {
      "project_id": 789,
      "variant": 2
    }
  }
}

Tool group

Guides, links, and leads

list_guides

List GuideBlink guides

Read-only

List the authenticated creator's guide projects and recipient-link open totals.

How it works
Lists owned Guide projects newest first. published optionally filters to public or private Guides; omit it to list both.
Returns
guides with id, title, slug, status, publication/noindex state, updated_at, tracked-link/open totals, and public_url; plus count.
Credits
0 credits; no LLM call.
Approval / side effect
Read-only; no write approval.

Parameters

NameTypeRequiredLimits / defaultDescription
publishedboolean No Optionally return only published or unpublished guides.
limitinteger Nominimum: 1; maximum: 100; default: 25 Maximum number of newest Guides to return.
Exact tools/call request
{
  "jsonrpc": "2.0",
  "id": "call-list_guides",
  "method": "tools/call",
  "params": {
    "name": "list_guides",
    "arguments": {
      "published": true,
      "limit": 25
    }
  }
}
get_guide

Get a GuideBlink guide

Read-only

Read one owned guide, including its Markdown content and publication URL.

How it works
Reads one owned Guide, including its full Markdown and public settings. It does not increment public Guide analytics.
Returns
id, title, topic, slug, status, published, noindex, email_gate, guide_markdown, timestamps, and public_url.
Credits
0 credits; no LLM call.
Approval / side effect
Read-only; no write approval.

Parameters

NameTypeRequiredLimits / defaultDescription
project_idinteger Yesminimum: 1 The owned Guide project ID.
Exact tools/call request
{
  "jsonrpc": "2.0",
  "id": "call-get_guide",
  "method": "tools/call",
  "params": {
    "name": "get_guide",
    "arguments": {
      "project_id": 456
    }
  }
}

Live schemas

Build clients against discovery, not copied docs.

Use tools/list as the runtime source of truth. This page explains behavior; the JSON catalog exposes the same schemas for testing and inspection.

Open catalog.jsonBack to Help