API and MCP usage
Use MetaOS from your AI assistant over MCP, or from your own code over GraphQL.
MCP
MetaOS is an MCP server. Connect an AI assistant such as Claude, Codex or ChatGPT to it, and the assistant can look up and manage Ogrodje's episodes, people, recording sessions and shows, its Google Docs and its files in Koofr, as you.
Add MetaOS to Claude Code
In a terminal;
--scope usermakes it available in all your projects.claude mcp add --transport http --scope user ogrodje https://ogrodje.si/mcpSign in
In Claude Code, run
/mcp, pick ogrodje and choose Authenticate. Your browser opens MetaOS's sign-in, where you sign in with Discord or Google.Be on the staff
MCP is for Ogrodje's staff. Signing in makes you a member; an Ogrodje admin makes your account staff, and until then MetaOS turns the assistant's sign-in down. Once you're staff, sign in again.
Ask
For example: “Which episodes are in production?” or “Who's on the next recording day?” The assistant picks the tools it needs from the ones below and, unless you've allowed them, asks you before it uses one.
Keep its tools up to date
MetaOS's tools are at version
1.1.0, and change as MetaOS does. An assistant keeps those it was given, so when it can't find one listed below, or MetaOS turns down how it calls one, it has older ones. Claude Code gets them again in a new session, or in/mcp: pick ogrodje and choose Reconnect.
Other MCP clients that sign in with OAuth, such as MCP Inspector, connect to https://ogrodje.si/mcp.
GraphQL
MetaOS's pages get what they show from its GraphQL API, and your scripts and apps can ask it too.
- Endpoint
POST https://ogrodje.si/graphql, with JSON: aqueryand itsvariables- Errors
- In the answer's body, with a 200
- Schema
- By introspection, for GraphQL clients, and described field by field in schema.graphqls on GitHub
- Limits
- 15 levels deep and 300 fields a query
Without a token
What's public works for anyone: the released episodes, and the people on them. That's also all that episodes and people give anyone without a token.
curl -s https://ogrodje.si/graphql \
-H 'Content-Type: application/json' \
-d '{"query":"{ releasedEpisodes(limit: 3) { code title airedDate youtubeUrl } }"}'With a token
The rest is the team's. It takes a staff user's token, with metaos:read, and metaos:write for changes. Scripts have no sign-in of their own yet, so it's one from MetaOS's sign-in, which has both.
Your tokenlasts 5 minutes
Sign in, at the top right, and this is where you copy yours.
curl -s https://ogrodje.si/graphql \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $TOKEN" \
-d '{"query":"{ me { username person { name } } }"}'curl -s https://ogrodje.si/graphql \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer $TOKEN" \
-d '{"query":"mutation ($ref: String!, $body: String!) { commentOnEpisode(ref: $ref, body: $body) { id createdAt } }","variables":{"ref":"S05E08","body":"Hello from the API"}}'Tools
123What an assistant can do over MCP, as you, at version 1.1.0. It picks the ones it needs, and asks you first unless you've allowed them.
Search episodes, ideas, people and recording sessions at once
search- Find episodes, people and sessions by a code, a name or words in their titles and summaries; a code finds its episode on its own
Episodes from idea to release
list_episodes- List episodes, latest first, optionally only those with a given status
get_episode- An episode by its code or ID, with its summaries
create_episode- Add an episode; it starts as an idea, which can do without a code, recommended by you unless you name someone else
set_episode_recommended_by- Set or clear who recommended an episode
update_episode- Change an episode's code, title, alternative titles for A/B tests, summaries or dates
set_episode_status- Move an episode through its lifecycle, from idea to published, one step at a time
set_episode_link- Set or clear its YouTube, Spotify or Apple Podcasts link, or one of its four on Patreon: the full episode or its bonus, as video or audio only; each is in its distribution too
delete_episode- Delete an episode; it can be restored
restore_episode- Bring back a deleted episode, with its people, links, session and show; under a new code if its own is taken
Distribution where an episode went out once it was released: its links, and posts that promote it
list_episode_distributions- Where an episode went out: its links, then its posts, each with its page's preview
list_distributions- Where every episode went out, the latest first, e.g. this week, or on LinkedIn
add_episode_distribution- Log a post that promotes an episode, by its URL, e.g. on Discord, LinkedIn or Reddit; MetaOS fetches its preview
update_episode_distribution- Change a post's URL, channel, note, title or when it went out
remove_episode_distribution- Take a post off an episode; one of its links is cleared on the episode too
refresh_distribution_preview- Fetch a post's preview again, e.g. after it changed
People hosts, guests, producers and you
list_people- List all people
create_person- Add a person
set_person_email- Set or clear a person's email; accounts that sign in with it are linked to them
set_person_bio- Set or clear the line about who a person is, e.g. their role and company
set_person_link- Set or clear their homepage, LinkedIn, Twitter/X, Instagram or Facebook
delete_person- Delete a person; they drop off their episodes, and those they recommended, until they are restored
restore_person- Bring back a deleted person, with their roles and the episodes they recommended; with another email, or none, if theirs is taken
list_episode_people- The people on an episode and their roles
assign_person_to_episode- Give a person a role on an episode: host, co-host, guest, producer, consultant, designer, or candidate for someone who could be its guest
remove_person_from_episode- Take a person off an episode: one of their roles, or all of them
confirm_guest- Make a candidate an episode's guest, once they've said yes
list_person_episodes- The episodes a person is on, and their roles
whoami- Who you're signed in as: your account and the person it's linked to; and the version of MetaOS's tools
my_episodes- The episodes you're on, and your roles
list_accounts- The accounts MetaOS has seen and the people they are, or only those not linked to anyone
link_account- Link an account to the person it is, so its comments and changes go by their name, past ones too; only Oto may
unlink_account- Unlink an account from its person, e.g. one linked to the wrong person; only Oto may
Recording sessions days on which episodes are recorded
list_sessions- List all sessions, newest first
create_session- Add a session: its date, name, location and address
update_session- Change a session's date, name, location or address
delete_session- Delete a session; its episodes are kept
restore_session- Bring back a deleted session, with its episodes
list_session_episodes- The episodes of a session
set_episode_session- Move an episode into a session, or out of one
Discussion comments on episodes, ideas and recording sessions, in Markdown, as on GitHub
list_episode_comments- An episode's or idea's comments, oldest first, with who wrote them and when
list_session_comments- A recording session's comments, oldest first
comment_on_episode- Comment on an episode or idea as you, in Markdown
comment_on_session- Comment on a recording session as you, in Markdown
edit_comment- Change the text of one of your comments; it shows as edited
delete_comment- Delete one of your comments; the history keeps that it was there
Shows series of episodes, such as Borderless
list_shows- List all shows
get_show- A show by its name
create_show- Add a show, its episodes in Slovenian unless you give another language
update_show- Rename a show, or change its color or the language its episodes are spoken in
delete_show- Delete a show; its episodes are kept
restore_show- Bring back a deleted show, with its episodes; under a new name if its own is taken
list_show_episodes- The episodes of a show
set_episode_show- Move an episode into a show, or out of one
Google Drive Ogrodje's folder
list_drive_folder- What is in a folder
search_documents- Search Google Docs by the words in their title or text
read_document- Read a Google Doc, as Markdown
list_episode_documents- The Google Docs of an episode and of its recording session
link_episode_document- Link a Google Doc to an episode, e.g. its preparation doc
unlink_episode_document- Unlink a Google Doc from an episode; the doc stays in Drive
list_session_documents- The Google Docs of a recording session
link_session_document- Link a Google Doc to a recording session, e.g. its recording day plan
unlink_session_document- Unlink a Google Doc from a recording session; the doc stays in Drive
match_episode_documents- Link the docs in a folder to episodes by the code in their titles; only reports, unless told to link
Koofr the folders shared with Ogrodje's bot
list_koofr_places- The folders shared with Ogrodje's bot, and whether it may change them
list_koofr_folder- What is in a folder
search_koofr- Search for files and folders by name
read_koofr_file- Read a text file: txt, md, csv, json, srt and the like
upload_koofr_file- Upload a file; one of the same name is only replaced when asked
create_koofr_folder- Create a folder
move_koofr_file- Move or rename a file or folder; what it is linked to stays linked
list_episode_koofr_folders- The Koofr folders of an episode and of its recording session
link_episode_koofr_folder- Link a Koofr folder to an episode, e.g. the one with its recordings
unlink_episode_koofr_folder- Unlink a Koofr folder from an episode; the folder stays in Koofr
list_session_koofr_folders- The Koofr folders of a recording session
link_session_koofr_folder- Link a Koofr folder to a recording session
unlink_session_koofr_folder- Unlink a Koofr folder from a recording session; the folder stays in Koofr
Dropbox the folders shared with Ogrodje's bot, like Artwork
list_dropbox_places- The folders shared with Ogrodje's bot, and whether it may change them
list_dropbox_folder- What is in a folder
search_dropbox- Search for files and folders by name
read_dropbox_file- Read a text file: txt, md, csv, json, srt and the like
view_dropbox_image- Look at a picture, e.g. artwork for an episode
upload_dropbox_file- Upload a file; one of the same name is only replaced when asked
create_dropbox_folder- Create a folder
move_dropbox_file- Move or rename a file or folder
list_episode_dropbox_folders- The Dropbox folders of an episode and of its recording session
link_episode_dropbox_folder- Link a Dropbox folder to an episode, e.g. the one with its artwork
unlink_episode_dropbox_folder- Unlink a Dropbox folder from an episode; the folder stays in Dropbox
list_session_dropbox_folders- The Dropbox folders of a recording session
link_session_dropbox_folder- Link a Dropbox folder to a recording session
unlink_session_dropbox_folder- Unlink a Dropbox folder from a recording session; the folder stays in Dropbox
Patreon Ogrodje's Patreon: drafts and an episode's audio or video, which a person publishes in Patreon
list_patreon_tiers- The tiers, cheapest first, with their prices and patrons
list_patreon_members- The members, patrons first: their status, tiers, pledge, what they gave in all and their last charge
list_patreon_posts- The published posts, newest first, or those with words in their titles
list_patreon_drafts- The drafts, scheduled ones too, last edited first, with where to edit them
get_patreon_post- A post, published or a draft, with its text and who may see it
get_patreon_post_media- Download links for a post's audio (the MP3 as uploaded) or video (its best MP4), for a day or so
create_patreon_draft- Make a draft post, for everyone, every patron or some tiers; only the team sees it
update_patreon_post- Change a post's title, text or who may see it
set_patreon_post_media- Upload one of an episode's files in MetaOS to a draft, as a podcast or video post
set_patreon_post_image- Set a post's thumbnail, one of the episode's pictures in MetaOS
prepare_patreon_post- Check a draft is ready for a person to publish in Patreon: its title, and its audio or video processed
delete_patreon_post- Delete a post, e.g. a draft that isn't needed
get_patreon_job- How a change in Patreon is going, e.g. an upload: done, failed and why, or waiting its turn or to try again
Pictures thumbnails, covers and avatars for everyone to see, at media.ogrodje.si
set_episode_image- Make a picture from Dropbox or Koofr an episode's thumbnail, thumbnail B or C (for its alternative titles) or web picture, 1920 × 1080, or its cover, 3000 × 3000
remove_episode_image- Take one of its pictures off an episode
list_episode_images- An episode's thumbnails, web picture and cover, with their URLs
set_person_avatar- Make a picture from Hygraph, Dropbox or Koofr a person's avatar
remove_person_avatar- Take a person's avatar off them
get_person_avatar- A person's avatar, with its URLs
Video and audio an episode's full video and audio and its bonuses, uploaded on its page, for the team only
list_episode_media- An episode's video and audio files, with what's in each (length, codecs, resolution) and a link that downloads it for an hour
update_episode_media- Change a file's title, or what it is, e.g. a bonus video that's the full video
remove_episode_media- Take a video or audio file off its episode, and delete it
Transcripts what's said in an episode's video and audio, by Google's Speech-to-Text or Soniox, in a durable workflow
transcribe_episode- Transcribe an episode's full audio or video, or another of its files, with Google's Speech-to-Text or Soniox; it waits its turn when the provider is busy
list_transcriptions- Transcriptions, the latest first: queued, on, done, failed or cancelled, by provider or episode
get_transcription- One transcription by its ID, as it is now, to watch it till it's done
cancel_transcription- Stop a transcription that's on, and the provider's with it
get_episode_transcript- An episode's transcripts, by each provider, with timestamps and speakers where told apart, and how its transcriptions that are on are going
remove_transcript- Remove one of an episode's transcripts, and what it says
History who changed what, and when, and bringing back what was deleted
get_history- Every change to an episode, person, session or show, its discussion too, with when and by whom
list_recent_changes- The latest changes to everything
list_deleted- The deleted episodes, people, sessions and shows, with when and by whom, to restore
restore_link- Bring back a removed role, Google Doc, Koofr or Dropbox folder, from the change that removed it