Skip to main content
Glama
fopost

@fopost/mcp

Official
by fopost

@fopost/mcp

MCP server for FoPost: manage social media posts, accounts, and AI usage from any MCP-aware client (Claude Desktop, Cursor, ChatGPT desktop, Continue, etc.).

Runs via npx -y @fopost/mcp, no install step. Requires Node 18 or newer.

0.x release. Tool names and arguments may still change between minor versions. Pin an exact version if that matters to you.

Tools

Tool

What it does

list_posts

List posts in a workspace, filter by status

get_post

Fetch a post by id

schedule_post

Create a post (draft, scheduled, or publish-now)

edit_post

Update an existing post

cancel_post

Cancel a scheduled post

delete_post

Permanently delete a post

list_post_deliveries

Per-account delivery status for a post

list_accounts

List connected social accounts

get_account_health

Check token freshness and rate-limit headroom

list_workspaces

List workspaces the user can access

generate_caption

AI-generate or improve a caption (1 credit)

rewrite_for_platforms

Rewrite content per target platform (1 credit each)

repurpose_url

Turn a blog URL into N platform-optimized posts (6 credits)

get_ai_credits

Show current AI credit balance

Related MCP server: Solnk MCP

Setup

1. Get an API key

Generate one at https://fopost.com/dashboard/api-keys with the scopes you need (posts, publish, accounts, workspaces are most common; publish is required to publish, retry or cancel a post).

2. Add to your MCP client

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "fopost": {
      "command": "npx",
      "args": ["-y", "@fopost/mcp"],
      "env": {
        "FOPOST_API_KEY": "your-api-key"
      }
    }
  }
}

Cursor / Continue / Other

Use the same npx -y @fopost/mcp command with FOPOST_API_KEY in the environment.

Configuration

Variable

Required

Default

FOPOST_API_KEY

yes

required

FOPOST_API_URL

no

https://api.fopost.com

Self-hosted? Point FOPOST_API_URL at your instance.

Example prompts

"List my failed posts from this week and tell me which accounts are unhealthy."

"Take this URL and turn it into a Twitter thread, a LinkedIn post, and a dev.to summary: https://example.com/blog/post"

"How many AI credits do I have left this period?"

Contributing

Issues and pull requests are welcome at fopost/fopost-mcp.

npm install
npm run lint     # tsc --noEmit
npm run build    # tsup -> dist/

License

MIT

Available Tools

14 tools
cancel_postA

Cancel a scheduled post. The post stays in the system but will not be published.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPost id (uuid)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description conveys the key side effect: the post remains in the system but is not published. It does not mention whether the schedule is cleared or if it can be re-scheduled, but the primary behavior is clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that packs the essential information without any filler. It is well-structured and front-loads the action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete for the operation's primary purpose. It does not describe the return value, but for a cancel action, an explicit output is rarely needed. Given the simplicity and no output schema, this is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The sole parameter 'id' is described in the schema as 'Post id (uuid)', which is sufficient for a simple identifier. The tool description adds no further clarification, but given the 100% schema coverage, a baseline score is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (cancel a scheduled post) and the outcome (stays in system but not published), which distinguishes it from delete_post. The verb 'cancel' is specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use this tool (when you want to prevent publication without deletion) but does not explicitly contrast it with alternatives like delete_post or edit_post. It would benefit from a note like 'Use this instead of delete_post to keep the post record.'

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_postA

Permanently delete a post. Cannot be undone.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPost id (uuid)

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It does state the irreversible nature ('Cannot be undone'), which is critical, but it does not mention potential side effects (e.g., deleting associated comments, delivery history) or any authorization requirements. For a destructive operation, this is a moderate gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with zero redundant wording. The key action and irreversible consequence are front-loaded, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple delete operation with a single UUID parameter, the description covers the essential action and consequence. It does not mention return values, but no output schema exists to clarify that. It is adequate for most agents, though it could explicitly note that it is a hard delete with no confirmation dialog.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage for the single parameter 'id', with a clear description and format. The tool description adds no additional meaning beyond what the schema already provides, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('delete'), a resource ('post'), and an important qualifier ('permanently') that distinguishes it from sibling tools like cancel_post, which likely implies a reversible action. The phrase 'Cannot be undone' further reinforces the tool's identity as a hard delete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives. While it implies permanent deletion, it does not mention that cancel_post may be appropriate for reversible cancellations, nor does it provide any exclusions or prerequisites (e.g., 'use this only if the post is not scheduled'). This leaves the agent to infer the decision boundary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

