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.

InfoSlides — put content on a TV or screen

MCPB · INFOSLIDES-MCP-V1.9.0.MCPB

Put a PowerPoint, PDF, photo, or live data on any smart TV, menu board, or lobby screen.

+14 this week 61 Trust /100

Last scanned (2 hours ago)

Scores higher than 95% of MCPB servers

Category Design and Media

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security0
  • No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.Unverified
  • Known CVEs could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).Unverified
  • Install-script risk not yet assessed.Unverified
  • Dependency health could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).Unverified
Provenance & Transparency100
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to arnibj/InfoSlides.MCP). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 2 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability71
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 16943 tokens (~141/item across 120 items; 120 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 Management70
  • Stability observed for 21 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (97% 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 14 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 121 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

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.

  • 5 Nov 26 +1

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

  • 3 Nov 26 +11
    • Provenance: fail → pass ▲ security
    • The attested source repository moved: arnibj/InfoSlides.MCP security
    • Schema quality: 10543 → 16943 ▼ functional
    • First check of Tool coverage: 97 functional
    • Package version: 1.7.3 → 1.9.0 functional
  • 2 Nov 26 +1

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

  • 31 Oct 26 +1

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

  • 29 Oct 26 +1

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

  • 26 Oct 26 +1

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

  • 24 Oct 26 +1

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

  • 22 Oct 26 +4
    • Stability: unverified → 0.23 ▲ functional
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 5 Nov 2026 · Analysed mcpb/https://github.com/arnibj/InfoSlides.MCP/releases/download/v1.9.0/infoslides-mcp-v1.9.0.mcpb@1.9.0

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem mcpb
Reason Verified
Discovered via GitHub artifact attestations
Source repo arnibj/InfoSlides.MCP
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/arnibj/InfoSlides.MCP/.github/workflows/release.yml@refs/tags/v1.9.0
Rekor log index 3649901072
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha256:f36a3060d3f9591c0facb0dfaa86d9f20dcb4e734858124596b94f683dcc1d8c

Background: How many MCP packages publish verified provenance →

MCP tools · 120 exposed · ~16,532 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
get_source_items ~86

See the latest items a source has fetched, newest first: title, body, imageUrl, url, fetchedAt and expiresAt. Use it to check what a slide on this source would show.

NameTypeReqDescription
limitinteger|null–How many items, 1 to 100 (default 20).
sourceIdstringyesId of the source (from list_sources).

Structured output declared, but exposes no named fields.

No examples provided.

get_source_status ~129

Check a source. For a push source: when data last arrived (lastReceivedAt), whether its slides are showing data (isShowingData, false before the first push or after the data went stale), the staleness timeout, and which slides it feeds; use it to confirm a system is actually sending. For a fetched source (RSS, weather, etc.): lastFetchedAt and health (Healthy, Degraded or Failing) with lastError in plain words, consecutiveFailures and lastSuccessAt, with the push fields empty.

NameTypeReqDescription
sourceIdstringyesId of the source.
NameTypeReqDescription
dataobject|nullyes–
undoobject––
warningsarray|null––

No examples provided.

get_stream_link ~178

Get the link that makes the content appear on the TV — the last step of any setup. Hand over playerUrl: opened in the smart TV's browser or the InfoSlides TV app, it plays the content correctly whichever way this screen is set up to play — the usual rendered-video stream or a live HTML/CSS loop. hlsUrl is the raw HLS manifest for something that only speaks HLS (an ffplay-style player, an old TV app build); it comes back null whenever the screen is playing an HTML loop, so check it before handing it out — do not assume it is always populated. The links are stable, so the screen keeps working as content changes. A StreamNotReady warning means nothing is playable yet — usually because the content is still rendering.

NameTypeReqDescription
deviceIdstringyesId of the device.
NameTypeReqDescription
dataobject|nullyes–
undoobject––
warningsarray|null––

No examples provided.

get_template ~62

Read one self-updating layout: title, sampleJson (its data fields with example values, the shape a push to its source must send), html and css. Read it before changing it with update_template.

NameTypeReqDescription
templateIdstringyesId of the template.

Structured output declared, but exposes no named fields.

No examples provided.

get_template_usage ~58

Where a layout is used in this workspace: slideCount, slideshowCount and the slides (slideId, slideshowId, slideshowTitle). Check it before deleting or reworking a layout.

NameTypeReqDescription
templateIdstringyesId of the template.

Structured output declared, but exposes no named fields.

No examples provided.

get_tenant_info ~80

Check what this account is allowed to do before planning any screen work: workspace name, owner, whether their email is confirmed, which plan they are on, how many screens are in use out of the allowance, and the scope of the API key in use. Call this early — designing around the limits beats discovering them through errors halfway through a setup.

Input schema present but exposes no named parameters.

NameTypeReqDescription
dataobject|nullyes–
undoobject––
warningsarray|null––

No examples provided.

get_upload_limits ~73

Check what an upload can be before sending one: storageUsedBytes, storageLimitBytes, storageFreeBytes, maxFileBytes (the largest upload; a file must be a little smaller) and acceptedFileTypes. Call it before a large upload, or after a quota or too-large error, instead of trying again.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

get_workspace_health ~104

"How are my screens?" in one call: a sentence to read out ("11 of 12 screens are online; Lobby has been offline since 09:12."), every screen with online and lastSeenAt, usage against the plan, and problems most urgent first (offline screens, failed renders, slideshows no screen plays, expired plan, limits near full), each with a code, a message and a ready-made fix. Empty problems means all is well.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

identify_devices ~118

"Which screen is this?" Shows each online screen's own name in large text (or just the given ones) for about 90 seconds so the person can read out the name they see. The result lists each screen's deviceId and name, and says how many seconds it takes to appear (up to 60): tell the person to wait that long before looking. Try list_devices with near first; use this when several screens are in one room.

NameTypeReqDescription
deviceIdsarray|null–Only these screens; all online screens when omitted.

Structured output declared, but exposes no named fields.

No examples provided.

import_google_slides ~189

Make a slideshow from a Google Slides presentation. Needs a short-lived Google access token with Drive read access to that file (from a Google sign-in you run with the drive.readonly scope); it is used for this one call and never stored. Give fileId or the presentation url. Google exports at most 10 MB. Counts against the plan's slideshow limit. Without a token, ask the person to download the presentation as PDF or PowerPoint and use upload_pptx instead.

NameTypeReqDescription
accessTokenstringyesGoogle access token with Drive read access to the file.
fileIdstring|null–The Google Drive file id; omit when giving url.
titlestring|null–Title for the slideshow; the Google file name when omitted.
urlstring|null–The presentation address, e.g. https://docs.google.com/presentation/d/.../edit.

Structured output declared, but exposes no named fields.

No examples provided.

import_slide ~119

Copy one page of a shared slideshow to the end of this slideshow. Both must come from a PowerPoint or PDF file; slideNumber must be one of the source's importableSlideNumbers from list_shared_slideshows. The copy does not change when the source does. There is no undo: remove the page with delete_slide.

NameTypeReqDescription
slideNumberintegeryesThe page number to copy.
slideshowIdstringyesThe slideshow that receives the page.
sourceSlideshowIdstringyesThe shared slideshow to copy from.

Structured output declared, but exposes no named fields.

No examples provided.

insert_ai_slides ~88

Add the previews of a Ready AI slide job to the slideshow, after the person approved them. Safe to repeat: it does not add them twice. Queues a re-render.

NameTypeReqDescription
jobIdstringyesId of the Ready job.
positioninteger|null–Zero-based position; appended when omitted.
slideshowIdstringyesThe slideshow the job belongs to.

Structured output declared, but exposes no named fields.

No examples provided.

invite_team_member ~113

Invite a person to this workspace by email. This is how the person gets in after you created the workspace with your own address: invite them as TenantAdmin (the default) so they can manage screens, billing and the team themselves. Other roles: ContentManager (edits content), DeviceManager (pairs screens), Viewer. The invitation expires in 7 days.

NameTypeReqDescription
emailstringyesThe person's email address.
rolestring|null–TenantAdmin (default), ContentManager, DeviceManager or Viewer.

Structured output declared, but exposes no named fields.

No examples provided.

leave_testimonial ~175

After a job went well, give your own verdict on working with InfoSlides, once per job. The team may pin it to the InfoSlides landing page, shown as a quote from '<agent>, AI agent' with the context below it as 'Job: <context>'; nothing about the workspace or the person is shown. Write it in your own words; never quote the person, and leave out personal data.

NameTypeReqDescription
agentstring|null–Your product name, e.g. 'Claude'.
contextstring|null–The job, short and without names, e.g. 'set up a live menu board'. Shown as 'Job: ...'.
quotestringyesYour verdict, as you would want it shown, e.g. 'Had the lunch menu on the lobby TV in two calls.'

Structured output declared, but exposes no named fields.

No examples provided.

list_adapters ~64

See the kinds of live content source this workspace can create (RSS feed, weather, calendar and more), with the config fields each one needs. Use before create_source, and ask the person for those settings (feed address, city, calendar link) instead of guessing them.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

list_api_keys ~72

Audit who and what can reach this workspace: every key with its scope, when it was created, and when it was last used. Only the opening characters of each key are shown, never the whole thing. Use it to spot unused keys worth revoking, or to find the id of a key to revoke.

Input schema present but exposes no named parameters.

NameTypeReqDescription
dataarray|nullyes–
undoobject––
warningsarray|null––

No examples provided.

list_brand_previews ~20

List the sample slide names preview_brand can draw.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

list_devices ~220

See every screen registered to this workspace, the shape each one is set up for and what it is playing now (nowPlayingTitle and nowPlayingSlideshowId). This is how "the front lobby screen" becomes content you can read and edit: find the screen by name, then get_slideshow with its nowPlayingSlideshowId. Also use it to find the id of a screen before assigning content to it, or to check how many of the account's allowed screens are already used. q filters by name ("lobby" finds "Lobby Screen"). For "this screen" or "the screen in front of me", pass near with the person's position: screens with a saved location (update_device) come nearest-first with distanceMeters. supportsHtml says whether the screen's app plays HTML playback.

NameTypeReqDescription
nearstring|null–Optional 'latitude,longitude' to sort screens nearest-first, e.g. '64.1466,-21.9426'.
qstring|null–Optional name filter, case- and accent-insensitive.
NameTypeReqDescription
dataarray|nullyes–
undoobject––
warningsarray|null––

No examples provided.

list_gallery ~55

Browse ready-made screen designs — menu boards, welcome screens, notice layouts — that can be copied into the workspace with clone_slideshow(fromGallery=true). Start here when the user wants something on a screen quickly and has no content prepared.

Input schema present but exposes no named parameters.

NameTypeReqDescription
dataarray|nullyes–
undoobject––
warningsarray|null––

No examples provided.

list_media ~183

Browse the workspace's media library, newest first: id, name, fileType (image, video, document), sizeBytes, width, height, folderId, shared (a file another workspace shares, which cannot be changed here), sharedWithOthers and createdAt. Filter by folder, type or name; the answer also has total, totalPages and storage used and allowed. Use an id as mediaAssetId on add_media_slide.

NameTypeReqDescription
folderIdstring|null–Only files in this folder (ids from list_media_folders).
namestring|null–Only files whose name contains this, any case.
pageinteger|null–Page number, from 1.
pageSizeinteger|null–Items per page, 1 to 100 (default 50).
typestring|null–image, video or document.

Structured output declared, but exposes no named fields.

No examples provided.

list_media_folders ~55

List every media library folder as one flat list: id, name and parentFolderId (null at the top level). Find a folder by name here, then pass its id as folderId to list_media or update_media.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

list_shared_slideshows ~80

List the workspace's shared slideshows with id, title, slideCount and importableSlideNumbers (the pages that can be copied), to pick a page for import_slide. excludeId leaves one out, usually the slideshow that will receive the page.

NameTypeReqDescription
excludeIdstring|null–A slideshow to leave out of the list.

Structured output declared, but exposes no named fields.

No examples provided.

list_slideshows ~189

See everything this workspace can put on a screen, with the shape (landscape or portrait) each one is built for, whether its latest render has finished (renderStatus) and how many screens are playing it (screenCount). Use it to find the id of existing content before editing it or assigning it to a display; to go from a screen's name to its content, list_devices shows what each screen is playing. q filters by title ("q1" finds "Q1 Results 2026"). The answer has items and total: when total is more than the items returned, ask for the next page.

NameTypeReqDescription
pageinteger|null–Page number, from 1.
pageSizeinteger|null–Items per page, 1 to 100 (default 50).
qstring|null–Optional title filter, case- and accent-insensitive.
NameTypeReqDescription
dataobject|nullyes–
undoobject––
warningsarray|null––

No examples provided.

list_sources ~118

See the data sources this workspace can show on a screen: RSS news feeds, calendars, weather, live data pushed by another system. Use it to find the id of a source before scrolling its headlines in a slideshow's news ticker (update_slideshow tickerSourceIds) or pointing a live-data slide at it (update_slide sourceId). Each entry has its name, type, when it last received data and its health (Healthy, Degraded or Failing, with lastError in plain words): check it before building a slide on a source.

Input schema present but exposes no named parameters.

NameTypeReqDescription
dataarray|nullyes–
undoobject––
warningsarray|null––

No examples provided.

list_takeovers ~87

See which screens are showing a notice or announcement that interrupts their normal schedule for a while (a fire drill message, a launch announcement, an evacuation map), now or planned, and until when. Filter by screen, or only the active ones.

NameTypeReqDescription
activeOnlyboolean–Only takeovers active right now.
deviceIdstring|null–Only this screen's takeovers.

Structured output declared, but exposes no named fields.

No examples provided.

list_team ~30

See who is in this workspace (members and their roles) and which invitations are still waiting to be accepted.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

list_template_categories ~38

List the template category names this workspace may use, such as News or Generic: the same set that decides which built-in layouts list_templates shows.

Input schema present but exposes no named parameters.

Structured output declared, but exposes no named fields.

No examples provided.

list_templates ~54

See the self-updating screen layouts available to this workspace, each with an example of the data it expects. Check that example before pushing values with update_source, and use this to find a ready-made layout instead of building one.

Input schema present but exposes no named parameters.

NameTypeReqDescription
dataarray|nullyes–
undoobject––
warningsarray|null––

No examples provided.

make_ai_slide ~344

AI Studio: design a slide in the workspace's style from a description (handler prompt: headline, details, prices, times), a photo of a poster, menu or whiteboard (photo: mediaAssetId from upload_media, or mediaUrl), a web page (url) or a PDF/Word file (document: mediaAssetId). Returns a job at once: poll get_ai_slide_job every 5 seconds (10 to 60 seconds). By default it stops at Ready with preview images: show them to the person, then insert_ai_slides. To show a photo as it is, use add_media_slide instead. EntitlementRequired comes with an upgrade link; trialAvailable in its details means start_ai_studio_trial is possible: ask the person first.

NameTypeReqDescription
backgroundstring|null–auto, none (plain colour) or photo (stock photo).
backgroundDescriptionstring|null–With background photo: what the photo should show.
brandingboolean|null–True to feature logo and brand colour, false to keep branding subtle; omit to let the prompt decide.
handlerstringyesprompt, photo, url or document.
insertboolean–True to add the slides straight away without a preview step.
mediaAssetIdstring|null–Uploaded media id (photo, document, or a background image for prompt).
mediaUrlstring|null–Public address of a photo.
promptstring|null–What the slide should say (handler prompt).
slideshowIdstringyesThe slideshow to add the slides to.
urlstring|null–Page address (handler url).

Structured output declared, but exposes no named fields.

No examples provided.

pair_device ~329

Connect a physical TV to this workspace. The TV shows a pairing screen (the InfoSlides TV app, or https://infoslides.app/pair.html in its browser) with a QR code and a short nickname such as swift-oak-42. If the person reads you the QR code or nickname, or you see it through their glasses, send qr or nickname plus slideshowId (a new screen playing it) or deviceId (replaces the TV on an existing screen). With neither, the error is NeedsClarification with the workspace's slideshows and screens as choices: call again with the chosen id. With nothing to scan, send deviceId alone: you get a 6-character code for the person to type on the TV before it expires. For live pushed data (HTML playback), prefer the browser page: only the browser and the Android app 1.2.0+ play HTML for now.

NameTypeReqDescription
deviceIdstring|null–An existing screen: alone, returns a code to type on the TV; with qr/nickname, binds this TV to it.
deviceNamestring|null–Name for a newly created screen, e.g. 'Lobby TV'.
dryRunboolean–True to validate without pairing anything.
nicknamestring|null–The nickname shown under the QR code, e.g. 'swift-oak-42'.
qrstring|null–The scanned QR code URL (or its bare session id).
slideshowIdstring|null–With qr/nickname: creates a new screen playing this slideshow.

Structured output declared, but exposes no named fields.

No examples provided.

play_slideshow_find_device ~208

"Play my Q1 slides on the lobby screen" in one call. Checks that the slideshow has rendered, whether the screen is online and what it plays now, then does it. Without deviceId it picks the only screen, or the one already playing the slideshow; otherwise the error is NeedsClarification listing the screens to choose from. With until, it plays as a temporary takeover and the normal schedule returns afterwards; without it, it replaces the screen's default content. Use dryRun to tell the person what would happen first.

NameTypeReqDescription
deviceIdstring|null–The screen; optional when the workspace has one screen.
dryRunboolean–True to report what would happen without changing anything.
slideshowIdstringyesThe slideshow to play.
untilstring|null–Optional end time, e.g. '2026-10-01T17:00' (workspace local time) or with Z/offset. Makes it a takeover.

Structured output declared, but exposes no named fields.

No examples provided.

preview_brand ~102

See a sample slide drawn from the brand guide as an image, so the person and you can check how it looks before it is confirmed. Samples: title, text, data, image, logo-light, logo-dark, ticker, clock. Shows the draft by default; source 'confirmed' shows what slides use now. Rate limited.

NameTypeReqDescription
samplestring|null–Sample name (default title).
sourcestring|null–draft (default) or confirmed.

No output schema declared.

No examples provided.

preview_new_template ~113

See what a template design looks like as an image before saving it with create_template. Give the layout HTML and CSS and sample data; nothing is saved. Rate limited.

NameTypeReqDescription
aspectRatiostring|null–16:9 (default), 9:16 or 1:1.
layoutCssstring|null–Template CSS.
layoutHtmlstringyesTemplate HTML; every {{field}} is a data field.
sampleDataobject|null–Example data as a JSON object.

No output schema declared.

No examples provided.

preview_slide ~79

See exactly what a slide will look like on the screen, as a PNG image, before the public does. Worth doing whenever text might overflow, a logo might sit badly, or live data has just been pushed — a mistake on a lobby display is visible to every person walking past.

NameTypeReqDescription
slideIdstringyesId of the slide to render.

No output schema declared.

No examples provided.

push_data ~154

Send new data to a push source: the whole set of values the slide shows, as one JSON object with the template's field names. Every slide on the source updates, and a slide that was hidden waiting for data appears. Returns receivedAt. A push-only (isk_dp_) key bound to the source can call this, so hand that key to the system that sends the data. Set dryRun=true to check the data without storing it.

NameTypeReqDescription
dataobjectyesThe values, as a JSON object with the template's field names.
dryRunboolean–Check the data without storing it.
sourceIdstringyesId of the push source (the sourceId returned by add_dynamic_slide).
NameTypeReqDescription
dataobject|nullyes–
undoobject––
warningsarray|null––

No examples provided.

reactivate_member ~49

Turn a team member's access back on. Fails with EntitlementRequired when the plan's user limit is reached. Workspace admins only.

NameTypeReqDescription
memberIdstringyesId of the member.

Structured output declared, but exposes no named fields.

No examples provided.

regenerate_template_thumbnail ~47

Redraw the gallery picture of a layout the workspace owns, for example after its look changed. Returns thumbnailPath. Rate limited.

NameTypeReqDescription
templateIdstringyesId of the template.

Structured output declared, but exposes no named fields.

No examples provided.

remove_team_member ~39

Remove a person from this workspace (ids from list_team). Confirm with the person first.

NameTypeReqDescription
memberIdstringyesId of the member.

Structured output declared, but exposes no named fields.

No examples provided.

rename_media_folder ~53

Rename a folder in the media library (the place photos and videos are kept).

NameTypeReqDescription
folderIdstringyesId of the folder.
namestringyesNew name, 1 to 200 characters.

Structured output declared, but exposes no named fields.

No examples provided.

replace_slideshow_file ~128

Swap the PowerPoint or PDF behind an existing slideshow for a new version, so "replace the lobby presentation with this new PowerPoint" keeps the same slideshow, the same screens and the same schedule. Photos, videos and live-data slides the slideshow already has are kept. Read it back with get_slideshow to check the pages. The screen updates once the re-render finishes (renderStatus: Completed).

NameTypeReqDescription
filePathstringyesAbsolute path to the new .pptx or .pdf file on disk.
slideshowIdstringyesId of the slideshow whose file to replace.
NameTypeReqDescription
dataobject|nullyes–
undoobject––
warningsarray|null––

No examples provided.

report_issue ~173

Tell the InfoSlides team you could not do what the person asked because of InfoSlides itself: no tool for it, an error you could not get past, or docs that led you wrong. The team reads every report. Leave out personal data. Then tell the person plainly what you could not do; do not retry the same failing call in a loop. At most 50 reports and testimonials per workspace a day.

NameTypeReqDescription
agentstring|null–Your product name, e.g. 'Claude'.
intentstring|null–What the person asked for, in their words.
problemstringyesWhat went wrong, or what you could not do.
requeststring|null–The call that failed, e.g. 'PATCH /v1/slides/{id}' or a tool name.

Structured output declared, but exposes no named fields.

No examples provided.

resend_verification_email ~53

Send the owner's confirmation email again. Use this when another tool fails with EmailNotVerified — the owner has to click the link in that email before screens can be registered. Tell the user to check their spam folder.

Input schema present but exposes no named parameters.

NameTypeReqDescription
dataobject|nullyes–
undoobject––
warningsarray|null––

No examples provided.

restore_slideshow ~96

Bring back a deleted slideshow with its slides and settings. Its schedules and the screens that played it are not brought back, so assign it to a screen again. Find the id with get_audit_trail (action SlideshowDeleted, entityId). Deleted slideshows are removed for good after 90 days. Fails when the plan's slideshow limit is full.

NameTypeReqDescription
slideshowIdstringyesId of the deleted slideshow.

Structured output declared, but exposes no named fields.

No examples provided.

revoke_api_key ~76

Cut off a credential immediately — a leaked key, a system being decommissioned, someone who has left. Takes effect at once and cannot be undone; anything still using that key stops working, so confirm with the user before revoking.

NameTypeReqDescription
keyIdstringyesId of the key to revoke (from list_api_keys).
NameTypeReqDescription
dataobject|nullyes–
undoobject––
warningsarray|null––

No examples provided.

revoke_team_invitation ~38

Cancel a pending invitation (ids from list_team) so its link stops working.

NameTypeReqDescription
invitationIdstringyesId of the invitation.

Structured output declared, but exposes no named fields.

No examples provided.

search_articles ~229

Search the InfoSlides help articles, blog posts and release notes. Search here before telling the person something cannot be done. Also finds news since a date (since) or the notes of one release (releaseVersion). Each item has type, title, slug, url (the public page), publishedAt, releaseVersion, appRoute (the page in the InfoSlides web app the article is about) and a short excerpt. Read a whole article with get_article.

NameTypeReqDescription
pageinteger|null–Page number, from 1.
pageSizeinteger|null–Items per page, 1 to 100 (default 25).
qstring|null–Free text, e.g. 'portrait screen'. Best match first; without it, newest first.
releaseVersionstring|null–Only the release notes of this version, e.g. v1.10.2.
sincestring|null–Only articles published on or after this date, yyyy-MM-dd.
typestring|null–help, blog or release-note; all three when omitted.

Structured output declared, but exposes no named fields.

No examples provided.

search_stock_images ~161

Search free stock photos (Unsplash) for a text slide background, 9 a page. Show the person thumbUrl with the photographer credit (photographerName, photographerProfileUrl, unsplashPhotoUrl) beside it: the credit must be visible whenever a photo is shown. To use one, pass the whole result as stockPhoto to add_designed_slide or in the design for update_slide_design; that is the only way to use a stock photo. Rate limited to 30 searches a minute.

NameTypeReqDescription
orientationstring|null–landscape (default), portrait or squarish.
pageinteger|null–Page number, from 1.
qstringyesWhat the photo should show, e.g. 'lake at sunrise'.

Structured output declared, but exposes no named fields.

No examples provided.

set_device_offline_alerts ~142

Stop or restart the "screen went offline" emails for one screen, e.g. a TV that is switched off on purpose, and optionally give it its own quiet hours. This replaces the screen's settings, so send enabled every time; without quiet hours the workspace's apply.

NameTypeReqDescription
deviceIdstringyesId of the screen.
enabledbooleanyesFalse stops the emails for this screen.
quietEndstring|null–Optional quiet hours end, HH:mm; before quietStart spans midnight.
quietStartstring|null–Optional quiet hours start, HH:mm in the workspace time zone; give with quietEnd.

Structured output declared, but exposes no named fields.

No examples provided.

set_slide_conditions ~315

Make a slide appear only at the right moment, or vanish at one, like the breakfast menu before 11, the weekend offer on Saturday and Sunday, the Christmas slide only in December, a 'target hit' message only when the number is actually hit. Types: 'time' (e.g. '08:00-11:00'), 'weekday' (e.g. 'sat,sun'), 'date' (e.g. '2026-12-01..2026-12-26'; either end may be left out), 'data_trigger' (e.g. 'sales_today > 1000000'). By default the slide is shown only while ALL the conditions hold; match='any' shows it while at least one does, and mode='hide' turns the rule around so the slide is hidden while they hold. Checked server-side as the stream renders; an empty list clears the slide's rule. get_slideshow reads every rule back; ones marked readOnly were set on the web page and are not replaced by this call. To hide a slide unconditionally use update_slide.

NameTypeReqDescription
conditionsarrayyesThe conditions. Empty list clears them.
matchstring|null–"all" (default): every condition must hold. "any": one is enough.
modestring|null–"show" (default): show the slide only while the conditions hold. "hide": hide it while they hold.
slideIdstringyesId of the slide.
NameTypeReqDescription
dataobject|nullyes–
undoobject––
warningsarray|null––

No examples provided.

set_workspace_offline_alerts ~121

"Don't email me about screens at night." Sets the quiet hours for offline alert emails (alerts wait until they end). Give quietStart and quietEnd; give neither to alert at any hour. Screens with their own quiet hours keep them. Workspace admins only.

NameTypeReqDescription
quietEndstring|null–Quiet hours end, HH:mm; before quietStart spans midnight, e.g. '07:00'.
quietStartstring|null–Quiet hours start, HH:mm in the workspace time zone, e.g. '22:00'.

Structured output declared, but exposes no named fields.

No examples provided.

Install

How do I install the InfoSlides — put content on a TV or screen MCP server?

InfoSlides — put content on a TV or screen ships as an MCPB bundle, a single file you download and open in an MCP host that supports MCPB bundles, such as Claude Desktop. The host reads the launch command from the bundle's own manifest, so there is no command to copy. Before opening it, check the file's SHA-256 matches the one the MCP registry declares for it, f36a3060d3f9591c0facb0dfaa86d9f20dcb4e734858124596b94f683dcc1d8c; the commands to do that are on this page. If it does not match, do not open it.

mcpb · infoslides-mcp-v1.9.0.mcpb

Download bundle

Check the download matches the SHA-256 the MCP registry declares before you open it. If it does not match, do not open the file.

SHA-256

f36a3060d3f9591c0facb0dfaa86d9f20dcb4e734858124596b94f683dcc1d8c

macOS / Linux

echo "f36a3060d3f9591c0facb0dfaa86d9f20dcb4e734858124596b94f683dcc1d8c  infoslides-mcp-v1.9.0.mcpb" | shasum -a 256 -c

Windows (PowerShell)

(Get-FileHash -Algorithm SHA256 .\infoslides-mcp-v1.9.0.mcpb).Hash -eq "f36a3060d3f9591c0facb0dfaa86d9f20dcb4e734858124596b94f683dcc1d8c"

Run it in the folder you saved the bundle to, then open the file with an MCPB-capable host such as Claude Desktop.

Common questions

What is the InfoSlides — put content on a TV or screen MCP server?

InfoSlides — put content on a TV or screen is an MCP server listed in the public MCP registry as io.github.arnibj/infoslides. Put a PowerPoint, PDF, photo, or live data on any smart TV, menu board, or lobby screen. This page covers its MCPB bundle (https://github.com/arnibj/InfoSlides.MCP/releases/download/v1.9.0/infoslides-mcp-v1.9.0.mcpb).

Is the InfoSlides — put content on a TV or screen MCP server safe to use?

InfoSlides — put content on a TV or screen scores 61 out of 100 on VerifyMCP. Its build provenance is signed and verified. 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 InfoSlides — put content on a TV or screen MCP server expose?

InfoSlides — put content on a TV or screen exposes 120 tools: invite_team_member, update_template, test_source_config, report_issue, list_brand_previews, and 115 more. Their descriptions and schemas cost roughly 16,532 tokens of context every time the server is loaded.

What licence is the InfoSlides — put content on a TV or screen MCP server under?

InfoSlides — put content on a TV or screen declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.