pinterest-mcp
Allows AI agents to manage Pinterest boards and pins, including creating, updating, deleting, and bulk-creating pins, searching public pins, and retrieving pin and account analytics via the Pinterest API v5.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@pinterest-mcpCreate a pin from https://example.com/pic.jpg titled 'Summer Sale' and link it to my store."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
pinterest-mcp
An MCP (Model Context Protocol) server for the Pinterest API v5.
Create pins, manage boards, and track analytics — all from an AI agent.
First open-source Pinterest MCP server.
Features
Tool | Description |
| Create a new Pin with image, title, description, and link |
| Edit an existing pin’s metadata |
| Remove a pin |
| Impressions, saves, link clicks, engagement rate |
| List your boards |
| Create a new board |
| List all pins on a board |
| Search public pins by keyword |
| Account-level metrics: impressions, saves, engagements |
| Create multiple pins in one call (rate-limited) |
| Trending searches and interests in a niche |
Related MCP server: pinterest-mcp
Installation
pip install pinterest-mcpOr run directly with uvx:
uvx pinterest-mcpAuthentication
Pinterest uses OAuth 2.0. You need a Pinterest Business account and a registered app.
Create an app at developers.pinterest.com
Add redirect URI:
http://localhost:8089/callbackCopy Client ID + Client Secret to
.env(see.env.template)Run the auth flow to generate your access token:
pinterest-mcp-authThis opens a browser, asks you to authorize, and saves your token to .pinterest_token.json.
MCP Client Setup
{
"mcpServers": {
"pinterest": {
"command": "uvx",
"args": ["pinterest-mcp"],
"env": {
"PINTEREST_CLIENT_ID": "your_client_id",
"PINTEREST_CLIENT_SECRET": "your_client_secret",
"PINTEREST_ACCESS_TOKEN": "your_access_token"
}
}
}
}Rate Limits
Pinterest API v5 rate limits for organic posting:
10 pins per minute per account
250 pins per day per account
bulk_create_pins automatically respects the per-minute limit.
Development
git clone https://github.com/clugtu/pinterest-mcp
cd pinterest-mcp
pip install -e ".[dev]"
pre-commit install
pytestThis repo uses pre-commit with ruff for linting and formatting. Install pre-commit if you don't have it:
pip install pre-commitThen run pre-commit install once to register the hooks — they'll run automatically on every git commit.
License
MIT — see LICENSE
Related
cults3d-mcp — Cults3D marketplace MCP server
Available Tools
11 toolsbulk_create_pinsA
Create multiple pins on a board. Rate-limited to 10/min automatically. Each pin dict must include title, description, and either image_url or image_path.
| Name | Required | Description | Default |
|---|---|---|---|
| pins | Yes | ||
| dry_run | No | ||
| board_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It mentions the rate limit (a behavioral constraint) but omits key side effects like whether pins are created atomically, what happens on partial failure, or the effect of the dry_run parameter. It also does not describe any permissions or side effects beyond creation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, tightly written with no redundant words. It conveys the core action, a constraint, and required pin fields efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides key context about pin content and rate limiting, but omits details about the dry_run parameter's behavior, return value, or error handling. Given the output schema exists, some of these might be covered, but the description alone does not fully round out the tool's context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains that each pin dict must include title, description, and either image_url or image_path, which directly clarifies the 'pins' array parameter structure. However, it does not explain the purpose or effect of the dry_run parameter, and board_id is only implied via 'on a board'. With 0% schema description coverage, this leaves gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates multiple pins on a board, using the verb 'Create' and specifying the resource 'pins' and scope 'multiple' and 'on a board'. It distinguishes itself from the sibling create_pin (single pin) and other unrelated tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly indicates usage for bulk creation via 'multiple', and mentions a rate limit of 10/min, which is a practical constraint. However, it does not explicitly contrast with create_pin or state when to prefer one over the other.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_boardA
Create a new Pinterest board. privacy: PUBLIC or SECRET.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| privacy | No | PUBLIC | |
| description | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, and the description only states 'Create' without detailing side effects, permissions, or limitations. The description carries the full burden but provides minimal behavioral insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and to the point, with no unnecessary words or redundancy, making it efficient for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers one parameter's semantics, it lacks explanation for the other two parameters and does not mention any output or return behavior, leaving gaps for an agent relying solely on this description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description clarifies the 'privacy' parameter by noting allowed values 'PUBLIC or SECRET', but it does not elaborate on 'name' or 'description' parameters, leaving their meaning to be inferred from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Create' and the resource 'Pinterest board', effectively distinguishing it from sibling tools like create_pin and update_pin.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives, though the action and resource are self-explanatory within the context of sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_pinA
Create a new Pinterest pin. Provide either image_url (remote) or image_path (local file). Use dry_run=True to validate without posting (Pinterest has no sandbox).
| Name | Required | Description | Default |
|---|---|---|---|
| link | No | ||
| title | Yes | ||
| dry_run | No | ||
| alt_text | No | ||
| board_id | Yes | ||
| image_url | No | ||
| image_path | No | ||
| description | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, but the description discloses the key side effect of posting and the lack of a sandbox, while offering dry_run as a safe validation path. It does not mention auth or rate limits, so it is not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler; the main action, image source alternatives, and dry_run behavior are all communicated efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Provides enough context for basic invocation: what the tool does, how to supply an image, and how to validate without posting. It does not explicitly state that image_url and image_path are mutually exclusive, but schema requirements and the presence of an output schema cover most remaining needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions are absent, but the description adds meaning for image_url, image_path, and dry_run. The remaining parameters rely on self-explanatory names and titles and are not elaborated, so coverage is partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States it creates a new Pinterest pin and explicitly mentions the image source options and dry_run validation. It is clearly distinct from sibling tools like update_pin, delete_pin, and bulk_create_pins.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides useful conditional guidance for dry_run and for choosing between image_url and image_path. However, it does not explicitly contrast with bulk_create_pins or update_pin, so tool-selection context remains somewhat implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_pinC
Delete a pin by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| pin_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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 only states the destructive action but does not mention whether deletion is permanent, requires special permissions, fails for non-existent pins, or affects related data. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no fluff. It is appropriately sized for a simple delete operation, though it could have used the space to include important usage caveats.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite an output schema existing, the description does not reference return values or error conditions. For a delete tool with no annotations, the description is incomplete: an agent cannot anticipate consequences, failure modes, or authorization needs. It is minimally adequate but lacks essential context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate. It merely repeats 'by ID' without clarifying the ID format, source, or validation. The description adds no meaningful value beyond the schema's basic field name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Delete') and a resource ('pin') with an identifier ('by ID'). It is clear and distinct from siblings like create_pin and update_pin, though it doesn't explicitly contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, no prerequisites (e.g., pin existence, permissions), and no exclusions. The agent is left to infer that deletion is the intended action without any context on how it fits into a workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_analyticsA
Get account-level Pinterest analytics: impressions, saves, clicks. Dates must be in YYYY-MM-DD format.
| Name | Required | Description | Default |
|---|---|---|---|
| metrics | No | ||
| end_date | Yes | ||
| start_date | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. 'Get' implies a read-only operation, but it does not disclose authentication requirements, rate limits, or any other behavioral side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences, front-loading the core purpose and adding only the essential date format constraint. No redundant or irrelevant content is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and the operation is straightforward, the description covers the primary purpose, metrics, and date format. It lacks some optional context like timezone handling or metric value enumeration, but is sufficiently complete for basic usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no parameter descriptions, so the description must compensate. It explains the date format and names possible metrics, but it does not fully define the metrics parameter (e.g., allowed values, null behavior) or provide details on start/end date semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves account-level Pinterest analytics, listing specific metrics (impressions, saves, clicks). The 'account-level' qualifier distinguishes it from the sibling get_pin_analytics tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for account-wide analytics and provides date formatting guidance, but it does not explicitly state when to use this tool versus alternatives such as get_pin_analytics or other siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_board_pinsA
List all pins on a specific board.
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | ||
| page_size | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description implies a read-only operation via 'List' but does not mention any side effects, limitations, or pagination behavior. It is adequate but lacks explicit transparency details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, succinct sentence with no redundancy. All words contribute to the meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple listing tool, the description is sufficient to understand its basic function. However, it does not mention what is returned (though output schema exists) or any edge cases, so it is partially complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only names and types with no descriptions. The tool description does not elaborate on board_id or page_size, relying on their self-explanatory nature. Minimal added meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'List' and the resource 'pins on a specific board', distinguishing it from sibling tools like list_boards and search_pins. No ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no guidance on when to use this tool instead of alternatives such as search_pins or list_boards. The description only states what it does, not the recommended context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pin_analyticsB
Get analytics for a pin: impressions, saves, link clicks, engagement. Dates must be in YYYY-MM-DD format.
| Name | Required | Description | Default |
|---|---|---|---|
| pin_id | Yes | ||
| metrics | No | ||
| end_date | Yes | ||
| start_date | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavioral traits. It does not mention that the operation is read-only, whether it requires authentication, or any potential side effects. The description is purely functional and lacks transparency about safety or data volume.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of two sentences. It front-loads the core purpose and immediately follows with a format constraint for dates. There is no redundancy or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description does not provide information about the output structure, error conditions, pagination, or limits. Given that the tool has an output schema, the description could have outlined expected response fields or noted potential edge cases. The description is too sparse to be considered complete for a production API.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has no descriptions for parameters, and the tool description adds minimal meaning. It mentions possible metric names but does not clarify that they correspond to the 'metrics' parameter, nor does it explain pin_id, start_date, or end_date. The description fails to make the parameters self-explanatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: retrieving analytics for a specific pin. It lists the metrics returned (impressions, saves, link clicks, engagement) and distinguishes it from account-level analytics by the term 'pin'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. It does not mention that get_account_analytics should be used for account-wide metrics or that search_pins is for finding pins. The usage context is implied but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trendingC
Get trending searches and topics in a Pinterest interest category.
| Name | Required | Description | Default |
|---|---|---|---|
| region | No | US | |
| interest | No | miniatures |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read-only operation with 'Get,' but there are no annotations and no explicit statement about side effects, data returned, or limitations. Behavior is mostly inferred.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that directly states the tool's purpose without unnecessary detail or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and minimal description, important context such as acceptable values, output shape, and edge cases is missing. The presence of an output schema is noted but not detailed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Parameters 'region' and 'interest' have defaults but no descriptions or value constraints. Schema coverage is 0%, and the description does not explain how these parameters affect the trending results.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'trending searches and topics,' scoped to a Pinterest interest category. It is distinguishable from sibling tools focused on pins, boards, and analytics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any conditions, caveats, or expected use context beyond the basic action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_boardsA
List your Pinterest boards. privacy can be ALL, PUBLIC, or SECRET.
| Name | Required | Description | Default |
|---|---|---|---|
| privacy | No | ALL |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden of behavioral disclosure. It only says 'List your Pinterest boards', which implies a read operation but does not explicitly state it is non-destructive, whether authentication is required, or what the response contains. Minimal disclosure beyond the bare action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with two short sentences and no filler. The primary action is front-loaded, and the parameter value list is provided efficiently. It is appropriately sized for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter, an output schema present, no annotations), the description covers the essential purpose and parameter values. It doesn't mention pagination or authentication, but for a straightforward list operation, it is sufficiently complete. The presence of an output schema reduces the need to describe return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description compensates for the 0% schema description coverage by listing the allowed values for the privacy parameter (ALL, PUBLIC, SECRET). This adds meaning beyond the schema, which only specifies a string default. However, it doesn't explain what each value does or the effect of filtering, so it's not fully comprehensive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('your Pinterest boards'), making the tool's purpose immediately clear. It is distinct from sibling tools like create_board or get_board_pins, and the addition of the privacy parameter values further clarifies its scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention context like 'to view all boards' or 'when you need a list of boards', and there is no comparison to sibling tools. The privacy parameter hint is present but doesn't address usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_pinsB
Search public Pinterest pins by keyword. Useful for trend research.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| page_size | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations and no description of side effects, authentication requirements, rate limits, or pagination. Although 'Search public pins' implies read-only behavior, the description does not explicitly disclose non-destructive guarantees or any hidden limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and well-structured: two short sentences that immediately convey the core purpose and a likely use case. There is no unnecessary verbiage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search endpoint, the description covers the essential intent and the primary parameter, but it lacks details about result ordering, pagination behavior, or how this relates to analytics and trending endpoints. Given the simple nature, it is minimally adequate but not fully contextual.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains 'query' implicitly via 'by keyword', but 'page_size' is not explained at all. With two parameters and only partial coverage, the description does not sufficiently clarify the meaning and constraints of each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Search'), the resource ('public Pinterest pins'), and the key qualifier ('by keyword'). It also hints at the intended use case ('trend research'), which helps distinguish it from more general pin management tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a vague use case ('useful for trend research') but does not explicitly state when to prefer this tool over siblings like get_trending or when not to use it. No alternative tools or conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_pinB
Update metadata on an existing pin.
| Name | Required | Description | Default |
|---|---|---|---|
| link | No | ||
| title | No | ||
| pin_id | Yes | ||
| board_id | No | ||
| description | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It implies a mutation ('update') but does not disclose side effects like partial updates, idempotency, or whether missing fields are cleared or preserved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no redundant information. It is well-structured and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, but the lack of parameter details and any notes on behavior (e.g., whether 'pin_id' is a unique identifier, how partial updates work) leaves gaps. It is adequate for basic usage but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no parameter descriptions, and the tool description does not explain the meaning or required/optional nature of fields like 'link', 'title', or 'board_id'. Parameters are only listed by name, leaving the agent to infer semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and the resource ('existing pin'), making it distinct from sibling tools like delete_pin or create_pin.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance is given on when to use this tool versus alternatives (e.g., when to update rather than create or delete). The description only states what it does, not when to choose it.
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.
11 tool updates
v0.1.0- First observed
bulk_create_pins - First observed
create_board - First observed
create_pin - First observed
delete_pin - First observed
get_account_analytics - First observed
get_board_pins - First observed
get_pin_analytics - First observed
get_trending - First observed
list_boards - First observed
search_pins - First observed
update_pin
TDQS
Scored across 11 tools
Each tool has a distinct purpose with no overlapping functionality. Delete, create, update, list, search, and analytics operations are clearly separated.
All tools follow a consistent verb_noun pattern (e.g., create_pin, list_boards, get_account_analytics) using lowercase and underscores.
11 tools is a reasonable scope for a Pinterest API server, covering core operations without unnecessary bloat.
Covers essential pin and board CRUD, search, analytics, and trending. Missing board update/delete operations, but these are less critical and the core surface is solid.
Maintenance
Related MCP Connectors
Publish and schedule Pinterest pins from any MCP client. Token refresh and retries handled.
Schedule and publish social posts across 9 platforms (Instagram, LinkedIn, X, TikTok, Facebook, Threads, Pinterest, Bluesky, Mastodon) straight from Claude, ChatGPT, Cursor, or any MCP client. Create, edit, and reschedule posts, upload media, and pull account and post analytics, follower demographics, and best-time windows. 20 tools, free on every plan.
Instagram for AI agents: publish, read comments and DMs, insights, and engage from your account.
SEO & marketing toolkit for AI agents: GA4, Search Console, AdSense, GTM, PageSpeed, Trends.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with the Pinterest API, allowing management of boards and pins through natural language commands.75 npm24MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to manage Pinterest boards and pins, create and update pins, and track analytics via the Pinterest API v5.4MIT
- AlicenseBqualityBmaintenanceEnables image search and information retrieval from Pinterest using the Model Context Protocol. Supports searching by keywords, getting similar pins, and downloading images directly.575 npmMIT
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to search public Pinterest pins, retrieve pin metadata and media URLs, and download matching images, GIFs, or videos into a local folder, with read-only tools and explicit confirmation for downloads.-