edit_postA

Update an existing post. Only provided fields are changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPost id (uuid)
labelsNo
contentNo
schedule_atNo

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It does disclose one meaningful trait: 'Only provided fields are changed' establishes partial-update (PATCH-like) semantics rather than full replacement. However, it omits required permissions, error behavior for a nonexistent id, and any indication of what a successful update returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, each earning its place: the first states the operation, the second scopes it. The verb is front-loaded with zero filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is flat with only four scalar parameters, and the description states the two critical invariants: it targets an existing post and only provided fields change. But with no output schema, no annotations, and no guidance on schedule_at format or labels behavior, an agent still has meaningful gaps to resolve before invoking correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 25% (only the id property is described), so the description must compensate but barely does. 'Only provided fields are changed' adds partial-update meaning to the optional parameters, yet it does not explain labels semantics (replace vs. append), any format constraints for schedule_at, or constraints on content.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Update') and resource ('an existing post'), and the second sentence scopes the operation to partial updates. This clearly differentiates it from the sibling tools (delete_post, get_post, schedule_post, cancel_post), whose verbs describe distinct operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied — the agent can infer that edit_post is the right tool when altering an existing post's fields — but no explicit when-to-use, when-not-to-use, or alternative routing is given. The description does not address the overlap with schedule_post and cancel_post when the intended change concerns timing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_captionA

Generate or improve a social media caption with AI. Optionally pass current draft text and target platforms for tone-aware output. Costs 1 AI credit.

ParametersJSON Schema
NameRequiredDescriptionDefault
platformsNo
char_limitNo
workspace_idNo
current_captionNo

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite having no annotations, the description discloses an important behavioral detail: the tool costs 1 AI credit. It also sets expectations that output is tone-aware and produced by AI, which adds useful information beyond a generic tool name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: it states the main function first, then optional inputs, then cost. There is no wasted phrasing or redundant repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is adequate for a simple generative tool with all optional parameters, and the credit cost is clearly noted. Gaps remain around char_limit and workspace_id semantics, expected output shape, and how it differs from the similar sibling rewrite_for_platforms.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description maps current_caption to draft text and platforms to target platforms, which adds intent beyond the raw schema. However, it does not explain char_limit or workspace_id, and schema description coverage is 0%, so the description only partially compensates for undocumented parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb and resource: generate or improve a social media caption with AI. It is easy to identify the tool's main purpose, though it does not explicitly distinguish itself from the sibling tool rewrite_for_platforms.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context: use this when you need an AI caption generated or improved, optionally passing draft text and target platforms for tone-aware output. It does not mention exclusions or alternative tools, but the primary use case is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_account_healthA

Check token freshness and rate-limit headroom for a single account. Useful when posts are failing — tells you if the OAuth token has expired.

ParametersJSON Schema
NameRequiredDescriptionDefault
account_idYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of explaining behavior. It clearly frames the tool as a diagnostic, non-mutating check of token freshness and rate-limit headroom, and clarifies the kind of answer it provides. This is strong behavioral detail for a read-only health tool, though it never explicitly states that it performs no modifications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the core action and followed by a practical use case. Every word earns its place with no filler, repetition, or unrelated detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple, single-parameter diagnostic tool, the description gives the scenario, the purpose, and the key outcome. It doesn't specify the exact return structure, but no output schema exists and the description already conveys what the result should communicate ('token freshness', 'rate-limit headroom', 'OAuth token expired').

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is reported as 0%, and the only parameter is account_id. The phrase 'for a single account' partially compensates by indicating what account_id represents, but the description doesn't explain how to obtain the ID or that it must reference an existing account. The schema confirms it's a uuid string, so the core meaning is inferrable but not fully spelled out.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Check') and resource ('token freshness and rate-limit headroom') for a single account, going beyond the generic tool name. It also distinguishes itself from siblings by focusing on account health diagnostics rather than account listing, post mutations, or credits.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides a specific usage trigger: 'Useful when posts are failing — tells you if the OAuth token has expired.' This gives the agent a clear context in which to select the tool, although it does not explicitly mention when not to use it or name sibling alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_ai_creditsA

