Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

ViewPrinter

REMOTE · VIEWPRINTER.TECH · SCANNED SEP 20

Schedule social posts to TikTok, Instagram, Facebook, YouTube and X; manage accounts and media

Available components

+43 this week 80 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security92
Transport & Reachability100
Schema Quality & AI Usability76
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 2333 tokens (~129/item across 18 items; 18 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management13
  • Stability observed for 4 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage97
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 89% of tool parameters carry a description.Partial
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 19 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the ViewPrinter MCP server?

ViewPrinter is a hosted endpoint at https://viewprinter.tech/api/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · viewprinter.tech

# add to Claude Code
claude mcp add --transport http tech-viewprinter-viewprinter 'https://viewprinter.tech/api/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "tech-viewprinter-viewprinter": {
      "url": "https://viewprinter.tech/api/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "tech-viewprinter-viewprinter": {
      "type": "http",
      "url": "https://viewprinter.tech/api/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.tech-viewprinter-viewprinter]
url = "https://viewprinter.tech/api/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "tech-viewprinter-viewprinter": {
      "type": "remote",
      "url": "https://viewprinter.tech/api/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add tech-viewprinter-viewprinter --url 'https://viewprinter.tech/api/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  tech-viewprinter-viewprinter:
    url: "https://viewprinter.tech/api/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "tech-viewprinter-viewprinter": {
      "Transport": "http",
      "Url": "https://viewprinter.tech/api/mcp"
    }
  }
}
# add to Vellum
assistant mcp add tech-viewprinter-viewprinter -t streamable-http -u 'https://viewprinter.tech/api/mcp'
// mcp.json
{
  "mcpServers": {
    "tech-viewprinter-viewprinter": {
      "type": "http",
      "url": "https://viewprinter.tech/api/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 19 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

  • 17 Sept 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • Tool “posts_update” rewrote its description, which is the text the model reads security
    • Stability: unverified → 0.03 functional
    • Server version: 0.1.0 → 1.0.0 functional
  • 16 Sept 26 +42
    • Transport: unverified → pass security
    • Injection markers: unverified → pass security
    • First check of Judged manipulation: pass security
    • Authorization: Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. security
    • MCP protocol: unverified → pass functional
    • Tool coverage: unverified → 100 functional
    • First check of Schema quality: fail functional
    • First check of Tool coverage: 89 functional
    • First check of Schema quality: excellent functional
    • First check of Schema quality: fail functional
    • First check of Destructive annotations: 100 functional
    • First check of Tool coverage: 100 functional
  • 1 Sept 26 37

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Probed https://viewprinter.tech/api/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=viewprinter.tech CN=Amazon RSA 2048 M04,O=Amazon,C=US 26 Aug 2026 11 Mar 2027 RSA 2048 SHA256-RSA 89976d1ead6712d567b13243feb9f6c
SANs: viewprinter.tech
CN=Amazon RSA 2048 M04,O=Amazon,C=US (CA) CN=Amazon Root CA 1,O=Amazon,C=US 23 Aug 2022 23 Aug 2030 RSA 2048 SHA256-RSA 773124f2a952e3ed18a58bdb85d1bc0ce5f27
CN=Amazon Root CA 1,O=Amazon,C=US (CA) CN=Starfield Services Root Certificate Authority - G2,O=Starfield Technologies\, Inc.,L=Scottsdale,ST=Arizona,C=US 25 May 2015 31 Dec 2037 RSA 2048 SHA256-RSA 67f944a2a27cdf3fac2ae2b01f908eeb9c4c6

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of viewprinter.tech. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
tech. present 2185 13 Verified
viewprinter.tech. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On tool calls
HTTP status 200

WWW-Authenticate challenge Bearer resource_metadata="https://viewprinter.tech/.well-known/oauth-protected-resource/api/mcp", scope="mcp:tools"

Bearer resource_metadata="https://viewprinter.tech/.well-known/oauth-protected-resource/api/mcp", scope="mcp:tools"

Protected resource metadata

Document https://viewprinter.tech/.well-known/oauth-protected-resource/api/mcp
Retrieved Yes
Resource https://viewprinter.tech/api/mcp
Authorisation server https://viewprinter.tech/api/auth

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://viewprinter.tech/api/mcp Verified 200
http (plaintext) http://viewprinter.tech/api/mcp HTTPS enforced 301 https://viewprinter.tech:443/api/mcp
MCP tools · 18 exposed · ~2,244 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
accounts_connect ~68

Connect a social account. Opens the platform in the person's browser so they can sign in and approve access — that part cannot happen here, because it needs their session and their consent. Call it again after they finish and it reports the connected account.

NameTypeReqDescription
platformstringyesWhich platform to connect.
NameTypeReqDescription
connectedarrayyes
platformstringyes
statusstringyes
urlstring

No examples provided.

accounts_list ~58

List every social account you can post to, across all your workspaces. Each account includes the workspace it belongs to and any groups it is in. Use the returned ids to name post destinations explicitly, or a group name to name several at once.

Input schema present but exposes no named parameters.

NameTypeReqDescription
accountsarrayyes

No examples provided.

accounts_performance ~123

How each connected account is performing: followers, posts, total likes and following, each with how far it has moved over the period. Ordered by followers, largest first. Numbers are as of the last sweep rather than live — every account carries the time it was measured, and an account nobody has measured yet has no metrics at all rather than zeroes.

NameTypeReqDescription
periodstringThe window every change is measured over. Defaults to 24h. A change is the difference against the last observation before the window opened, so it is null when there was none.
NameTypeReqDescription
accountsarrayyes

No examples provided.

groups_create ~113

Name a set of accounts. Afterwards posts_schedule can take the name instead of every id. The name is how it is addressed, so it has to be unique in the workspace and is matched without regard to case. All the accounts must be in one workspace.

NameTypeReqDescription
account_idsarrayyesThe accounts to put in it, from accounts_list.
descriptionstringWhat it is for, so it can be chosen without reading it.
namestringyesWhat to call it. Unique per workspace.
NameTypeReqDescription
groupobjectyes

No examples provided.

groups_delete ~65

Remove a group. The accounts in it are not touched and stay connected — only the name and its membership go. Posts already scheduled through it are unaffected, because a post records the accounts rather than the group.

NameTypeReqDescription
namestringyesThe group to remove, from groups_list.
NameTypeReqDescription
deletedstringyes

No examples provided.

groups_list ~68

Your named sets of accounts. Each group lists its members with the state of each, and how many of them need reconnecting — a post naming a group is refused outright if any member cannot publish, so check here before composing one. Use a group name with posts_schedule instead of listing account ids.

Input schema present but exposes no named parameters.

NameTypeReqDescription
groupsarrayyes

No examples provided.

groups_update ~108

Rename a group, re-describe it, or change who is in it. account_ids is the full membership afterwards, not a list to add: whatever is sent replaces what was there. Omit it to leave the members alone.

NameTypeReqDescription
account_idsarrayReplaces the membership entirely. Omit to leave it.
descriptionstring
namestringyesThe group to change, from groups_list.
new_namestringRename it to this.
NameTypeReqDescription
groupobjectyes

No examples provided.

media_confirm ~102

Record a file that finished uploading. Its size and type are read back from storage rather than taken on trust. Safe to call again if the first response was lost.

NameTypeReqDescription
descriptionstringWhat the file shows, if you already know. Kept as the file is recorded; use media_update to change it later. Confirming again never overwrites one already written.
idstringyesThe id media_upload returned.
kindstringyes
NameTypeReqDescription
mediaobjectyes

No examples provided.

media_delete ~38

Remove a file and its stored bytes. This cannot be undone, and any post still using it will lose it.

NameTypeReqDescription
idstringyes
NameTypeReqDescription
deletedbooleanyes

No examples provided.

media_list ~29

Every file uploaded in your workspaces, newest first. Use these ids when attaching media to a post.

Input schema present but exposes no named parameters.

NameTypeReqDescription
mediaarrayyes

No examples provided.

media_update ~114

Say what a file shows, in your own words. On a base image this is who is on camera — "a woman in her early twenties, blonde hair in a loose bun" — and a campaign reads it so the same person appears in every render instead of changing between them. Send null to clear it. Nothing else about a file can be changed here; what it is was read from the file itself.

NameTypeReqDescription
descriptionyesThe words, or null to remove the ones already there.
idstringyes
NameTypeReqDescription
mediaobjectyes

No examples provided.

media_upload ~87

Reserve an id and get a short-lived URL to PUT the file to. The bytes go straight to storage, not through this API. Call media_confirm with the same id once the PUT succeeds — nothing is recorded until then.

NameTypeReqDescription
kindstringyesWhat the file is.
mime_typestringyesThe exact Content-Type the PUT will send, e.g. video/mp4.
NameTypeReqDescription
expires_in_secondsnumberyes
idstringyes
urlstringyes

No examples provided.

platforms_list ~135

What each platform accepts. Called with nothing, it lists every platform with the media kinds and counts it takes and its caption limit — enough to decide where a post can go. Name platforms to add their recommended sizes and durations, their options with what each one does, and the quirks that decide how a post is treated. Read this before scheduling rather than discovering the rules by being rejected.

NameTypeReqDescription
platformsarrayWhich platforms to describe in full. Omit for a short answer covering all of them. Naming only the platforms you are posting to keeps the reply small — full detail for all of them is several times th…
NameTypeReqDescription
platformsarrayyes

No examples provided.

posts_cancel ~56

Stop a post before it goes out. Destinations that have not started are cancelled; any already being published cannot be recalled and are returned in still_going. Safe to call again.

NameTypeReqDescription
post_idstringyesFrom posts_list.
NameTypeReqDescription
cancellednumberyesHow many destinations were stopped before they started.
post_idstringyes
still_goingarrayyesDestinations already in flight, which cannot be stopped.

No examples provided.

posts_list ~57

Posts in your workspaces, newest first, each with the state of every destination it was sent to. Call it to check whether something published, and before changing or cancelling anything — posts_update and posts_cancel both take a post_id from here.

Input schema present but exposes no named parameters.

NameTypeReqDescription
postsarrayyes

No examples provided.

posts_performance ~225

How published posts are performing, one row per destination: views, likes, comments, shares and saves, each with how far it has moved over the period. Best first, so the default answers "what did well" in one call rather than by listing everything. Sort by change instead to find what is moving now. Numbers are as of the last sweep, and every row carries the time it was measured — a delivery nobody has measured yet has no metrics at all rather than zeroes, and sorts last.

NameTypeReqDescription
bystringRank by the running total, or by how much it moved over the period. Defaults to the total. A post with no observation in the window has no change and sorts last either way.
limitintegerHow many to return. Defaults to 10. Ask for more only when you need them — every row carries its post and account.
periodstringThe window a change is measured over. Defaults to 24h.
sort_bystringWhich counter to rank by. Defaults to views.
NameTypeReqDescription
postsarrayyes

No examples provided.

posts_schedule ~420

Create a post and queue it for every account named. Pass draft true to hold it here instead, sending nothing until posts_update promotes it. Name accounts with ids from accounts_list, or name a group from groups_list and get all of its members — the two combine, and a group is expanded now, so adding an account to it later does not add it to this post. Accounts must all be in one workspace. Attach media by id from media_list; a post is either a video or a set of images, never both. Omit scheduled_at to send as soon as possible. Nothing publishes yet: this records the intent. Publishing has to be enabled on the account; where it is not, this saves nothing at all and says so. Do not tell anyone their post is saved or scheduled until this has returned successfully.

NameTypeReqDescription
account_idsarrayWhich accounts to post to, from accounts_list. Optional when groups is given; naming neither is refused.
contentstringThe caption.
draftbooleanHold the post here instead of sending it. Nothing is queued and nothing reaches any platform; use posts_update with draft false to send it. Unrelated to the per-platform draft option, which uploads t…
groupsarrayGroup names from groups_list, expanded to their members and combined with account_ids. Matched without regard to case.
idempotency_keystringReuse on retry to avoid posting twice; returns the original post.
media_idsarrayFiles to attach, in order. Order is the slideshow order.
platform_optionsobjectPer-platform settings, keyed by platform. Only the keys shown are accepted — an unknown key is refused rather than ignored. The names, types and accepted values are here; call platforms_list for what…
scheduled_atstringISO 8601. Omit to send as soon as possible.
NameTypeReqDescription
postobjectyes

No examples provided.

posts_update ~378

Change a post that has not gone out yet: its caption, its time, its destinations, or whether it is a draft. Editing is always allowed; sending a draft needs publishing enabled on the account, and where it is not the draft is left exactly as it was. This is what sends a draft — pass draft false, and it is queued using scheduled_at (or immediately if that is empty). Destinations can be named as account ids, group names from groups_list, or both — a group is expanded now, so it is a shorthand for its members rather than a live link to it. Changing the time re-aims delivery, so there is no separate publish step. This is also how a failed destination is sent again: set scheduled_at, and every destination that failed is queued again while the ones that already published are left alone — fix what made them fail first, usually by reconnecting the account. The caption and the destinations can only be changed while nothing has published yet; after that the time is still editable, and changing the words means a new post.

NameTypeReqDescription
account_idsarrayReplaces the destination list entirely — send every account you want, not just the new ones. All must be in the post's workspace.
contentstringReplaces the caption.
draftbooleanFalse promotes a draft and sends it. True returns a scheduled post to draft, cancelling its delivery.
groupsarrayGroup names, expanded to their members and combined with account_ids. Together they replace the destination list, so naming only a group drops any account outside it.
post_idstringyesThe post to change, from posts_list.
scheduled_atstringISO 8601. Replaces the time. A time in the past sends as soon as possible.
NameTypeReqDescription
postobjectyes

No examples provided.

Common questions

What is the ViewPrinter MCP server?

ViewPrinter is an MCP server listed in the public MCP registry as tech.viewprinter/viewprinter. Schedule social posts to TikTok, Instagram, Facebook, YouTube and X; manage accounts and media. This page covers its hosted endpoint (https://viewprinter.tech/api/mcp).

Is the ViewPrinter MCP server safe to use?

ViewPrinter scores 80 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the ViewPrinter MCP server expose?

ViewPrinter exposes 18 tools: platforms_list, accounts_list, accounts_performance, posts_performance, accounts_connect, and 13 more. Their descriptions and schemas cost roughly 2,244 tokens of context every time the server is loaded.

Does the ViewPrinter MCP server require authentication?

Yes. ViewPrinter asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the ViewPrinter MCP server still maintained?

ViewPrinter is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.