pinterest-mcp (aymandakirgh/pinterest-mcp) is an MCP server listed on the M8ven Trust Index. It scores 74 out of 100, grade C. It declares 35 tools. No publisher has claimed this listing.

C
Emerging
74/100

pinterest-mcp

MCP server for the Pinterest API v5 — 35 tools across boards, pins, analytics, search and OAuth, over stdio or HTTP.

Emerging. No concerning findings. Grades remain capped until the project builds reputation through adoption. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.

How we verified

Code Verified⚡ Live Monitored: not connected

Verified is a snapshot. Live keeps it current, and builds your track record.

⚡ Connect GitHub → continuous verification on every pushwhy connect →

Who stands behind it

aymandakirgh

Source: github_repo_search

Is this your MCP?

Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →

Install from

The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.

// key findings
35 tools verified — handlers match their declared behaviour
21 read-only tools verified — handlers contain no write/delete/exec
No credential exfiltration, no sensitive file access, no obfuscation
Static analysis found nothing flowing your secrets to unexpected places.
Open source with a license and README
Anyone can audit the code, the license is declared, and the publisher documents what it does.
// tools this server exposes35 tools

These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.

pinterest_get_user_account

Fetch the authenticated user's account: username, id, account type, profile image and follower counts. The fastest way to verify a token works. Scope: user_accounts:read.

pinterest_get_user_analytics

Daily account-level analytics over a date window of up to 90 days. Scope: user_accounts:read and pins:read.

pinterest_get_top_pins

Rank the account's pins by a metric over a date window — the tool to reach for when asked what is working. Scope: user_accounts:read and pins:read.

pinterest_get_top_video_pins

Rank the account's video pins by a video metric over a date window. Scope: user_accounts:read and pins:read.

pinterest_get_pin_analytics

Daily analytics for a single pin over a date window of up to 90 days. Scope: pins:read.

pinterest_get_multi_pin_analytics

Analytics for up to 100 pins in one call — far cheaper than looping pinterest_get_pin_analytics. Scope: pins:read.

pinterest_list_followers

List the accounts following the authenticated user. Scope: user_accounts:read.

pinterest_list_following

List the users and boards the authenticated user follows. Scope: user_accounts:read.

pinterest_list_claimed_websites

List the websites claimed by the authenticated account, with their verification status. Scope: user_accounts:read.

pinterest_list_boards

List the authenticated user's boards, newest first. Scope: boards:read (plus boards:read_secret to include secret boards). Returns a `bookmark` cursor when more pages exist.

pinterest_get_board

Fetch a single board by id, including its pin and follower counts. Scope: boards:read.

pinterest_create_board

Create a new board on the authenticated account. Scope: boards:write (boards:write_secret for SECRET boards).

pinterest_update_board

Update a board's name, description or privacy. Only the fields you pass are changed. Scope: boards:write.

pinterest_delete_board

Permanently delete a board AND every pin saved to it. This cannot be undone. Scope: boards:write.

pinterest_list_board_pins

List the pins saved to a board. Scope: pins:read and boards:read.

pinterest_list_board_sections

List the sections within a board. Scope: boards:read.

pinterest_create_board_section

Add a section to a board. Scope: boards:write.

pinterest_update_board_section

Rename an existing board section. Scope: boards:write.

pinterest_delete_board_section

Delete a board section. Pins in the section move back to the board root rather than being deleted. Scope: boards:write.

pinterest_list_board_section_pins

List the pins saved inside one section of a board. Scope: pins:read and boards:read.

pinterest_build_oauth_url

Build the Pinterest consent URL to open in a browser. The user approves, Pinterest redirects to your redirect_uri with a `code` query parameter, and you exchange that code with pinterest_exchange_oauth_code. Makes no network call.

pinterest_exchange_oauth_code

Exchange the `code` from the OAuth redirect for an access token and refresh token. Access tokens last about 30 days; refresh tokens about a year. Store both securely.

