MCP.Market

Familiar MCP server

by familiarvtt.com·com.familiarvtt/familiar·v2.26.0·1 stars

AI co-pilot for Foundry VTT: runs combat, scenes, voices and audio. Requires the Familiar module.

B83/100grade B
What users say
No reviews yet
Be the first
Safety scan
B83/100

full report

Adoption
Growing

1 stars325 downloads/wk

Reviews

Write one

Nobody has reviewed Familiar yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Familiar tools (100, 26 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • add-combatant

    Add tokens to an active combat encounter as new combatants. Use for mid-combat reinforcements. Requires an active combat. A token already in the encounter is always rejected; during enforced dnd5e combat a dead or 0-HP token is rejected too \u2014 at 0 HP heal it first (heal-party); dead needs revival magic (a Revivify-class spell through resolve-spell, combat-ai bundle \u2014 healing cannot reviv

  • advance-time

    Advance the in-game clock by a specified duration. Returns the new in-game time. Use for long rests (8 hours), short rests (1 hour), travel montages, narrative time skips, and, outside combat (rounds keep time there), once per turn for an action that took in-world time (a conversation, a walk, a search) with a plausible duration. Specify at least one time unit. On a D&D 5e world with the system ca

  • apply-condition-to-group

    Apply a status condition to multiple tokens at once. Tokens that already have the condition, or are immune to it, are skipped (echoed alreadyHad / immune: true) and still count toward `applied` \u2014 this tool never removes; remove per token with toggle-condition. Use get-available-conditions first to see valid condition names and which carry ruleBasis (the engine-gated set). Returns per-token re

  • apply-damage

    Apply damage to one or more targets in a single batch (temp HP absorption handled automatically). Returns per-target results with HP before/after. Use for AoE effects, lair actions, or environmental/trap damage that hits creatures directly. A creature ATTACKING another creature must NOT use this \u2014 use resolve-attack / resolve-spell (combat-ai bundle) instead, which enforce range, to-hit, and

  • assign-character-ownership

    Give a player ownership or limited access to a character. Permission levels: 0=NONE, 1=LIMITED (basic info), 2=OBSERVER (full view), 3=OWNER (full control). Use OWNER (3) to assign a character to a player. Use list-users to find valid user names/IDs. Returns the character name, user name, and applied permission level.

  • award-xp

    Award experience points to party members … or to the named recipients (dnd5e worlds only). Divides the total XP evenly among recipients. Use after combat or for milestone rewards.

  • create-characterwrite action

    Create a new character (NPC or PC) from scratch, optionally with everything on it: system (any sheet data \u2014 identity, abilities, traits, skills, currency, HP; its param names the D&D 5e NPC paths, update-character the rest), items (embedded item records: features, weapons, spells, class/species/background \u2014 each {name, type, system, img}; on D&D 5e 5.x an item's actions live in system.ac

  • create-character-from-compendiumwrite action

    Import a creature or NPC from a compendium pack into the world as a new actor with its full stat block, items, spells, and features. Returns the new actor ID. Use search-compendium first to find the pack key and entry ID. For creating a blank character from scratch, use create-character (character-edit bundle) instead.

  • create-compendium-packwrite action

    Create a new empty world compendium pack holding exactly one document type. The pack starts unlocked and appears under the Compendiums tab; fill it with export-to-compendium and edit entries with update-compendium-entry. Note: a world pack belongs to this world only \u2014 for content reused across worlds, export into an unlocked pack of a shared compendium module instead (created once via Foundry

  • create-journalwrite action

    Create a new journal entry, optionally with initial pages of content. Returns the new journal ID and page IDs. Pages support HTML formatting. Use for session notes, lore, NPC details, handouts, or quest tracking.

  • create-journal-pagewrite action

    Add a new page to an existing journal entry. Returns the new page ID. Text pages (the default) take HTML or plain text content. Image pages accept src \u2014 a Foundry-relative path (e.g. the familiar/generated/\u2026 path returned by generate-image), an https URL, or a raster data: URI \u2014 turning generated art into a persistent handout. …)} Showing the page to players stays a separate manual

  • create-scenewrite action

    Create a scene, optionally with an EXISTING image as its background (the background param \u2014 a Foundry-relative path such as a familiar/generated/\u2026 result). For an AI-GENERATED battle map, dungeon, tavern, or any scene whose image does not exist yet, prefer generate-scene (enable the scene-generator bundle) \u2014 it creates the scene AND generates + applies the background in one step. Re

  • create-tokenswrite action

    Place one or more tokens on the active scene from world actors. Each entry's actorId accepts a world actor ID or its exact name. Supports batch placement for encounter setup. Returns the created token IDs. Use start-combat afterward to begin a combat encounter with the placed tokens.

  • delete-characterwrite action

    Delete a character from the world permanently. Removes the actor and all its owned items, spells, and features. This is irreversible. Tokens on scenes will become unlinked. Returns the deleted character name and ID. During enforced dnd5e combat, deleting an actor that still has a live combatant in any started encounter is rejected: defeat it through resolve-attack / resolve-spell, or use remove-co

  • delete-character-itemswrite action

    Remove items, spells, or features from a character permanently. Accepts item names or Foundry document IDs. This is destructive and irreversible. Returns the actor name and the deleted item IDs (names are resolved to IDs).

  • delete-journalwrite action

    Delete a journal entry and all its pages permanently. This is irreversible. Map pins linked to this journal will lose their link. Returns the deleted journal name and ID.

  • delete-journal-pagewrite action

    Delete a single page from a journal entry. The journal entry itself and other pages are preserved. This is irreversible. Returns the journal name and deleted page ID.

  • delete-scenewrite action

    Delete a scene from the world permanently. Removes all tokens, walls, lights, and sounds on the scene. This is irreversible. Returns the deleted scene name and ID. During enforced dnd5e combat, deleting the scene the active combat is fought on is rejected while creatures are still in the fight \u2014 end the combat first (end-combat), or clear the encounter through resolve-attack / resolve-spell /

  • delete-tokenswrite action

    Remove tokens from the active scene permanently. Accepts token names or IDs. This does not delete the underlying actor \u2014 only the token placement on this scene. Returns the count of deleted tokens, their IDs, and any errors for tokens not found. During enforced dnd5e combat, deleting a token that is still a live combatant is rejected (it would take the creature off the battlefield mid-fight):

  • disable-tool-bundle
  • duplicate-character

    Clone an existing character to create a copy with all items, spells, and features. Returns the new actor's ID and resolved name. Use for creating NPC variants (e.g., 'Goblin Archer' from 'Goblin'). For creating characters from scratch, use create-character instead.

  • enable-tool-bundle
  • end-combat

    End the current combat encounter. Removes all combatants from the tracker and resets initiative order. Use when a fight ends or to clean up before starting a new encounter. Combat data (rounds, turns) is lost \u2014 check get-combat first if you need to record results. Ending combat also sweeps combat-scoped automation \u2014 active spell zones, summons, transforms, and feature effects (e.g. Rage)

  • export-to-compendium

    Copy an existing world document (actor, item, journal, rollable table, macro, playlist, scene, or card stack) into a compendium pack. The document is looked up by name or ID in the world collection matching the pack's document type; the original stays in the world and the pack receives a copy. Re-exporting the same document OVERWRITES its earlier copy in the pack with the current world version (th

  • get-available-conditions

    List all status conditions available in the game system (e.g., prone, poisoned, blinded, stunned). Returns every condition (no pagination) with ID, name, icon, and ruleBasis \u2014 ruleBasis:true means the condition requires a D&D 5e rule basis, so ADDing it by manual toggle is rejected during enforced dnd5e combat (route it through the resolvers; "dead" additionally rejects manual REMOVE). ruleBa

  • get-character

    Get a character's sheet: a neutral core (name, type, HP where the sheet has a recognizable pool) plus the native stat block in the system's own vocabulary (on D&D 5e: an identity block \u2014 the sheet's gender/pronouns text, alignment, size, age, class levels; NPCs also CR + creature type \u2014 then ability scores with saves, AC, movement, spells with slots, features, condition immunities, activ

  • get-character-item

    Get full details of a specific item, spell, or feature on a character. On D&D 5e returns description plus the common mechanics fields (properties, damage, range, uses, save, activities, \u2026) \u2014 a curated set; …. Use the item ID from search-character-items results.

  • get-combat

    Get the current combat tracker state. Returns round number, active turn, and all combatants with initiative order, HP, and hidden/defeated state. For AC, conditions, positions, and abilities for AI decision-making, use get-combat-snapshot (combat-ai bundle) instead.

  • get-combat-snapshot

    Read the current combat state to decide a creature's turn \u2014 call once at the start of every turn. The view is filtered per role: enemies show HP percentage only (never exact HP); the CURRENT combatant carries the full stat block (usable weapons/spells/features \u2014 features[] is SHEET metadata, not a resolve-feature contract: resolve-feature's error listing is the authoritative activatable

  • get-compendium-entry

    Get full details of a compendium entry. Returns complete stat blocks for creatures, spell descriptions with mechanics, or item properties (HTML stripped to plain text). For JournalEntry packs, returns the entry's pages as plain text: ONE page by pageId (the matchedPage.id from a search-compendium row \u2014 the way to read a rule or a glossary entry without paging), or a window via pageOffset/page

  • get-current-scene

    Get the active scene with paginated token data. Returns scene name, dimensions (width/height in pixels), grid settings (size, distance), darkness level (plus darknessLock: true while Darkness Lock is on \u2014 set-darkness then needs overrideLock), a vision block (tokenVision; globalLight only when switched on: true = lighting everything in line of sight now, "outside-darkness-range" = on but idle

  • get-familiar-settings

    Read Familiar's own settings (the switches and selects of its settings window) with their current value, default, allowed values and who may change them. Pass area for one tab, or key for one setting with its full option list; omit both for every readable setting. Each entry carries label, kind, scope (world = stored in this Foundry world for every client; client = stored in the GM browser that ru

  • get-journal

    Get a full journal entry with all page content rendered as plain text (HTML stripped). Returns the entry name and all pages with their names, IDs, types, and full content; media pages (image/video/pdf) also carry their src path when set \u2014 reusable in create-journal-page or send-chat-message. A big entry can outgrow the caller's result budget: pass limit (and offset) to read it in page windows

  • get-journal-page

    Get a single page from a journal entry with full content (media pages also carry their src path when set). Use the page ID from list-journals or get-journal results. For reading all pages at once, use get-journal instead.

  • get-movement-options

    Get pre-scored tactical movement options for the current combatant. Returns up to 5 positions within the movement REMAINING this turn (condition-aware speed minus distance already moved \u2014 speedFt echoes that remainder, not the statblock walk), each scored and categorized (advance, retreat, flank, hold, approach-ally). Includes opportunity attack risk warnings and cover analysis. Scores factor

  • get-scene

    Get full details of any scene by name or ID, including dimensions, grid settings, darkness level (plus darknessLock: true while locked), weather, background image, folder, the vision block (tokenVision, globalLight, lights, fog \u2014 same shape and absence rules as get-current-scene), and paginated token list (rows share get-current-scene\u2019s shape \u2014 default hidden/elevation and a matchin

  • get-screenshot

    Capture an annotated JPEG screenshot of the GM's current Foundry VTT canvas view. Tokens are overlaid with numbered colored badges (green=friendly, red=hostile, yellow=neutral). Returns the image and a text legend mapping badge numbers to token name, disposition, HP, and AC. Use to verify token positions, inspect the battlefield, or reference tokens by number in conversation.

  • get-server-diagnostics
  • get-time

    Get the current in-game time as elapsed world time: total seconds plus a formatted "Day N, HH:MM:SS" string (elapsed time, not a calendar date \u2014 days count from world start; the dnd5e 6+ system calendar, where enabled, is separate). Use before advance-time to check the current time and plan time skips.

  • get-user

    Get detailed information about a specific user. Returns name, ID, role, online status, assigned character (omitted when none), color, and a list of the actors they explicitly own (per-user OWNER permission \u2014 default-ownership grants and implicit GM access are not enumerated). Accepts user name (exact match) or Foundry user ID.

  • get-weather-effects

    List all available weather effect IDs that can be applied with set-weather. Returns effect names and IDs. Use to discover valid weather options before applying one.

  • get-world-info

    Foundry VTT world metadata: game system, world name, Foundry version, and all connected players with a GM flag (role names live in list-users). When the GM has saved table rules for this world, the result carries them as tableInstructions (standing setting, tone, and house rules) \u2014 follow them in everything you narrate. When the campaign has stored memories, it carries campaignMemory (the top

  • heal-party

    Heal all party members … or a specific character or token. Healing is capped at max HP. Omit identifier to heal the entire party. Use after combat, during a rest, or when applying healing spells/potions to multiple characters. Healing a creature at 0 HP revives it automatically (death saves reset, unconscious/prone removed, defeat cleared); creatures marked dead cannot be healed \u2014 their per-t

  • import-compendium-to-character

    Import an item or spell from a compendium pack onto a character's sheet. Copies the compendium entry as a new owned item. Use search-compendium (compendium bundle) first to find the pack key and entry ID. For a D&D 5e class, subclass, species, or background pass applyAdvancement:true (or choices / build, which imply it) \u2014 the system's own advancement engine then runs: level-1 features, fixed

  • level-up-class

    Level up a class on a character (dnd5e worlds only \u2014 on other systems this tool refuses; level up through the game system instead). Pass applyAdvancement:true (or choices / build, which imply it) to let the system's own advancement engine do the level: class features, scale values, proficiency and HP-after-an-average-level apply by themselves; every genuine choice (HP roll-or-average, ASI vs

  • list-characters

    List actors in the world with summary info (name, type). Returns a paginated list without stats or portraits \u2014 HP/AC/level live in get-character and list-party-members, image paths in get-character. Every row also carries hasPortrait and hasToken: false means that slot still holds the placeholder art Foundry or the game system assigned (a wildcard prototype token counts as art the GM chose).

  • list-compendium-packs

    List all available compendium packs. Returns each pack's ID (collection key, e.g., 'dnd5e.spells'), document type (Actor, Item, JournalEntry, Scene, etc.), human-readable label, source system, and locked (a locked pack takes no writes \u2014 system and module packs ship locked). Use the returned pack IDs with search-compendium and get-compendium-entry to find and retrieve specific entries.

  • list-journals

    List journal entries in the world with pagination. Returns each entry's name, ID, page count with page names/IDs (page types live in get-journal), and folder name. Response includes total count and hasMore flag. Filter by folder name for organized worlds. For searching journal content, use search-journals instead.

  • list-party-members

    Get the adventuring party: on D&D 5e the members of the world's primary party group (the Party sheet \u2014 they count before any player owns them; those rows carry `partyGroup` = the group's name, in both shapes) merged with every actor a player owns (owner permission, a world-default owner grant included); on other systems the player-owned actors. Returns a lightweight summary \u2014 name plus,

  • list-scenes

    List scenes in the world with pagination. Returns each scene's name, ID, active status, and navigation visibility. Response includes total count and hasMore flag. Use to find a scene before switching to it with switch-scene.

  • list-tool-bundles
  • list-users

    List all users in the game world. Returns each user's name, ID, role (Gamemaster/Player/Trusted/Assistant/None), and online status; character is omitted when none is assigned, and Assistant and Gamemaster roles both count as GM. Color and the owned-actor list live in get-user. Use to find valid user names before assign-character-ownership / revoke-character-ownership (character-edit bundle) or sen

  • move-token

    Move a token to x,y pixel coordinates on the current scene \u2014 the GM repositioning tool for outside combat: it ignores walls and closed doors (like the GM\u2019s Unconstrained Movement toggle) and does not check movement speed. On gridded scenes the target snaps to the top-left origin of its grid cell; the returned x,y is the committed position and `snappedFrom` echoes your raw input when the

  • next-round

    Advance combat to the next round, resetting to the top of initiative order. Returns the new round number and active combatant. If combat hasn't started yet, this begins the first round instead. Use to skip remaining turns in the current round. Turn-boundary automation (recurring saves, zone damage, effect expiry) is engine-resolved for every crossed turn \u2014 the skipped turns' start/end events

  • pan-canvas

    Pan and zoom the GM canvas camera to a position. Animates smoothly over the specified duration. Use after switch-scene to focus on a specific area, or to draw attention to a location during gameplay.

  • previous-turn

    Go back one combatant's turn within the current round \u2014 the GM correction for an accidental next-turn. Returns the new active combatant. The step back fires no turn automation and rewinds nothing already resolved (to restore state a resolver mutated, use undo-last-workflow, combat-ai bundle); it also lands on combatants Skip Defeated would skip. Refuses to cross a round boundary \u2014 from t

  • pull-players-to-scene

    Pull specific players to a scene WITHOUT activating it: each named player's view switches to that scene while the active scene \u2014 and everyone not named \u2014 stays where they are. Use for split-party play (one group in the tavern, another in the dungeon) or to bring one player to a side scene; use switch-scene instead when the whole table should move. A player without a token on the target s

  • query-aoe-targets

    Find tokens within an area of effect \u2014 use it to plan AoE spell targeting before casting. Returns tokens sorted by distance from origin. Six shapes: 'circle' (default \u2014 a 3D sphere), 'cone' (PHB 1:1 triangular), 'line', 'cube' (square rotated to direction), 'ray' (line geometry; supports the firstHitOnly planning filter), 'cylinder' (circle footprint + vertical band); each shape's requir

  • quick-start-combatwrite action

    Create a combat encounter, add combatants, roll initiative and begin round 1 in one step (dnd5e worlds only \u2014 on other systems use start-combat). The result's `current` is the first combatant: read get-combat-snapshot next, and call next-turn only once that turn is resolved. Omit identifiers to add all visible scene tokens (hidden tokens are skipped \u2014 pass includeHidden:true to include t

  • remove-combatantwrite action

    Remove combatants from the active combat encounter \u2014 ONLY for creatures that genuinely left the fight (fled, banished, surrendered and out of the scene). Use combatant IDs from get-combat. During enforced dnd5e combat, removing a creature that is still in the fight \u2014 live hit points, or a player character that is not dead \u2014 is rejected unless `reason` records why it left: defeat cre

  • rename-character

    Rename an actor and update its prototype token name to match. Returns the previous name and the actor ID. Accepts character name (exact match) or Foundry actor ID.

  • reset-fog

    Reset fog of war exploration for the active scene, hiding all previously revealed areas. This is irreversible \u2014 players will need to re-explore. Rejected when the GM is viewing a different scene than the active one (switch scenes first). Use when resetting a dungeon or starting a new exploration phase. Returns the scene name. This never fixes a player who cannot see the map: that is token vis

  • resolve-ability-check

    Roll a creature's ability check or skill check against a DC, in or out of combat (the creature needs a token on the active scene). No DC named: pick the one you judge fair and say which. The check is rolled from the creature's sheet \u2014 the game system's own roll (proficiency, bonuses, magic items; no dialog) \u2014 so a creature's check goes here, never to roll-dice. … Use for skill checks (Pe

  • resolve-action

    Use the Dash, Dodge, or Disengage action. Dash doubles movement speed for the turn. Dodge: until its next turn starts, attacks against it by attackers it can see have disadvantage and its DEX saves advantage \u2014 not while it is Incapacitated or at Speed 0. Disengage prevents the opportunity attacks your movement would provoke (a Sentinel holder's Guardian attack still lands \u2014 see reactions

  • resolve-attack

    Resolve a creature's attack (NPC or PC) \u2014 a weapon OR statblock feature attack (2024 natural attacks like Rend; spells: resolve-spell). Rolls to hit (condition advantage/disadvantage and auto-crits fold in) vs target AC, rolls damage on hit (a PC crit doubles dice), applies it, posts to chat. Sneak Attack and weapon-mastery riders (Topple, Push, Sap, Slow) auto-apply on eligible hits \u2014 n

  • resolve-death-save

    Resolve a death saving throw for a target at 0 HP. Rolls 1d20 plus saving-throw bonuses (Bless/Bane, Aura of Protection \u2014 2024: death saves ARE saving throws): natural 20 revives with 1 HP, natural 1 counts as two failures, total >= 10 is a success, below 10 is a failure. 3 successes stabilize, 3 failures kill.

  • resolve-feature

    Activate a class feature or feat by name for the acting creature \u2014 Rage, Action Surge, Wild Shape, Lay on Hands, Bardic Inspiration, Channel Divinity, Fiendish Vigor, Second Wind, Wholeness of Body (more as their rules land). Validates the feature exists on the actor and is activation-supported, enforces its action-economy cost (Rage/Wild Shape/Lay on Hands/Bardic Inspiration/Second Wind/Whol

  • resolve-grapple-shove

    Resolve a 2024 grapple or shove (a special melee attack). The target makes a Strength OR Dexterity saving throw (its best) against DC 8 + the attacker's Strength modifier + proficiency bonus; on a failure the grapple applies the Grappled condition, and a shove knocks the target Prone or pushes it 5 ft (pick with mode). On a success nothing happens. Shoving an AIRBORNE target Prone makes it fall (2

  • resolve-legendary-action

    Use a legendary action between other creatures' turns. Validates charges, deducts the cost, and posts the use to chat \u2014 it does NOT roll the action's mechanics: after this call, resolve the actual attack/spell via resolve-attack / resolve-spell with force:true and reason 'legendary action' (it is not the creature's turn). Cannot be used on the creature's own turn. Legendary actions recharge a

  • resolve-movement

    Move a token to a new position on the battlefield during combat. Calculates distance moved in game units (feet), compares against the actor's condition-aware speed (grappled/prone reduce it), requires a wall-respecting path on walled scenes, updates the token position, and reports movement remaining. Use this during combat turns instead of move-token \u2014 it enforces movement rules. Outside comb

  • resolve-multiattack

    Resolve a Multiattack action for an NPC. Parses the Multiattack feature description, identifies component attacks, and resolves each. Returns all attack results plus a damage summary. Each attacks[] row carries 'weapon' \u2014 the name of the attack it rolled with; ABSENT = an older module or server. A component result carrying 'hewGranted: true' means …; ABSENT = no grant or an older server. 'rea

  • resolve-saving-throw

    Force a saving throw on a target, in or out of combat (the creature needs a token on the active scene), against a DC and report success or failure. No DC named: pick the one you judge fair and say which. The save is rolled from the creature's sheet \u2014 the game system's own roll (proficiency, save bonuses, magic items; no dialog) \u2014 so a creature's save goes here, never to roll-dice. … Not

  • resolve-spell

    Cast a spell from a creature. Spends a slot (cantrips free; slotless spells: see upcastLevel), resolves spell attacks or saves per target, rolls and applies damage, handles concentration, posts to chat. Reactions and aftermath are engine-resolved \u2014 never re-roll or re-apply them; per-target aftermath fields are explained on targets. reactionsSkipped = reactions left to a person, decidedBy pla

  • rest-party

    Apply short or long rest to all party members …. Long rest: restores full HP, resets all resources, and restores spell slots. Short rest: allows hit dice recovery and resets short-rest resources. Posts rest results to chat. Returns per-character results with success/failure and post-rest HP. dnd5e worlds only. With the dnd5e 6+ calendar enabled, daily (day / dawn / dusk) item uses recover on the c

  • revoke-character-ownershipwrite action

    Remove a player's access to a character by setting their permission to NONE (an explicit per-user level \u2014 it overrides the world's default permission for that player). Use list-users to find valid user names/IDs. Returns the character and user names.

  • roll-dice

    Roll a dice formula and return the numeric result. Supports standard notation (1d20+5, 2d6+3) and advanced syntax (4d6kh3 keep highest, 2d20kl1 keep lowest). The result's dice array …. Result is posted to Foundry chat by default. … … For attack rolls or spell damage during combat, prefer resolve-attack or resolve-spell (combat-ai bundle) instead.

  • roll-initiative

    Roll initiative for combatants in the active encounter (dnd5e worlds only). Returns rolled values and updated turn order. … rolled: 0 means nothing needed rolling, or (with explicit IDs) that none of the supplied IDs matched a rollable combatant; use combatant IDs from get-combat. Omit combatantIds to roll for every combatant that hasn't rolled yet. For rolling only NPCs (letting players roll thei

  • search-character-items

    Search a character's inventory, spells, and features. Returns a compact list of matching items with IDs, names, and types, …. Rows also carry equipped, quantity, price {value, denomination}, container {id, name}, spell level, prepared where applicable, and hasArt: false when the item still wears a default icon; item images live in get-character-item. Use to find an item before calling get-characte

  • search-compendium

    Search compendium packs for items, creatures, spells, or journal entries by name. Returns matching entries with names, pack keys, and IDs, …. Narrow with type (a document type or an entry subtype) or pack (one collection key); an unknown type is an error that lists the valid ones. JournalEntry packs also match on page titles and content \u2014 those rows carry a matchedPage (page id, name, and a s

  • search-journals

    Search journal entries by title and page content text. Returns matching entries with names, IDs, and text snippets showing where the search term appears, …. A page row carries a snippet only when the match was in its content \u2014 no snippet means the page title matched, and an entry with an empty matchingPages array matched on its own title. Page types live in get-journal; folder names in list-j

  • search-scenes

    Search scenes by name. Returns matching scenes with names, IDs, and active status, …. Use to find a scene when you only know part of the name.

  • set-combatant-defeated

    Set or clear the defeated marker on combatants \u2014 tracker bookkeeping only (strike-through in the tracker; turn advancement skips marked combatants when the tracker\u2019s "Skip Defeated" setting is on). Changes no HP and applies no conditions; NPCs reduced to 0 HP by resolver damage are marked automatically, and player characters are never marked while death saves are pending. Use to correct

  • set-darkness

    Set the scene darkness level (0=bright daylight, 0.5=twilight, 1=pitch black). Returns the new darkness value (plus darknessLock: true when the Darkness Lock stayed on). A scene whose darkness the GM locked (get-current-scene reports darknessLock: true) is refused until you pass overrideLock: true, which sets the level and keeps the lock; on Foundry builds before 14.368 only the GM can unlock it (

  • set-table-npc

    Pin this NPC so Familiar answers AS it when a player writes "@<name> \u2026" in the ordinary Foundry chat, or un-pin it (enabled:false). While the GM's world switch "Familiar answers as any NPC" is on (the default; the result echoes anyNpc:true \u2014 absent = the switch is off, or the Foundry module predates it), every world actor a player does not own already answers to its name, so an un-pinned

  • set-turn

    Jump the combat tracker to a specific combatant's turn within the current round \u2014 a GM correction for turn-order mistakes (wrong active combatant, accidental skip). Returns the new active combatant. The jump is a pure pointer correction: no turn-boundary automation runs in either direction \u2014 skipped combatants' turn effects do not fire and the landed combatant's turn-start automation is

  • set-weather

    Set a weather particle effect on the active scene (rain, fog, snow, etc.). Use get-weather-effects to see valid IDs. Pass an empty string to clear the current weather. Only one weather effect can be active at a time.

  • start-combatwrite action

    Create a new combat encounter and add combatants from the current scene. If no identifiers are provided, all visible tokens on the active scene are added automatically (hidden tokens are skipped to preserve ambush tension \u2014 pass includeHidden:true to override, or use add-combatant mid-combat when hidden creatures reveal). Returns the combat tracker with all added combatants. After starting, u

  • switch-scene

    Switch the active scene by name or ID. All players are pulled to the new scene. Returns the activated scene name and ID (use get-current-scene for full data). Use pan-canvas afterward to focus on a specific area. To move only specific players without activating the scene for everyone, use pull-players-to-scene instead.

  • toggle-condition

    Toggle a status condition on a token (e.g., prone, poisoned, blinded). Adds the condition if absent, removes it if present. Use get-available-conditions first to see valid condition names and which carry ruleBasis (the engine-gated set). Returns the token name and toggled condition. During enforced dnd5e combat, conditions with a rule basis (prone, grappled, frightened, \u2026) are engine-managed

  • toggle-pause

    Pause or unpause the game. Returns the new pause state. Players cannot take actions while the game is paused. Omit the paused parameter to toggle.

  • undo-last-workflow

    Undo one change by workflowId (from list-undoable-workflows), or the newest undoable one when omitted. Two kinds. A DOCUMENT change (id chg_\u2026): the fields the update wrote are restored to their previous values through the same handler that wrote them, so its guards apply \u2014 during an enforced encounter a revert that would LOWER hit points is refused exactly like a fiat decrease, while one

  • update-characterwrite action

    Update character data using Foundry dot-notation paths, e.g. {"system.attributes.hp.value": 25}. Use get-character (with sections) first to see current values; the result keys are the paths. Identity and biography (D&D 5e): system.details.gender (the free-text gender/pronouns field), .age, .alignment, .appearance, .trait, .ideal, .bond, .flaw, .faith, .eyes/.hair/.skin/.height/.weight, .biography.

  • update-character-itemwrite action

    Update an item on a character using dot-notation paths (e.g., {"system.levels": 5, "system.equipped": true}). Use get-character-item first to see current values and valid paths. Accepts character name or actor ID. Returns the item's ID and post-update name. Change only the fields the GM named; on a failure make the smallest correction, never a broader one.

  • update-compendium-entrywrite action

    Update fields on an entry inside an unlocked compendium pack using dot-notation paths (e.g. {"name": "...", "system.details.cr": 5}). System-provided packs are locked and cannot be edited \u2014 this works on world packs and other packs the user unlocked. The folder of an entry inside the pack changes with move-compendium-entries (folders bundle), not here. Use search-compendium to find the pack k

  • update-familiar-settingwrite action

    Change one Familiar setting: the key exactly as get-familiar-settings lists it, and a value of the setting's kind (boolean, number or string; a select takes one of its choices or option ids; a host that sends every value as text may pass 'true', 'false' or '100' \u2014 they are read as the setting's kind). The result echoes what happened: updated (false when that value was already stored), applied

  • update-journalwrite action

    Rename a journal entry. For updating page content, use update-journal-page instead. Moving a journal between folders and changing ownership are not supported through this tool. Change only the fields the GM named; on a failure make the smallest correction, never a broader one.

  • update-journal-pagewrite action

    Replace the content of an existing journal page. Accepts HTML or plain text. Use get-journal first to read the current content before overwriting. Change only the fields the GM named; on a failure make the smallest correction, never a broader one.

  • update-scenewrite action

    Update scene properties using Foundry dot-notation paths. Supports name, grid, dimensions, background image, navigation visibility, tokenVision, environment.globalLight.enabled (true lights everything in line of sight for players \u2014 the fix when a player with a sighted token sees a black map; when the vision block says globalLight is "outside-darkness-range", change environment.darknessLevel i

  • update-tokenwrite action

    Update token visual properties on the current scene. Supports hidden, lock, elevation, size, rotation, and disposition. Elevation changes are REJECTED during active D&D 5e combat while combat rule enforcement is on (the default) \u2014 elevation is part of the 3D combat model (range, reach, opportunity attacks, auras, AoE), so setting it directly would be flying by fiat; the GM can adjust it on th

  • update-tokenswrite action

    Batch update properties on multiple tokens at once. Supports hidden, lock, elevation, size, rotation, and disposition. Elevation changes are REJECTED during active combat while rule enforcement is on (see update-token). Returns per-token results, plus a `_hint` naming the tokens whose write the game system\u2019s own token automation acts on (the size sync and falling cases described on update-tok

Public scan report

scanner v0.1.10 · 2026-10-29 · same rubric, same numbers if you re-run it

1 medium
  • Code scan2 source files scanned20/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitylocal package, no credentials required12/15
  • Maintenancelast push 24 days ago15/15
  • Maintainer identitynamespace and repository owner differ; GitHub account older than a year; website matches verified namespace7/10

Findings (1)

  • mediumeval / new Function usedexec.eval
    dist/mcp-package/index.mjs: …&&(d=this.opts.code.process(d,e));let h=new Function(`${ti.default.self}`,`${ti.default.scope…
Overall 83/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How Familiar compares

Against every graded Media MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
83/100
higher than 70% of 1,336 Media servers
Tools
100
the typical Media server has 6
Tools that change things
26%
typical: 3%. Fewer write tools means less an agent can break
GitHub stars
1
more than 55% of 716 Media servers
Downloads a week
325
more than 83% of 372 Media servers with a package

What its tools let an agent do: 58 read · 9 create · 22 change · 8 delete · 3 run or deploy

Release history: 2 versions in the registry since 2026-08-31, latest 2026-10-05, typically one every 35 days.

Install Familiar in Claude Code, Cursor or VS Code

Runs npx -y familiar-vtt on your machine. Read the scan report first; the gateway never runs local packages.

claude mcp add familiar -- npx -y familiar-vtt
Add to Cursor

What the publisher says

From the Familiar repository's README, as published. We do not edit it. Read it on GitHub

<!-- Rendered from familiar's docs/releases-readme.template.md at release time. Counts, provider lists and prices are filled from the shipped README.md. Edit the template in the source repo, not this file: the next release overwrites it. Static facts to keep in step by hand when they change: the MCP client list (README.md clients table) and the Foundry version line (module.json compatibility). -->

Familiar AI Co-Pilot for Foundry VTT

Familiar is an AI-powered co-pilot module for Foundry VTT. It provides 220 tools across 25 domains, giving your AI assistant direct access to your game world, characters, combat, scenes, journals, audio, and more. It runs a published adventure you have imported; it does not invent the story.

Quick Install

In Foundry VTT, go to Add-on Modules > Install Module > paste the manifest URL:

https://github.com/Ryanjansen92/familiar-releases/releases/latest/download/module.json

Click Install, then enable the module in your game world under Manage Modules.

Features

Combat Automation (D&D 5e)

  • Resolve attacks, damage, saving throws, and spell effects with full rules enforcement
  • Class features fire as written: Rage, Action Surge, an Extra Attack budget, all ten Metamagic options, the eldritch invocations, and the SRD subclass features
  • Track initiative, conditions, legendary actions, death saves, and concentration
  • Movement validation with speed enforcement and opportunity attack detection
  • Enforcement is a world setting and can be switched off for tables that rule their own way

AI Voices and Sound for NPCs

  • Text-to-speech for any NPC through any of the voice providers listed below, including your own OpenAI-compatible TTS server
  • Assign persistent voices to characters, or let Familiar cast one from the provider's catalogue, so the AI speaks in character during play
  • Short sound effects from your own playlists first, generated only when nothing matches; ambience moods switch across your playlists as the scene changes
  • Voice and sound play for the whole table by default, each spoken line marked AI Voice in the chat. Familiar settings, Voice tab, turns either off

Battle Map Generation

  • Generate battle maps and scene backgrounds using AI image providers
  • Maps are requested at your scene grid's aspect ratio, so they land on the squares
  • Turn a generated map into a scene in one click, then have the AI wall and light it
  • Create and manage scenes, tokens, lighting, walls, and tiles programmatically

Live Session Transcription

  • Real-time speech-to-text transcription of your game session
  • Automatic session summaries and journal note creation

Image Generation

  • Generate character portraits, token art, item icons, and handouts on demand, applied straight to the actor or item
  • Every generated image files itself into a searchable in-world Art Library you can browse, search, and drag onto the canvas
  • Edit any image you already made from the image itself, or point at the part that should change (OpenAI, fal.ai, OpenRouter)
  • Providers: OpenAI (GPT Image), fal.ai, Leonardo AI, OpenRouter, NanoGPT

World Management

  • Create, read, update, and search actors, items, journals, playlists, macros, and more
  • Bulk operations with batch support across all domains
  • Canvas control: drawings, measured templates, weather, lighting, fog of war

Flexible AI Access

  • Built-in chat window inside Foundry VTT with streaming responses
  • MCP server for use with external AI clients (Claude Desktop, Claude Code, Codex CLI, the ChatGPT desktop app's Codex tab, Antigravity CLI and Editor, Grok Build CLI)
  • Table Chat: on by default. Players talk to Familiar or to any NPC from the ordinary Foundry chat, under your approval mode, and Familiar posts a one-line how-to when the world loads. Name one player as the Solo Player and Familiar runs the table as their GM
  • Works with 30 AI providers, from cloud APIs to a local model running on your own machine

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Familiar: common questions

Is Familiar MCP server safe?
Mostly: it is graded B (83/100). Read the Familiar safety report
How do I install Familiar?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does Familiar need an API key?
Not as far as the registry entry and our scan can tell: no credentials are declared or required.
Is Familiar maintained?
The last commit was 31 days ago (2026-10-05). The latest release is v2.26.0.
What can I use instead of Familiar?
Servers from other publishers that do the same job: Fish MCP server, ElevenLabs MCP server and FunASR MCP server.
How does Familiar compare with other Media MCP servers?
safety score 83/100 (higher than 70% of 1,336 Media servers); tools 100 (the typical Media server has 6); tools that change things 26% (typical: 3%. Fewer write tools means less an agent can break). Full comparison.

Alternatives to Familiar

Same job from other publishers: the closest match first, then the best rated.

  • Fish
    MCP server exposing the AceDataCloud Fish Audio API (text-to-speech with voice conditioning)
    A
  • ElevenLabs
    ElevenLabs MCP server: TTS, music, sound effects, voices, and audio transcription
    A
  • FunASR
    Transcribe local audio with FunASR and SenseVoice using private, on-device inference.
    A
  • FFmpeg
    Trim, convert, resize, compress, and remix audio and video.
    A
  • Audio
    Edit, analyze and convert audio: loudness, spec checks, denoise, EQ, cuts, BPM, key. No ffmpeg.
    A