Show the current AI credit balance, usage this period, and reset date.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly states that the tool is read-only and reports specific information (balance, usage, reset date), which is sufficient for a simple tool with no side effects. It also implicitly signals that no mutation is performed, aligning with the read-only nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that directly conveys the tool's purpose and key information. It is front-loaded and contains no redundant or irrelevant details, maximizing clarity in minimal words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters and a straightforward read-only purpose, the description is complete enough. It does not detail return format or exact usage specifics, but given the simplicity and lack of an output schema, the description sufficiently covers what an agent needs to know to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema is empty, so there is no parameter info to add. The description effectively communicates the output content (balance, usage, reset date), which is the core value. A baseline of 4 is appropriate for a parameterless tool where the description covers the tool's purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: showing the current AI credit balance, usage for the period, and the reset date. It uses a specific verb ('show') and clearly identifies the resource ('AI credit balance'), making it distinct from sibling tools that handle posts, accounts, or content generation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a read-only information retrieval context, and with zero parameters, usage is straightforward. It provides clear context for what the tool reports but does not explicitly state when to prefer it over alternatives, which is acceptable given its unique scope among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_postA

Fetch a single post by id with full content, settings, and delivery records.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPost id (uuid)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The verb 'Fetch' implies a non-destructive read operation, and the description tells what data is returned. With no annotations, it does not say anything about permissions, errors, response envelopes, or lack of side effects, leaving some burden unmet.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single clear sentence, front-loaded with the key information: what the tool does and what it returns. Not a single wasted phrase.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read tool with no output schema, the description covers the core details: the exact parameter, the item type, and the return content. It could mention what happens for an invalid/missing id, but that is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents the only parameter 'id' as a UUID with a description. The tool description merely says 'by id', which adds no semantic detail beyond the schema. Since schema coverage is 100%, the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies a clear verb ('Fetch') and a concrete resource ('a single post by id') plus what it returns (full content, settings, delivery records). This is immediately distinct from list_posts and list_post_deliveries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'single post by id' suggests the intended context of retrieving one specific post rather than listing posts. It does not explicitly mention alternatives or exclusions, but the usage intent is clear enough for a one-parameter lookup.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_accountsA

List connected social accounts in a workspace. Returns platform, username, primary flag, and connection status.

ParametersJSON Schema
NameRequiredDescriptionDefault
workspace_idYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses return fields (platform, username, primary flag, connection status), which adds context beyond the input schema. However, without annotations, it omits details like authentication requirements, rate limits, and the meaning of 'connected' or 'primary flag'. It is helpful but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, well-structured sentence that efficiently states the action and lists return fields. No redundant words; all information is presented clearly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list operation, the description is mostly sufficient, but it omits potential nuances like pagination, ordering, or error handling. The contrast with get_account_health is not clarified, which could lead to confusion in the absence of an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema_description_coverage at 0%, the description does not mention workspace_id or any parameter details. Although the parameter name is intuitive, the description fails to reinforce its requirement or clarify the expected format beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a clear verb 'list' and specifies the resource 'connected social accounts in a workspace', distinguishing it from siblings like list_posts and list_workspaces. It immediately conveys what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage is implied through the purpose, but the description does not explicitly state when to use this tool over alternatives or mention any exclusions. No contrast with get_account_health or other account-related tools is provided, leaving selection inference to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_post_deliveriesB

Show per-account delivery status (queued, publishing, published, failed) for a post.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPost id (uuid)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It hints at a read-only operation via 'show' and lists the statuses, but it omits details on response structure, error conditions, permissions, or rate limits, leaving significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, tightly worded sentence that front-loads the core action and scope. It contains no filler and is appropriately sized for a simple tool, though it does not elaborate on output details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description should clarify return structure. It states 'Show per-account delivery status' but does not explicitly mention that it returns a collection or list, nor does it cover pagination or error handling. For a one-parameter read tool, it is nearly complete but could specify the response format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with the sole parameter 'id' described as 'Post id (uuid)'. The description adds no extra parameter semantics beyond the schema, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'show' and the resource 'per-account delivery status' for a post, listing the status values (queued, publishing, published, failed). This distinguishes it from sibling tools like get_post or list_posts, though it does not explicitly name an alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when delivery status is needed, but it does not provide explicit when-to-use or when-not-to-use guidance, nor does it contrast with siblings. Agents must infer the appropriate context from the purpose alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_postsA