pinterest_refresh_access_token

Trade a refresh token for a fresh access token. Use this when calls start failing with 401.

pinterest_list_pins

List the authenticated user's pins, newest first. Scope: pins:read (plus pins:read_secret for pins on secret boards).

pinterest_get_pin

Fetch a single pin by id, including its media, link and board. Scope: pins:read.

pinterest_create_pin

Create a pin on one of the authenticated user's boards. Requires a board_id and a media_source. Scope: pins:write (pins:write_secret for secret boards).

pinterest_update_pin

Update a pin's text fields, link or board placement. Media cannot be changed after creation. Scope: pins:write.

pinterest_delete_pin

Permanently delete a pin. This cannot be undone. Scope: pins:write.

pinterest_save_pin

Save an existing pin to one of the authenticated user's boards — the API equivalent of a repin. Scope: pins:write.

pinterest_register_media

Step 1 of video pin creation: register an upload and receive one-time S3 form fields. POST the video to `upload_url` with those `upload_parameters` as multipart form fields, poll pinterest_get_media until status is 'succeeded', then pass the media_id to pinterest_create_pin with source_type 'video_i

pinterest_get_media

Check a registered upload. Status moves registered -> processing -> succeeded (or failed). Scope: pins:read.

pinterest_list_media

List the account's registered media uploads and their statuses. Scope: pins:read.

pinterest_api_request

Escape hatch: issue an arbitrary request against the Pinterest API v5 using the configured token. Use this only for endpoints no dedicated tool covers — ad accounts, catalogs, audiences, conversion events. Prefer the specific tools when one exists: they validate input and explain failures. Path is r

pinterest_search_my_pins

Full-text search across the authenticated user's own pins. This does NOT search Pinterest globally — the v5 API exposes no public discovery search. Scope: pins:read.

pinterest_search_my_boards

Full-text search across the authenticated user's own boards. Scope: boards:read.

// environment variables
To run this server yourself, you supply these values. They go in your own MCP client configuration and stay on your machine. The secret label means the value is sensitive, not that the server mishandles it.
configPUBLIC_BASE_URLAbsolute origin of the deployment. Used for OAuth metadata and callback URLs; set it behind a proxy.
Deployment configuration, supplied by whoever hosts the server. Users are not asked for these.
deployPORT
// quality suggestions

All four hints declared on every tool

22/35 tools missing one or more hints — pinterest_get_user_account (missing: destructiveHint, idempotentHint); pinterest_get_user_analytics (missing: destructiveHint, idempotentHint); pinterest_get_top_pins (missing: destructiveHint, idempotentHint), +19 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.

For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.

Tool test coverage

13/35 tools referenced in tests (37%)

Write tests that reference each tool by name so every tool has at least one test.

Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.

// full audit trail
The findings above are the summary. The full trail, every check we ran, each deduction, the network hosts observed and the dependency advisories, goes to verified publishers, along with an alert whenever a new one lands. Verified publishers can also review each finding and dispute it in one click. Publisher corrections have sharpened several of our checks this month, because the maintainer knows the codebase better than any scanner.
// improvement guidance — verified publishers only
We have 2 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Score](https://m8ven.ai/badge/mcp/aymandakirgh/pinterest-mcp)](https://m8ven.ai/mcp/aymandakirgh/pinterest-mcp)
Shows your grade and updates automatically. Prefer no grade? Append ?variant=verified to the badge URL.
commit: 6cc45f23ceca9f03f6569a274e521aecf00050f6
code hash: 22e54965bd5ce9e8ff45f7cf0e882a00f392b6f1b17d41115081c5191340d52b
view raw JSON →
Check MCPs from inside your assistant
Tool Check · MCP

Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.

https://m8ven.ai/api/mcp/tool-check
check_toolsearch_toolscompare_toolsrecommend_alternativescheck_publisherreport_concern
How to add it →Free · no account needed · works in any MCP client