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.
Available components
Last scanned (2 hours ago)
Scores higher than 95% of MCPB servers
Category Design and Media
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.
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
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 →
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 →
get_source_items Get content 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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer|null | – | How many items, 1 to 100 (default 20). |
| sourceId | string | yes | Id of the source (from list_sources). |
Structured output declared, but exposes no named fields.
No examples provided.
get_source_status Get content 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.
| Name | Type | Req | Description |
|---|---|---|---|
| sourceId | string | yes | Id of the source. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object|null | yes | – |
| undo | object | – | – |
| warnings | array|null | – | – |
No examples provided.
get_stream_link Get screen player 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.
| Name | Type | Req | Description |
|---|---|---|---|
| deviceId | string | yes | Id of the device. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object|null | yes | – |
| undo | object | – | – |
| warnings | array|null | – | – |
No examples provided.
get_template Get slide 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.
| Name | Type | Req | Description |
|---|---|---|---|
| templateId | string | yes | Id of the template. |
Structured output declared, but exposes no named fields.
No examples provided.
get_template_usage Get slide 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.
| Name | Type | Req | Description |
|---|---|---|---|
| templateId | string | yes | Id of the template. |
Structured output declared, but exposes no named fields.
No examples provided.
get_tenant_info Get workspace 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.
| Name | Type | Req | Description |
|---|---|---|---|
| data | object|null | yes | – |
| undo | object | – | – |
| warnings | array|null | – | – |
No examples provided.
get_upload_limits 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 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 Identify screens visually ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| deviceIds | array|null | – | Only these screens; all online screens when omitted. |
Structured output declared, but exposes no named fields.
No examples provided.
import_google_slides 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.
| Name | Type | Req | Description |
|---|---|---|---|
| accessToken | string | yes | Google access token with Drive read access to the file. |
| fileId | string|null | – | The Google Drive file id; omit when giving url. |
| title | string|null | – | Title for the slideshow; the Google file name when omitted. |
| url | string|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 Copy slide from shared slideshow ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| slideNumber | integer | yes | The page number to copy. |
| slideshowId | string | yes | The slideshow that receives the page. |
| sourceSlideshowId | string | yes | The shared slideshow to copy from. |
Structured output declared, but exposes no named fields.
No examples provided.
insert_ai_slides Insert generated 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.
| Name | Type | Req | Description |
|---|---|---|---|
| jobId | string | yes | Id of the Ready job. |
| position | integer|null | – | Zero-based position; appended when omitted. |
| slideshowId | string | yes | The slideshow the job belongs to. |
Structured output declared, but exposes no named fields.
No examples provided.
invite_team_member 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.
| Name | Type | Req | Description |
|---|---|---|---|
| string | yes | The person's email address. | |
| role | string|null | – | TenantAdmin (default), ContentManager, DeviceManager or Viewer. |
Structured output declared, but exposes no named fields.
No examples provided.
leave_testimonial Submit 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.
| Name | Type | Req | Description |
|---|---|---|---|
| agent | string|null | – | Your product name, e.g. 'Claude'. |
| context | string|null | – | The job, short and without names, e.g. 'set up a live menu board'. Shown as 'Job: ...'. |
| quote | string | yes | Your 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 List content 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| data | array|null | yes | – |
| undo | object | – | – |
| warnings | array|null | – | – |
No examples provided.
list_brand_previews List brand sample slides ~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 List screens ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| near | string|null | – | Optional 'latitude,longitude' to sort screens nearest-first, e.g. '64.1466,-21.9426'. |
| q | string|null | – | Optional name filter, case- and accent-insensitive. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | array|null | yes | – |
| undo | object | – | – |
| warnings | array|null | – | – |
No examples provided.
list_gallery List gallery templates ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| data | array|null | yes | – |
| undo | object | – | – |
| warnings | array|null | – | – |
No examples provided.
list_media List media library ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| folderId | string|null | – | Only files in this folder (ids from list_media_folders). |
| name | string|null | – | Only files whose name contains this, any case. |
| page | integer|null | – | Page number, from 1. |
| pageSize | integer|null | – | Items per page, 1 to 100 (default 50). |
| type | string|null | – | image, video or document. |
Structured output declared, but exposes no named fields.
No examples provided.
list_media_folders 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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| excludeId | string|null | – | A slideshow to leave out of the list. |
Structured output declared, but exposes no named fields.
No examples provided.
list_slideshows 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.
| Name | Type | Req | Description |
|---|---|---|---|
| page | integer|null | – | Page number, from 1. |
| pageSize | integer|null | – | Items per page, 1 to 100 (default 50). |
| q | string|null | – | Optional title filter, case- and accent-insensitive. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object|null | yes | – |
| undo | object | – | – |
| warnings | array|null | – | – |
No examples provided.
list_sources List content 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.
| Name | Type | Req | Description |
|---|---|---|---|
| data | array|null | yes | – |
| undo | object | – | – |
| warnings | array|null | – | – |
No examples provided.
list_takeovers List screen 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.
| Name | Type | Req | Description |
|---|---|---|---|
| activeOnly | boolean | – | Only takeovers active right now. |
| deviceId | string|null | – | Only this screen's takeovers. |
Structured output declared, but exposes no named fields.
No examples provided.
list_team List team members ~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 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 List slide 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.
| Name | Type | Req | Description |
|---|---|---|---|
| data | array|null | yes | – |
| undo | object | – | – |
| warnings | array|null | – | – |
No examples provided.
make_ai_slide Generate slide with AI ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| background | string|null | – | auto, none (plain colour) or photo (stock photo). |
| backgroundDescription | string|null | – | With background photo: what the photo should show. |
| branding | boolean|null | – | True to feature logo and brand colour, false to keep branding subtle; omit to let the prompt decide. |
| handler | string | yes | prompt, photo, url or document. |
| insert | boolean | – | True to add the slides straight away without a preview step. |
| mediaAssetId | string|null | – | Uploaded media id (photo, document, or a background image for prompt). |
| mediaUrl | string|null | – | Public address of a photo. |
| prompt | string|null | – | What the slide should say (handler prompt). |
| slideshowId | string | yes | The slideshow to add the slides to. |
| url | string|null | – | Page address (handler url). |
Structured output declared, but exposes no named fields.
No examples provided.
pair_device Pair a TV screen ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| deviceId | string|null | – | An existing screen: alone, returns a code to type on the TV; with qr/nickname, binds this TV to it. |
| deviceName | string|null | – | Name for a newly created screen, e.g. 'Lobby TV'. |
| dryRun | boolean | – | True to validate without pairing anything. |
| nickname | string|null | – | The nickname shown under the QR code, e.g. 'swift-oak-42'. |
| qr | string|null | – | The scanned QR code URL (or its bare session id). |
| slideshowId | string|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 Play slideshow on screen ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| deviceId | string|null | – | The screen; optional when the workspace has one screen. |
| dryRun | boolean | – | True to report what would happen without changing anything. |
| slideshowId | string | yes | The slideshow to play. |
| until | string|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 Preview brand sample slide ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| sample | string|null | – | Sample name (default title). |
| source | string|null | – | draft (default) or confirmed. |
No output schema declared.
No examples provided.
preview_new_template Preview unsaved 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.
| Name | Type | Req | Description |
|---|---|---|---|
| aspectRatio | string|null | – | 16:9 (default), 9:16 or 1:1. |
| layoutCss | string|null | – | Template CSS. |
| layoutHtml | string | yes | Template HTML; every {{field}} is a data field. |
| sampleData | object|null | – | Example data as a JSON object. |
No output schema declared.
No examples provided.
preview_slide Preview slide image ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| slideId | string | yes | Id of the slide to render. |
No output schema declared.
No examples provided.
push_data Push live 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.
| Name | Type | Req | Description |
|---|---|---|---|
| data | object | yes | The values, as a JSON object with the template's field names. |
| dryRun | boolean | – | Check the data without storing it. |
| sourceId | string | yes | Id of the push source (the sourceId returned by add_dynamic_slide). |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object|null | yes | – |
| undo | object | – | – |
| warnings | array|null | – | – |
No examples provided.
reactivate_member Turn on team member access ~49
Turn a team member's access back on. Fails with EntitlementRequired when the plan's user limit is reached. Workspace admins only.
| Name | Type | Req | Description |
|---|---|---|---|
| memberId | string | yes | Id of the member. |
Structured output declared, but exposes no named fields.
No examples provided.
regenerate_template_thumbnail Redraw template thumbnail ~47
Redraw the gallery picture of a layout the workspace owns, for example after its look changed. Returns thumbnailPath. Rate limited.
| Name | Type | Req | Description |
|---|---|---|---|
| templateId | string | yes | Id of the template. |
Structured output declared, but exposes no named fields.
No examples provided.
remove_team_member Remove team member ~39
Remove a person from this workspace (ids from list_team). Confirm with the person first.
| Name | Type | Req | Description |
|---|---|---|---|
| memberId | string | yes | Id of the member. |
Structured output declared, but exposes no named fields.
No examples provided.
rename_media_folder Rename media folder ~53
Rename a folder in the media library (the place photos and videos are kept).
| Name | Type | Req | Description |
|---|---|---|---|
| folderId | string | yes | Id of the folder. |
| name | string | yes | New name, 1 to 200 characters. |
Structured output declared, but exposes no named fields.
No examples provided.
replace_slideshow_file 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).
| Name | Type | Req | Description |
|---|---|---|---|
| filePath | string | yes | Absolute path to the new .pptx or .pdf file on disk. |
| slideshowId | string | yes | Id of the slideshow whose file to replace. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object|null | yes | – |
| undo | object | – | – |
| warnings | array|null | – | – |
No examples provided.
report_issue Report an 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.
| Name | Type | Req | Description |
|---|---|---|---|
| agent | string|null | – | Your product name, e.g. 'Claude'. |
| intent | string|null | – | What the person asked for, in their words. |
| problem | string | yes | What went wrong, or what you could not do. |
| request | string|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 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.
| Name | Type | Req | Description |
|---|---|---|---|
| data | object|null | yes | – |
| undo | object | – | – |
| warnings | array|null | – | – |
No examples provided.
restore_slideshow Restore deleted 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.
| Name | Type | Req | Description |
|---|---|---|---|
| slideshowId | string | yes | Id of the deleted slideshow. |
Structured output declared, but exposes no named fields.
No examples provided.
revoke_api_key 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.
| Name | Type | Req | Description |
|---|---|---|---|
| keyId | string | yes | Id of the key to revoke (from list_api_keys). |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object|null | yes | – |
| undo | object | – | – |
| warnings | array|null | – | – |
No examples provided.
revoke_team_invitation Revoke team invitation ~38
Cancel a pending invitation (ids from list_team) so its link stops working.
| Name | Type | Req | Description |
|---|---|---|---|
| invitationId | string | yes | Id of the invitation. |
Structured output declared, but exposes no named fields.
No examples provided.
search_articles Search InfoSlides help and news ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| page | integer|null | – | Page number, from 1. |
| pageSize | integer|null | – | Items per page, 1 to 100 (default 25). |
| q | string|null | – | Free text, e.g. 'portrait screen'. Best match first; without it, newest first. |
| releaseVersion | string|null | – | Only the release notes of this version, e.g. v1.10.2. |
| since | string|null | – | Only articles published on or after this date, yyyy-MM-dd. |
| type | string|null | – | help, blog or release-note; all three when omitted. |
Structured output declared, but exposes no named fields.
No examples provided.
search_stock_images Search stock photos ~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.
| Name | Type | Req | Description |
|---|---|---|---|
| orientation | string|null | – | landscape (default), portrait or squarish. |
| page | integer|null | – | Page number, from 1. |
| q | string | yes | What the photo should show, e.g. 'lake at sunrise'. |
Structured output declared, but exposes no named fields.
No examples provided.
set_device_offline_alerts Set screen 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.
| Name | Type | Req | Description |
|---|---|---|---|
| deviceId | string | yes | Id of the screen. |
| enabled | boolean | yes | False stops the emails for this screen. |
| quietEnd | string|null | – | Optional quiet hours end, HH:mm; before quietStart spans midnight. |
| quietStart | string|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 Set slide display 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.
| Name | Type | Req | Description |
|---|---|---|---|
| conditions | array | yes | The conditions. Empty list clears them. |
| match | string|null | – | "all" (default): every condition must hold. "any": one is enough. |
| mode | string|null | – | "show" (default): show the slide only while the conditions hold. "hide": hide it while they hold. |
| slideId | string | yes | Id of the slide. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | object|null | yes | – |
| undo | object | – | – |
| warnings | array|null | – | – |
No examples provided.
set_workspace_offline_alerts 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.
| Name | Type | Req | Description |
|---|---|---|---|
| quietEnd | string|null | – | Quiet hours end, HH:mm; before quietStart spans midnight, e.g. '07:00'. |
| quietStart | string|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.
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 bundleCheck 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.
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.