List posts in a workspace. Filter by status (draft, scheduled, published, failed) and pagination. Returns content, scheduled time, target accounts, and delivery status.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo
statusNoFilter by post status
workspace_idYesWorkspace id (uuid) to list posts from

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of disclosing behavior. It clearly signals a read-only listing operation and describes filtering, pagination, and the returned data fields. It does not mention ordering, default pagination limits, or auth needs, but the core behavioral profile is transparent enough for a list endpoint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences convey purpose, filtering, pagination, and return contents without filler. The main action is front-loaded, and every clause adds information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter tool with no output schema and no annotations, the description is helpful but incomplete. It states return fields and filtering, yet it does not explain pagination behavior (defaults, max limit), total counts, ordering, or the complete status enum. An agent could call the tool correctly, but some operational details are left to inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50%; status and workspace_id are described, but limit and offset are not. The description adds the 'pagination' concept and names some status values, but it omits enum members like pending_approval and cancelled and does not explain limit/offset defaults or semantics. This is minimally adequate but not fully compensatory.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb and resource: 'List posts in a workspace.' It also identifies key capabilities (filtering by status, pagination) and return fields, making the tool's purpose understandable. It does not explicitly differentiate from siblings like list_post_deliveries, but the resource is distinct enough.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives, nor does it mention exclusions or when a sibling like list_post_deliveries would be more appropriate. It implies a list/filter use case but leaves routing decisions to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_workspacesA

List workspaces the authenticated user has access to.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does communicate that results are filtered by the authenticated user's access, which is a useful behavioral trait, but it does not disclose pagination, result format, or potential empty-list behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. Every word contributes to the tool's meaning and usage scope.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple zero-parameter listing tool, this description is largely sufficient. The only missing context is what the returned workspace objects look like and whether listing is paginated, but the description enables correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the baseline is 4. The description adds no parameter-specific details, but none are needed because the input schema already confirms no parameters exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List') and the resource ('workspaces'), and specifies the scope ('the authenticated user has access to'). This distinguishes it from sibling tools like list_posts and list_accounts without needing to reference them explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The context is clear: use this tool when the agent needs to see which workspaces the current user can access. There are no explicit when-not-to-use instructions or named alternatives, so it stops just short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

repurpose_urlA

Fetch a blog/article URL and generate one optimized post per requested platform in a single call. The flagship "Developer Content Stack" feature — write once, get 16 versions. Costs 6 AI credits per call regardless of platform count.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
platformsYes
workspace_idNo

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the disclosure burden. It does disclose a meaningful behavioral trait: the call is batched, generates one post per platform, and costs 6 AI credits regardless of platform count. It omits response format, error behavior, and auth or rate-limit caveats, but the credit-cost disclosure is valuable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences carry the core action, scope, and cost without rambling. The flagship/"write once, get 16 versions" phrase is slightly promotional, but it is short and reinforces the batch behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The definition is enough to know what the tool does and roughly how to call it, but with no output schema it should describe the response shape, and it never explains workspace_id or when to prefer this over rewrite_for_platforms. These are clear gaps given the tool's moderate complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains url (the page to fetch) and platforms (the list for which optimized posts are generated), but says nothing about workspace_id. The enum on platforms also helps, but the required workspace context is unidentified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific action (fetch a blog/article URL) and a concrete outcome (generate one optimized post per requested platform in a single call). The URL-to-multiple-platforms behavior separates it from sibling tools like rewrite_for_platforms, even without naming them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The use case is implied: use this when you have a blog/article URL and want platform-specific posts in one call. However, it never explicitly contrasts the tool with rewrite_for_platforms or other siblings, nor gives when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rewrite_for_platformsB

Rewrite a piece of content for one or more target platforms, applying platform-specific tone and length constraints. Costs 1 AI credit per platform.

ParametersJSON Schema
NameRequiredDescriptionDefault
toneNoOptional user-defined tone override
contentYes
platformsYes
workspace_idNo

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It does disclose the cost ('Costs 1 AI credit per platform'), which is useful, and hints at platform-specific adjustments. However, it does not mention permission requirements, reversibility, what happens with multiple platforms (e.g., returns multiple rewrites), or any other side effects. The cost disclosure is a positive but incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two terse sentences that front-load the core purpose and immediately state the cost. Every word earns its place; no filler or repetition. Efficiency is excellent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (4 params, 20 platform options, multi-platform support) and the lack of an output schema, the description is too sparse. It does not explain return values, error behavior, how the 'tone' override interacts with platform defaults, or how costs accumulate for multiple platforms beyond the per-platform statement. An agent would likely need to probe the tool or rely on external knowledge to use it confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25%, so the description needs to compensate. It does not explain 'tone' beyond the schema's minimal 'Optional user-defined tone override', nor does it clarify the expected format of 'content' or the role of 'workspace_id'. The description only indirectly references the 'platforms' parameter without adding meaningful detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Rewrite a piece of content'), the target resource ('one or more target platforms'), and the distinguishing behavior ('applying platform-specific tone and length constraints'). This makes it easy to differentiate from siblings like generate_caption or repurpose_url, which have different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or scenarios where another tool (e.g., generate_caption, repurpose_url) would be more appropriate. The usage context is only implied by the purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

schedule_postA

Create and schedule a post. Pass the body text, target account ids, and an ISO 8601 schedule_at. Omit schedule_at to save as draft. Use publish_now=true to publish immediately after creation.

ParametersJSON Schema
NameRequiredDescriptionDefault
labelsNo
contentYesPost body text
media_urlsNoPre-uploaded media URLs from /api/v1/media/upload
account_idsYesTarget social account ids (uuids)
publish_nowNo
schedule_atNoISO 8601 timestamp; omit to save as draft
workspace_idYesWorkspace id (uuid)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses the mutation (create/schedule) and the two behavior branches (draft vs immediate publish), but does not mention side effects, return values, or error handling. It adds useful context but lacks depth for a mutation tool with no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with front-loaded main action and clear variations. Each sentence earns its place; no waste or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter creation tool with no output schema, the description covers the essential actions and branches. It omits explicit mention of required workspace_id and doesn't describe the response, but the schema provides required fields and the variations are clear. Slightly incomplete but adequate for typical use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 71%; description clarifies content, account_ids, and schedule_at format (ISO 8601), and adds behavior for publish_now. However, it says nothing about workspace_id, labels, or media_urls, which are only partially covered by schema descriptions. The description adds value but does not fully compensate for the uncovered parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Create and schedule') and resource ('a post'), with clear scope. It distinguishes from siblings like delete_post and edit_post by naming the creation/scheduling action and its variations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit usage conditions: omit schedule_at to save as draft, use publish_now=true for immediate publication. Gives clear context on when to use the tool, though it does not explicitly name alternatives or exclusions—but the primary use case is well-defined.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 14 tool updatesv0.2.0
    • First observedcancel_post
    • First observeddelete_post
    • First observededit_post
    • First observedgenerate_caption
    • First observedget_account_health
    • First observedget_ai_credits
    • First observedget_post
    • First observedlist_accounts
    • First observedlist_post_deliveries
    • First observedlist_posts
    • First observedlist_workspaces
    • First observedrepurpose_url
    • First observedrewrite_for_platforms
    • First observedschedule_post

TDQS

A3.9/5.0
Disambiguation4/5

Post lifecycle tools are clearly distinct: schedule_post creates, edit_post updates, cancel_post cancels, delete_post removes. The AI tools have some overlap, but generate_caption, rewrite_for_platforms, and repurpose_url are differentiated by input and output scope.

Naming Consistency5/5

Tool names consistently follow a snake_case verb_noun pattern: list_posts, get_post, schedule_post, edit_post, delete_post, list_accounts. Minor multi-word names like list_post_deliveries and rewrite_for_platforms still fit the overall convention.

Tool Count5/5

14 tools is well-scoped for a social media scheduling and AI content assistant. Each tool covers a distinct operation across posts, accounts, workspaces, and AI generation without feeling bloated.

Completeness4/5

Posts have full lifecycle coverage: create/schedule, read, update, cancel, delete, list, and delivery tracking. Minor gaps exist around account connection/disconnection and workspace management, but the core scheduling workflow is complete.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Schedule and manage social media posts across 10 platforms (Instagram, Facebook, TikTok, X, LinkedIn, YouTube, Threads, Pinterest, Bluesky, Telegram) from any MCP-compatible AI assistant. Supports batch posting, media uploads, analytics, and platform-specific features like Reels, Shorts, and carousels.
    11
    418
    5
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables publishing and scheduling content across 9 social platforms (X, Instagram, TikTok, YouTube, Facebook, LinkedIn, Pinterest, Threads, Bluesky) through a single MCP tool interface, acting as a stateless proxy to the Solnk API.
    11
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    A full social media management MCP server enabling post, read, schedule, and analyze across Facebook, Instagram, LinkedIn, X/Twitter, Pinterest, and YouTube from any MCP-compatible AI client.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/fopost/fopost-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server