The Eden MCP connector routes your AI agent's tool calls to Eden's own MCP server through Scalekit. Each user signs in to Eden once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 84 tools.
- Tools
- 84
- What they doRead · write · destructive
- 47 · 34 · 347 read34 write3 destructive
- Users sign in with
- OAuth
- OAuth app
- Scalekit's or your own
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the Eden MCP connection
In AgentKit > Connections, create an Eden MCP connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Scalekit credentials are available for Eden MCP server, so you don't need to register an OAuth app.
Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'edenmcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Eden MCP:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'edenmcp_eden_analyze_list',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "edenmcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Eden MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="edenmcp_eden_analyze_list",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user signs in once. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_tooledenmcp_eden_analyze_creatorAnalyze a specific creator's content by name, handle, or URL: identity, totals, topic/format breakdowns, and a curated set of best posts (real outliers padded with recent posts).Read-onlyAnalyze Creator
Analyze a specific creator's content by name, handle, or URL: identity, totals, topic/format breakdowns, and a curated set of best posts (real outliers padded with recent posts). Use eden_resolve_creator first when unsure which creator is meant, or pass a pre-resolved creatorRef to skip that hop. For the user's own account performance, prefer eden_get_analytics / eden_list_analytics_posts instead.
Inputs
querystringrequired- Free-text identifier (handle, name, URL). Required even when creatorRef is set, for fallback messaging.
creatorRefobject- Pre-resolved (platform, username), skipping the resolver hop. Use after eden_resolve_creator when you've picked a specific candidate. Shape: {"platform": "twitter", "username": "thedankoe"}.
focusstring- Free-text hint about what the user is trying to understand (e.g. "hook structure", "topic mix"). Echoed back so the assistant can frame its analysis around it.
platformstring- Constrain to one platform. Omit to consider all.one of
twitterlinkedininstagramtiktokyoutubesubstackthreads refreshboolean- Set true only when the user explicitly asks to update/check the creator's latest posts. Runs an on-demand upstream pass and waits briefly before analyzing.
sincestring- Time window for breakdown + top-posts query. Defaults to lifetime.one of
weekmonthquarteryeartwo_yearsall topPostLimitinteger- How many top posts to surface. Defaults to 8.
workspaceIdstring- Workspace id from eden_list_workspaces. Required for accurate billing + the daily new-creator cap when this call triggers a fresh pull of a creator nobody on Eden has searched before.
edenmcp_eden_analyze_listFetch a curated creator list's metadata plus its creator roster (sorted by follower count), for summarizing a cohort or picking a creator to deep-dive on.Read-onlyAnalyze List
Fetch a curated creator list's metadata plus its creator roster (sorted by follower count), for summarizing a cohort or picking a creator to deep-dive on. Omit both query and listRef to instead get a roster-of-lists mode: every social list in the workspace with id, name, slug, kind, description, and member count.
Inputs
listRefobject- Pre-resolved list reference, skipping the fuzzy match pass. Shape: {"listId": "<id>"}.
memberLimitinteger- How many members to return. Defaults to 40 when omitted.
querystring- List name, slug, or partial match. Omit along with listRef to get the roster-of-lists mode instead of a single-list analysis.
workspaceIdstring- ID of the workspace context for the analysis. Uses the default workspace if omitted.
edenmcp_eden_find_creator_in_workspaceFind saved posts and content by a specific creator in an Eden workspace, identified by their handle.Read-onlyFind Creator in Workspace
Find saved posts and content by a specific creator in an Eden workspace, identified by their handle.
Inputs
creatorHandlestringrequired- The handle or username of the creator whose content you want to find.
workspaceIdstringrequired- The unique identifier of the workspace to search within.
edenmcp_eden_find_workspace_itemsSemantic search over the user's Eden library -- describe what you're looking for in natural language and get their saved notes, documents, posts, links, and files ranked by MEANING, not just title match.Read-onlyFind Workspace Items (Semantic)
Semantic search over the user's Eden library -- describe what you're looking for in natural language and get their saved notes, documents, posts, links, and files ranked by MEANING, not just title match. Full note bodies, media transcripts, and AI-generated tags/keywords are all searchable, so a vague description like 'that note about pricing psychology' can still match. Use when the user describes content rather than names it exactly (e.g. 'find that note about X', 'where did I save the video on Y'). Costs 1 credit per call and requires a semantic-search-enabled workspace; falls back to eden_search_workspace_items on a 503.
Inputs
querystringrequired- Natural-language description of what to find.
categorystring- Restrict results to items carrying one AI-assigned category.
kindstring- Restrict results to one item kind.one of
documentscardsstackspdfsimagesvideosaudiolinkssocial limitinteger- Max hits to return. Defaults to 10 when omitted.
sourcestring- Restrict social items to one platform.one of
youtubetwitterinstagramtiktoklinkedinthreadssubstack tagsarray- Restrict results to items carrying any of these AI-assigned tags.
workspaceIdstring- Workspace id. Uses the configured default workspace when omitted.
edenmcp_eden_following_overviewList every creator the user follows in this workspace, deduplicated across all of their lists, with follower counts, profile info, the lists each creator appears in, and a creatorRef for follow-up eden_analyze_creator calls.Read-onlyFollowing Overview
List every creator the user follows in this workspace, deduplicated across all of their lists, with follower counts, profile info, the lists each creator appears in, and a creatorRef for follow-up eden_analyze_creator calls. Optionally filter by platform.
Inputs
limitinteger- Max creators to return. Defaults to 100, maximum 500.
platformstring- Filter the following overview to a specific platform. Omit to return the full cross-platform roster.one of
twitterlinkedininstagramtiktokyoutubesubstackthreads workspaceIdstring- ID of the workspace context. Uses the default workspace if omitted.
edenmcp_eden_get_analyticsThe user's OWN social analytics across every connected platform (X, LinkedIn, Instagram, TikTok, YouTube, Threads, Facebook, Substack): period totals with vs-previous-period deltas, follower counts per account, current outlier posts, over-performing topics and formats, and benchmarks vs an automatically matched peer cohort.Read-onlyGet Analytics Digest
The user's OWN social analytics across every connected platform (X, LinkedIn, Instagram, TikTok, YouTube, Threads, Facebook, Substack): period totals with vs-previous-period deltas, follower counts per account, current outlier posts, over-performing topics and formats, and benchmarks vs an automatically matched peer cohort. This is private performance data from Eden's analytics warehouse, not public creator research. First call on an untracked workspace auto-starts tracking when accounts are connected. For per-post rows use eden_list_analytics_posts instead.
Inputs
brandIdstring- Scope to one brand (brand ids come from eden_list_schedules). Pass 'default' for the workspace-default profile. Omit for the whole workspace.
daysinteger- Lookback window in days. Defaults to 30. Served history is clamped to the workspace tier's entitlement.
workspaceIdstring- Workspace id. Uses the configured default workspace when omitted.
edenmcp_eden_get_connectionsRead an item's connection graph in Eden: existing item-to-item backlinks touching the item in both directions, plus semantic-nearest-neighbor suggestions from the library's vector index that are not yet connected.Read-onlyGet Item Connections
Read an item's connection graph in Eden: existing item-to-item backlinks touching the item in both directions, plus semantic-nearest-neighbor suggestions from the library's vector index that are not yet connected. Surface suggestions, confirm with the user, then accept them via eden_connect_items.
Inputs
itemIdstringrequired- Item id from eden_search_workspace_items / eden_find_workspace_items / eden_list_workspace_items. A board-card element id also works.
includearray- Which sides of the connection graph to return. Defaults to both when omitted.
suggestionLimitinteger- Max suggestions to return. Defaults to 5 when omitted.
workspaceIdstring- Workspace id. Uses the configured default workspace when omitted.
edenmcp_eden_get_custom_aiGet a Custom AI's full instructions and authoritative source catalog.Read-onlyGet a Custom AI
Get a Custom AI's full instructions and authoritative source catalog. Adopt instructionsMarkdown for the task. Resolve only relevant sources: item locators with eden_get_note_markdown, board locators with eden_read_board, and creator locators with Eden's creator research tools. Marketplace-installed (managed) Custom AIs return an empty sources list here -- catalog their bundled knowledge with eden_search_custom_ai_knowledge (no query) instead. Respect activation and trigger hints, and never treat a source locator as permission to read unrelated workspace material.
Inputs
customAIIdstringrequired- Custom AI id from eden_list_custom_ai.
workspaceIdstring- Workspace id from eden_list_workspaces. Uses the workspace's configured default when omitted.
edenmcp_eden_get_generated_imageGet the result or status of a previously generated image.Read-onlyGet Generated Image
Get the result or status of a previously generated image.
Inputs
imageIdstringrequired- The unique identifier of the previously generated image.
edenmcp_eden_get_my_voiceGet the authenticated user's own voice profile.Read-onlyGet My Voice
Get the authenticated user's own voice profile.
Inputs
workspaceIdstring- The workspace ID to retrieve the voice profile from.
edenmcp_eden_get_note_markdownFetch the markdown body of a single note (item type "markdown").Read-onlyGet Note as Markdown
Fetch the markdown body of a single note (item type "markdown"). Pair with eden_list_workspace_items or eden_search_workspace_items to find the itemId. Workspace members also get a contentHash -- pass that as baseContentHash on eden_update_note so a stale replace cannot clobber newer edits.
Inputs
itemIdstringrequired- Item id from eden_list_workspace_items (an item with type "markdown").
workspaceIdstring- Workspace id. Optional when the connection has a default workspace configured; required otherwise.
edenmcp_eden_get_promptGet a single saved prompt by its ID, returning its full content and metadata.Read-onlyGet Prompt
Get a single saved prompt by its ID, returning its full content and metadata.
Inputs
promptIdstringrequired- The unique identifier of the prompt to retrieve.
edenmcp_eden_get_skillGet a single AI skill by its ID, returning its full definition and metadata.Read-onlyGet Skill
Get a single AI skill by its ID, returning its full definition and metadata.
Inputs
skillIdstringrequired- The unique identifier of the skill to retrieve.
edenmcp_eden_get_voiceGet a specific voice profile by ID.Read-onlyGet Voice
Get a specific voice profile by ID.
Inputs
voiceIdstringrequired- The unique identifier of the voice profile to retrieve.
edenmcp_eden_list_analytics_postsPer-post rows from the user's OWN analytics warehouse -- the raw material for charts, dashboards, and 'which posts did X' questions.Read-onlyList Analytics Posts
Per-post rows from the user's OWN analytics warehouse -- the raw material for charts, dashboards, and 'which posts did X' questions. Each row carries platform, posted date, link, text preview, metrics Eden has synced (views/likes/comments/shares/saves/impressions/reach/watch time/engagement rate), and index-derived signals (outlierScore, creatorPercentile). Sort by any metric to get top posts. For the summary/insight layer use eden_get_analytics instead.
Inputs
brandIdstring- Scope to one brand ('default' = workspace-default profile; omit for all brands).
contentTypestring- Filter to one content type (e.g. 'reel', 'short', 'article', 'note').
daysinteger- Lookback window in days. Defaults to the tier's full entitled history, which also clamps larger values.
limitinteger- Max rows to return. Defaults to 50 when omitted.
platformstring- Filter to one platform.one of
twitterthreadslinkedinsubstackinstagramtiktokfacebookyoutube sortstring- Sort column, descending. Defaults to postedAt.one of
postedAtviewslikescommentssharessavesengagementRate workspaceIdstring- Workspace id. Uses the configured default workspace when omitted.
edenmcp_eden_list_auto_dm_rulesList the workspace's Instagram Auto-DM automations: trigger, keywords, DM message, tracked link, status (active / paused / paused for credits / waiting for next post), click counts, and which posts an automation is armed on.Read-onlyList Auto-DM Automations
List the workspace's Instagram Auto-DM automations: trigger, keywords, DM message, tracked link, status (active / paused / paused for credits / waiting for next post), click counts, and which posts an automation is armed on. Use before creating a new one (workspaces cap at 10 automations) or when the user asks what's running. Auto-DM is a Pro/Studio feature; each DM actually sent costs 1 credit.
Inputs
brandIdstring- Brand id to scope to one brand's Instagram (Studio). Pass "default" for the workspace default brand. Omit to list every automation.
workspaceIdstring- Workspace id. Uses the configured default workspace when omitted.
edenmcp_eden_list_brief_definitionsList brief template definitions.Read-onlyList Brief Definitions
List brief template definitions.
Inputs
workspaceIdstring- The workspace ID to filter brief definitions by. If omitted, uses the default workspace.
edenmcp_eden_list_briefsList content briefs in a workspace.Read-onlyList Briefs
List content briefs in a workspace.
Inputs
cursorstring- Pagination cursor returned from a previous list response.
limitinteger- Maximum number of briefs to return per page.
workspaceIdstring- The ID of the workspace whose briefs to list.
edenmcp_eden_list_capturesList saved captures (bookmarks/swipes) in a workspace.Read-onlyList Captures
List saved captures (bookmarks/swipes) in a workspace.
Inputs
cursorstring- Pagination cursor from a previous response to fetch the next page of results.
limitinteger- Maximum number of captures to return per page.
workspaceIdstring- ID of the workspace to list captures from. Uses the default workspace if omitted.
edenmcp_eden_list_chatsList the user's chats inside an Eden workspace.Read-onlyList Chats
List the user's chats inside an Eden workspace. Returns each chat's id, title, status, and updatedAt. Read-only -- this tool does not start a chat or send a message.
Inputs
workspaceIdstring- Workspace id from eden_list_workspaces. Uses the configured default workspace when omitted.
edenmcp_eden_list_creator_listsList creator lists (curated groups of creators) in a workspace.Read-onlyList Creator Lists
List creator lists (curated groups of creators) in a workspace.
Inputs
workspaceIdstringrequired- ID of the workspace to list creator lists from.
edenmcp_eden_list_custom_aiList the Custom AI (Eden's rebranded Skills feature) available in an Eden workspace.Read-onlyList Custom AI
List the Custom AI (Eden's rebranded Skills feature) available in an Eden workspace. A Custom AI combines durable instructions, conversation starters, capabilities, creator perspectives, and permission-checked workspace knowledge. Use eden_get_custom_ai to load the full definition before applying one.
Inputs
workspaceIdstring- Workspace id from eden_list_workspaces. Uses the workspace's configured default when omitted.
edenmcp_eden_list_highlightsList saved highlights in Eden, optionally scoped to a specific workspace.Read-onlyList Highlights
List saved highlights in Eden, optionally scoped to a specific workspace. Supports pagination.
Inputs
cursorstring- Pagination cursor from a previous response to fetch the next page of results.
limitinteger- Maximum number of highlights to return per page.
workspaceIdstring- The unique identifier of the workspace to filter highlights by. If omitted, returns highlights across all workspaces.
edenmcp_eden_list_promptsList saved prompts in the workspace, with optional pagination support.Read-onlyList Prompts
List saved prompts in the workspace, with optional pagination support.
Inputs
cursorstring- Pagination cursor from a previous response to fetch the next page of prompts.
limitinteger- Maximum number of prompts to return per page.
workspaceIdstring- The workspace ID to list prompts from. Uses the default workspace if omitted.
edenmcp_eden_list_scheduled_postsList scheduled-post rows for the workspace or one schedule: drafts, scheduled, publishing, posted, partial, failed, or cancelled.Read-onlyList Scheduled Posts
List scheduled-post rows for the workspace or one schedule: drafts, scheduled, publishing, posted, partial, failed, or cancelled. Use this to inspect the queue, confirm what was just scheduled, or find a post id for a later edit/cancel call.
Inputs
limitinteger- Maximum number of scheduled posts to return per page. Defaults to 25 when omitted.
modestring- Use compact when browsing recent posts for repurposing; full returns content and targets.one of
compactfull postIdstring- Optional scheduled post id. Use with mode=full to inspect one post.
scheduleIdstring- Filter posts by a specific schedule ID.
statusstring- Optional status filter.one of
draftscheduledpublishingpostedpartialfailedcancelled workspaceIdstring- The workspace ID to list scheduled posts for. If omitted, uses the default workspace.
edenmcp_eden_list_schedulesList publishing schedules for a workspace.Read-onlyList Schedules
List publishing schedules for a workspace.
Inputs
workspaceIdstring- The workspace ID to list schedules for. If omitted, uses the default workspace.
edenmcp_eden_list_skillsList AI skills (reusable prompt workflows) available in the workspace.Read-onlyList Skills
List AI skills (reusable prompt workflows) available in the workspace.
Inputs
workspaceIdstring- The workspace ID to list skills from. Uses the default workspace if omitted.
edenmcp_eden_list_voicesList available voice profiles for AI content generation.Read-onlyList Voices
List available voice profiles for AI content generation.
Inputs
workspaceIdstring- The workspace ID to list voice profiles for.
edenmcp_eden_list_workspace_itemsList the items the user has personally saved into a workspace's canvas (boards, notes, links, media, stacks), as a paginated flat list.Read-onlyList Workspace Items
List the items the user has personally saved into a workspace's canvas (boards, notes, links, media, stacks), as a paginated flat list. Use parentId to find a board's children, and type to filter by item kind. Returns at most 'limit' items (default 200, max 500); check nextCursor for more pages.
Inputs
cursorstring- Opaque pagination cursor. Pass the previous response's nextCursor to fetch the next page.
limitinteger- Max items per page. Defaults to 200. Server caps at 500 -- never request more, the response will be silently truncated.
parentIdstring- Restrict to items whose parent is this board id. Pass the workspace id to list workspace-root children only.
typestring- Optional type filter (e.g. markdown, canvas, twitter, youtube, image). Server-side, so it doesn't burn prompt tokens.
workspaceIdstring- Workspace id from eden_list_workspaces. Uses the configured default workspace when omitted.
edenmcp_eden_list_workspacesList all Eden workspaces the authenticated user belongs to.Read-onlyList Eden Workspaces
List all Eden workspaces the authenticated user belongs to. Returns workspace id, name, slug, and role for each workspace.
Inputs
This tool takes no inputs.
edenmcp_eden_read_boardRead the full whiteboard contents of an Eden board: every sticky note, free-text label, shape-with-text, sub-folder label, and child item positioned on the canvas, plus section dividers.Read-onlyRead Board
Read the full whiteboard contents of an Eden board: every sticky note, free-text label, shape-with-text, sub-folder label, and child item positioned on the canvas, plus section dividers. Find the board's itemId with eden_list_workspace_items or eden_search_workspace_items (items with type "canvas" or "folder").
Inputs
itemIdstringrequired- Board id from eden_list_workspace_items (type "canvas" or "folder"). Pass the workspace id itself to read the workspace root.
workspaceIdstring- Workspace id. Uses the configured default workspace when omitted.
edenmcp_eden_read_briefRead a content brief by ID.Read-onlyRead Brief
Read a content brief by ID.
Inputs
briefIdstringrequired- The unique identifier of the content brief to retrieve.
edenmcp_eden_read_brief_ideaRead a specific idea within a content brief.Read-onlyRead Brief Idea
Read a specific idea within a content brief.
Inputs
briefIdstringrequired- The unique identifier of the content brief containing the idea.
ideaIdstringrequired- The unique identifier of the idea to retrieve.
edenmcp_eden_read_cardDeprecated stub.Read-onlyMoved to eden_read_social_post
Deprecated stub. This tool moved to eden_read_social_post -- pass the card's url to eden_read_social_post (same includeTranscript / attemptLiveFetch options). Do not call this stub; it takes no parameters and performs no action.
Inputs
This tool takes no inputs.
edenmcp_eden_read_custom_ai_knowledgeRead one bundled knowledge document of a marketplace-installed (managed) Custom AI, by sourceId from eden_search_custom_ai_knowledge's catalog mode.Read-onlyRead Custom AI Knowledge
Read one bundled knowledge document of a marketplace-installed (managed) Custom AI, by sourceId from eden_search_custom_ai_knowledge's catalog mode. Content is paged: pass offset (from the previous response's nextOffset) to continue a long document. To find WHERE something is discussed in a long document, use eden_search_custom_ai_knowledge first and read from the matching offset instead of paging blindly. Documents marked readable: false are publisher-protected (runtime-only) and always return a forbidden error -- do not retry them, tell the user the publisher restricted that document.
Inputs
customAIIdstringrequired- Custom AI id from eden_list_custom_ai.
sourceIdstringrequired- Knowledge sourceId from eden_search_custom_ai_knowledge's catalog mode.
maxCharsinteger- Max characters to return per call. Defaults to 24000 when omitted.
offsetinteger- Character offset to start reading from. Use the previous response's nextOffset to continue a long document.
workspaceIdstring- Workspace id from eden_list_workspaces. Uses the workspace's configured default when omitted.
edenmcp_eden_read_media_cardRead the processed content of a media or link card on a board: transcript and AI description for video/audio/loom/YouTube items, extracted text for PDFs, AI description for images.Read-onlyRead Media Card
Read the processed content of a media or link card on a board: transcript and AI description for video/audio/loom/YouTube items, extracted text for PDFs, AI description for images. Find the item with eden_list_workspace_items first (type image/video/audio/pdf/loom/youtube/link).
Inputs
itemIdstringrequired- Item id from eden_list_workspace_items.
workspaceIdstring- Workspace id. Uses the configured default workspace when omitted.
edenmcp_eden_read_tableRead a TABLE item (Eden's list / database item, called 'tables' in the UI): its column schema plus every row with that row's cell values.Read-onlyRead Table Rows
Read a TABLE item (Eden's list / database item, called 'tables' in the UI): its column schema plus every row with that row's cell values. Use this for questions about structured rows and columns, e.g. 'what's in my content calendar' or 'which rows are still not started'. Cell values are keyed by property id, not column name -- join through the returned 'properties' array.
Inputs
itemIdstringrequired- Table item id from eden_list_workspace_items (type === "table").
workspaceIdstring- Workspace id. Uses the configured default workspace when omitted.
edenmcp_eden_resolve_creatorResolve a free-text creator query (handle, display name, or profile URL) to one or more candidate social profiles.Read-onlyResolve Creator
Resolve a free-text creator query (handle, display name, or profile URL) to one or more candidate social profiles. Use when unsure which creator the user means and you want to disambiguate before running an expensive analysis. Results include platform and username for use with eden_analyze_creator or eden_search_social_content.
Inputs
querystringrequired- Handle, display name, profile URL, or any free text. Examples: @thedankoe, Dan Koe, https://x.com/thedankoe.
limitinteger- Max candidates to return. Defaults to 5 when omitted.
platformstring- Constrain to one platform. Omit to search all seven.one of
twitterlinkedininstagramtiktokyoutubesubstackthreads
edenmcp_eden_search_capturesThe user's quick captures -- notes, links, and media/voice-note clippings saved from the Eden mobile app or share sheet.Read-onlySearch Captures
The user's quick captures -- notes, links, and media/voice-note clippings saved from the Eden mobile app or share sheet. Pass q to keyword-search capture text, link titles/URLs, and media filenames; omit q to list recent captures instead, optionally filtered by status and paginated with offset. Audio/voice notes are metadata only -- no transcript.
Inputs
limitinteger- Max results. Defaults to 10 when searching, 20 when listing (search caps at 50, listing caps at 200).
offsetinteger- List mode only: pagination offset. Defaults to 0.
qstring- Keyword(s) to match against capture text, link title/URL, and media filename. Omit to list recent captures instead of searching.
statusstring- List mode only: "active" = not yet filed anywhere (default). "sent" = already promoted to a board. "archived". "all" = every status.one of
activearchivedsentall workspaceIdstring- ID of the workspace to search captures in. Uses the default workspace if omitted.
edenmcp_eden_search_creatorsDiscover PEOPLE rather than posts from Eden's pooled creator embeddings.Read-onlySearch Creators
Discover PEOPLE rather than posts from Eden's pooled creator embeddings. Use kind="topic" for 'find competitors in this niche' / 'who talks about X' (requires query); kind="similar-to-creators" for 'creators like @name' (requires creatorRefs, exact platform+username pairs); or kind="similar-to-list" for more creators like one curated list (requires listId). Results include profile data plus a reason or matching-post evidence. Use eden_resolve_creator to identify a person already named, eden_analyze_creator to study one creator, and eden_search_social_content when the requested result is posts rather than people.
Inputs
kindstringrequired- Search mode. "topic" requires query; "similar-to-creators" requires creatorRefs; "similar-to-list" requires listId.one of
topicsimilar-to-creatorssimilar-to-list creatorRefsarray- Required when kind is "similar-to-creators". Exact platform and username seeds from eden_resolve_creator; never guess handles.
limitinteger- Max results to return. Defaults to 10 when omitted, maximum 25.
listIdstring- Required when kind is "similar-to-list". Exact curated list id.
maxFollowerCountinteger- Maximum follower count for result creators.
minFollowerCountinteger- Minimum follower count for result creators.
platformsarray- Platforms the result creators may come from. Omit for all platforms.
querystring- Required when kind is "topic". The niche, audience, or subject to match.
workspaceIdstring- Workspace id. Omit when the MCP connection has a default workspace.
edenmcp_eden_search_custom_ai_knowledgeSearch the bundled knowledge of a marketplace-installed (managed) Custom AI -- managed installs keep knowledge in a server-side bundle, so eden_get_custom_ai returns an empty sources list for them.Read-onlySearch Custom AI Knowledge
Search the bundled knowledge of a marketplace-installed (managed) Custom AI -- managed installs keep knowledge in a server-side bundle, so eden_get_custom_ai returns an empty sources list for them. Two modes: omit query to CATALOG the documents (sourceId, label, kind, size, previewText, readable); pass query to keyword-search inside them, returning snippets with char offsets to follow up with eden_read_custom_ai_knowledge. Case-insensitive; tries the whole query as a phrase first, then falls back to individual terms. Publisher-protected (runtime-only) documents are never searched or readable. Returns a 409 conflict for workspace-built Custom AIs; those list their sources in eden_get_custom_ai.
Inputs
customAIIdstringrequired- Custom AI id from eden_list_custom_ai.
maxMatchesPerDocinteger- Max matches returned per document. Defaults to 4 when omitted.
querystring- Keyword or phrase to search for inside the documents. Omit to catalog the documents instead of searching.
workspaceIdstring- Workspace id from eden_list_workspaces. Uses the workspace's configured default when omitted.
edenmcp_eden_search_highlightsThe user's highlights -- their personal swipe file of quotes saved from books, articles, podcasts, and tweets.Read-onlySearch Highlights
The user's highlights -- their personal swipe file of quotes saved from books, articles, podcasts, and tweets. Pass q to keyword-search highlight text, notes, and book title/author; omit q to list recent highlights instead, optionally scoped with source and ordered by orderBy. Empty if no highlight source is connected or nothing matches.
Inputs
limitinteger- Max results. Defaults to 10 when searching, 20 when listing (search caps at 50, listing caps at 200).
offsetinteger- List mode only: pagination offset. Defaults to 0.
orderBystring- List mode only: "recent" = most recently synced (default), "highlighted" = by the date the user highlighted it in the source.one of
recenthighlighted qstring- Keyword(s) to match against highlight text, notes, and book title/author. Omit to list recent highlights instead of searching.
sourcestring- Restrict to one source: substring-matched (case-insensitive) against book/article title and author.
workspaceIdstring- Workspace id from eden_list_workspaces, used to resolve each highlight's Library itemId. Uses the default workspace if omitted.
edenmcp_eden_search_workspace_itemsText-substring search across the user's Eden workspace items (notes, cards, boards, media, links), matching case-insensitive against the item's title and its URL when present.Read-onlySearch Workspace Items
Text-substring search across the user's Eden workspace items (notes, cards, boards, media, links), matching case-insensitive against the item's title and its URL when present. Substring match only, no semantic search; note bodies are not searched (only titles + URLs). For semantic search use eden_find_workspace_items instead.
Inputs
cursorstring- Opaque pagination cursor from the previous response's nextCursor. Omit on first call.
limitinteger- Max results per page. Defaults to 25, max 100.
parentIdstring- Restrict to items whose parent board has this id.
qstring- Free-text query. Case-insensitive substring match against title + URL. Omit to return everything that matches the type / parentId filters.
typestring- Restrict to one item type (e.g. markdown, canvas, twitter, youtube, image).
workspaceIdstring- Workspace id. Uses the configured default workspace when omitted.
edenmcp_eden_study_top_carouselsResearch top-performing Instagram carousel posts and return a slide-by-slide teardown (structure, hook, per-slide text, design patterns) as reusable pattern notes.Read-onlyStudy Top Carousels
Research top-performing Instagram carousel posts and return a slide-by-slide teardown (structure, hook, per-slide text, design patterns) as reusable pattern notes. Study one creator's carousels (pass creator) OR a niche across creators (pass niche) -- pass one or the other, not both. This does NOT generate carousel media.
Inputs
creatorstring- Creator handle/name/profile URL to study. Omit to study a niche instead.
limitinteger- How many carousel posts to study. Defaults to 8.
minOutlierScorenumber- Optional minimum outlier score.
nichestring- Topic/niche to study across creators when no creator is given.
scopestring- Use "following" to restrict niche search to creators the user follows.one of
globalfollowing workspaceIdstring- Workspace id from eden_list_workspaces. Uses the configured default workspace when omitted.
edenmcp_eden_wait_for_creator_indexWait for a creator's content index to be ready before querying.Read-onlyWait For Creator Index
Wait for a creator's content index to be ready before querying. Use this before calling analyze_creator or similar tools to ensure the index has been populated.
Inputs
creatorIdstringrequired- The canonical creator ID whose index readiness to await.
edenmcp_eden_add_table_rowsAppend rows to an existing Eden table.WriteAdd Table Rows
Append rows to an existing Eden table. Read the table first with eden_read_table to learn its exact column names and select options -- cells are keyed by column NAME, option values by name (unknown select options are created automatically). Anything that can't resolve comes back in a 'warnings' field -- fix and retry those rows only. Rows are lightweight records; no documents are created.
Inputs
itemIdstringrequired- Table item id (type === "table").
rowsarrayrequired- Rows to append. Each row may set a title, the built-in done flag, and cells keyed by column NAME (e.g. {"Status": "In progress"}). Up to 100 rows per call.
workspaceIdstring- Workspace id, for usage attribution. Uses the configured default workspace when omitted.
edenmcp_eden_append_to_noteAppend markdown to the end of an existing note, keeping everything already in it.WriteAppend to Note
Append markdown to the end of an existing note, keeping everything already in it. Use only to add genuinely new material (e.g. a daily log entry); to revise, rewrite, or regenerate a note, use eden_update_note with the full new body instead -- append concatenates onto the note's current server-side content and is NOT idempotent, so calling it twice appends the text twice.
Inputs
contentstringrequired- Markdown to append to the end of the note. Only the new text -- Eden inserts a blank line before it.
itemIdstringrequired- Note item id (an item with type: "markdown"). Find it with eden_get_note_markdown or eden_search_workspace_items.
workspaceIdstring- Workspace id from eden_list_workspaces. Uses the configured default workspace when omitted.
edenmcp_eden_connect_itemsCreate item-to-item connections (backlinks) between Eden workspace items: each source item gets linked to the target item.WriteConnect Items
Create item-to-item connections (backlinks) between Eden workspace items: each source item gets linked to the target item. Use when the user asks to connect, link, or relate items, e.g. 'connect these to my newsletter note'. Works for any item type including boards. Find item ids with eden_search_workspace_items / eden_find_workspace_items first. Idempotent: an already-connected pair (either direction) is reported as alreadyConnected instead of duplicated.
- Idempotent
Inputs
sourceItemIdsarrayrequired- Item ids to connect FROM. Each gets an edge to the target item.
targetItemIdstringrequired- Item id to connect TO, e.g. the newsletter note or a board.
workspaceIdstring- Workspace id. Uses the configured default workspace when omitted.
edenmcp_eden_create_auto_dm_automationCreate an Instagram Auto-DM automation on the user's connected Instagram, e.g.WriteCreate Auto-DM Automation
Create an Instagram Auto-DM automation on the user's connected Instagram, e.g. 'when someone comments LINK on my next post, DM them my guide'. Triggers: comment keyword -> DM, story reply -> DM, DM keyword -> DM, DM reaction -> DM, or a public comment reply. DMs can carry a link; links get a click-tracked short link by default. Each DM sent costs 1 credit. This tool clarifies instead of guessing: if required details are missing it returns a needs_clarification status -- ask the user those questions and call again with their answers. Never invent the DM message, keywords, link, or post choice.
Inputs
brandIdstring- Brand id whose Instagram the automation runs on (Studio brands). Pass "default" or omit for the workspace default brand.
customCodestring- Optional custom slug for the tracked link (3-32 chars: a-z, 0-9, hyphen). First-come-first-served and permanent -- only pass when the user asked for one.
emojistring- dm_reaction only: restrict to one emoji. Omit = any reaction.
keywordsarray- Trigger keywords (whole-word, case-insensitive; any match fires). Required for comment_keyword, dm_keyword, and comment_reply.
linkstring- Optional http(s) link appended to the DM. Sent as a click-tracked short link unless trackLink=false. Not allowed on comment_reply (public replies can't carry links).
messagestring- The DM text to send (for comment_reply: the public reply text). Required -- ask the user, never write it for them without their input.
namestring- Short label shown in the Auto-DM page. Optional -- derived from the trigger/keyword when omitted.
postScopestring- comment_keyword / comment_reply: which posts to watch -- one specific post, the next post published, or every new post. comment_reply supports specific/all only.one of
specificnextall publicReplystring- comment_keyword only: also post a public reply to the matching comment, e.g. 'just sent it, check your DMs!'.
targetPostIdstring- Required when postScope=specific: the Instagram post id, from the options this tool returns in its clarifying question (Meta Graph media ids -- never ids from other sources).
trackLinkboolean- Defaults to true. Set false to send the raw URL with no click tracking.
triggerTypestring- What fires the automation. Omit to get the list of options back as a clarifying question.one of
comment_keywordstory_replydm_keyworddm_reactioncomment_reply workspaceIdstring- Workspace id. Uses the configured default workspace when omitted.
edenmcp_eden_create_boardCreate a new empty board (a canvas) in the user's Eden workspace and pin it to the top of their sidebar.WriteCreate Board
Create a new empty board (a canvas) in the user's Eden workspace and pin it to the top of their sidebar. Search for an existing board by title first with eden_search_workspace_items; only create when there's genuinely no match. Returns the board's itemId as boardId, for use with eden_create_note, eden_save_links_to_board, or eden_save_posts_to_board.
Inputs
titlestringrequired- Board title, e.g. 'Q3 Hooks'. Defaults to 'Untitled board' if blank.
workspaceIdstring- Workspace id from eden_list_workspaces. Uses the configured default workspace when omitted.
edenmcp_eden_create_custom_aiCreate a workspace-scoped Custom AI (Eden's rebranded Skills feature) with durable instructions, starter prompts, and optional permission-checked Eden sources.WriteCreate Custom AI
Create a workspace-scoped Custom AI (Eden's rebranded Skills feature) with durable instructions, starter prompts, and optional permission-checked Eden sources. This is a real write. Use exact board/item ids and normalized creator references; never invent source locators. Prefer workspace visibility, selected workspace access, retrieve activation, and memory off unless the user asks for broader behavior.
Inputs
definitionobjectrequired- The Custom AI's definition: name, instructions, and behavior settings. Example: {"name": "Brand Voice Coach", "instructionsMarkdown": "You help draft posts in our brand voice...", "starterPrompts": ["Draft a launch post"], "workspaceAccess": "selected", "memoryMode": "off"}.
sourcesarray- Optional permission-checked Eden sources (boards, items, creators, social posts) to ground the Custom AI's knowledge in. Use exact ids from eden_search_workspace_items / eden_find_workspace_items / eden_resolve_creator; never invent locators. Example: [{"locator": {"kind": "item", "itemId": "item_01hx2abc"}, "roles": ["knowledge"]}].
visibilitystring- Who can see this Custom AI. Defaults to workspace (visible to workspace members) when omitted.one of
privateworkspaceunlistedpublic workspaceIdstring- Workspace id from eden_list_workspaces. Uses the workspace's configured default when omitted.
edenmcp_eden_create_noteCreate a new markdown item (note) in an Eden workspace or board.WriteCreate Note
Create a new markdown item (note) in an Eden workspace or board. Two presentations: "document" (default) for drafted content the user keeps editing; "card" for a short canvas-visible text card (a sticky) used for quick captures, ideas, and reminders -- content is required for cards. Only creates new items; editing goes through eden_update_note. Retrying an identical call is safe and lands one item.
- Idempotent
Inputs
boardIdstring- Compatibility alias for a board destination. Id of the destination board (item type: "canvas", or a folder).
colorstring- Cards only: optional CSS color value, such as '#fff7a8'. Omit for Eden's default.
contentstring- Full markdown body. Required for cards; max 20K chars in card mode, 200K chars in document mode.
destinationobject- Explicit destination: {"kind": "library"} for a workspace-only item with no board placement, or {"kind": "board", "boardId": "<id>"}. Overrides boardId when both are set.
presentationstring- "document" (default) = an editable Document. "card" = a short canvas-visible text Card (sticky).one of
documentcard titlestring- Document title. Omit to derive from the first line of content. Ignored for cards.
workspaceIdstring- Workspace id from eden_list_workspaces. Uses the configured default workspace when omitted.
edenmcp_eden_create_scheduling_draftDeprecated stub.WriteMoved to eden_schedule_post
Deprecated stub. This tool moved to eden_schedule_post -- call eden_schedule_post with draft: true and the same content fields (no timestamp needed). Do not call this stub; it takes no parameters and performs no action.
- Idempotent
Inputs
This tool takes no inputs.
edenmcp_eden_create_skillCreate a new AI skill (reusable prompt workflow) in the workspace.WriteCreate Skill
Create a new AI skill (reusable prompt workflow) in the workspace.
Inputs
namestringrequired- The display name of the new skill.
definitionstring- The skill definition as a JSON string describing its steps and configuration.
descriptionstring- A brief description of what the skill does.
workspaceIdstring- The workspace ID to create the skill in. Uses the default workspace if omitted.
edenmcp_eden_create_sticky_noteDeprecated stub.WriteMoved to eden_create_note
Deprecated stub. This tool moved to eden_create_note -- call eden_create_note with presentation: "card" plus the same content / color / destination. Do not call this stub; it takes no parameters and performs no action.
- Idempotent
Inputs
This tool takes no inputs.
edenmcp_eden_delete_custom_aiArchive an editable Custom AI.WriteDelete Custom AI
Archive an editable Custom AI. This removes it from the active workspace catalog and cannot be undone from MCP. Call only after the user explicitly confirms deletion. Managed marketplace installs must be removed through their installation controls instead.
- Idempotent
Inputs
confirmedbooleanrequired- Must be true, and only after the user has explicitly confirmed the deletion.
customAIIdstringrequired- Custom AI id from eden_list_custom_ai.
expectedRevisionintegerrequired- Current revision from eden_get_custom_ai. Prevents deleting a version the caller hasn't seen yet.
workspaceIdstring- Workspace id from eden_list_workspaces. Uses the workspace's configured default when omitted.
edenmcp_eden_export_skillExport a skill definition as a JSON string, suitable for backup or importing into another workspace.WriteExport Skill
Export a skill definition as a JSON string, suitable for backup or importing into another workspace.
- Idempotent
Inputs
skillIdstringrequired- The unique identifier of the skill to export.
edenmcp_eden_generate_carouselGenerate an AI carousel (multi-slide image set) for social posts.WriteGenerate Carousel
Generate an AI carousel (multi-slide image set) for social posts.
Inputs
promptstringrequired- The text prompt describing the carousel content and theme to generate.
slideCountinteger- The number of slides to include in the carousel.
stylestring- The visual style to apply to the carousel slides.
workspaceIdstring- The workspace ID to use for carousel generation.
edenmcp_eden_generate_imageGenerate an AI image for use in posts.WriteGenerate Image
Generate an AI image for use in posts.
Inputs
promptstringrequired- The text prompt describing the image to generate.
heightinteger- The height of the generated image in pixels.
stylestring- The visual style to apply to the generated image.
widthinteger- The width of the generated image in pixels.
workspaceIdstring- The workspace ID to use for image generation.
edenmcp_eden_import_skillImport a skill into the workspace from a JSON definition string, typically obtained via the Export Skill tool.WriteImport Skill
Import a skill into the workspace from a JSON definition string, typically obtained via the Export Skill tool.
Inputs
skillJsonstringrequired- The JSON string of the skill definition to import, as returned by the Export Skill tool.
workspaceIdstring- The workspace ID to import the skill into. Uses the default workspace if omitted.
edenmcp_eden_prepare_scheduling_media_uploadPrepare a public media upload for a scheduled post asset.WritePrepare Scheduling Media Upload
Prepare a public media upload for a scheduled post asset. This does not upload bytes itself. Small files return a presigned PUT uploadUrl; large files return a multipart plan to drive with eden_scheduling_media_multipart. Pass the resulting publicUrl as media[].url only after the upload completes. Supported types: image/jpeg, image/png, image/webp, image/gif, application/pdf, video/mp4, video/quicktime, video/webm. Max size 10 GB.
- Idempotent
Inputs
mimeTypestringrequired- MIME type: image/jpeg, image/png, image/webp, image/gif, application/pdf, video/mp4, video/quicktime, or video/webm.
sizeBytesintegerrequired- Exact file size in bytes. Max 10 GB (10737418240 bytes).
workspaceIdstring- The workspace ID to associate the media upload with. If omitted, uses the default workspace.
edenmcp_eden_publish_post_nowImmediately queue a social post for publishing in Eden.WritePublish Post Now
Immediately queue a social post for publishing in Eden. This is a real publish action, not a draft or proposal -- use only when the user explicitly asks to publish/post/send now. Supports text, media, per-platform overrides, X/Threads segments (threads), and long-form articles (Twitter/Substack). No longer takes a postId: this call composes and publishes a brand-new post in one step.
- Idempotent
Inputs
articleobject- Canonical long-form article (Twitter Articles / Substack posts). Requires explicit platforms and may only target twitter and substack. Needs title and bodyHtml; substack targets additionally require the nested 'substack' settings object (audience, commentPermission, sendEmail, cta, paywall).
idempotencyKeystring- Optional retry-safe key. Same key + same content returns the same post instead of creating a duplicate.
mediaarray- Already-hosted media/document assets to attach. Each item needs a publicly fetchable 'url' (never a local file path); use eden_prepare_scheduling_media_upload first to host a local file.
perPlatformobject- Optional per-platform overrides for when one platform should differ from the rest (text, mediaIds subset, a unique thread, YouTube title, or Instagram trial reel). Keyed by platform name. Omit entirely to have every platform use the shared text and all shared media.
platformsarray- Platforms to publish to. Defaults to active text platforms when no media is provided; active platforms when media is provided.
scheduleIdstring- Optional schedule id to publish under.
segmentsarray- Thread segments for X/Threads. Each segment is one post in the thread: {"text": "...", "mediaIds": ["..."]}.
textstring- Post text/caption, line breaks preserved. Use an empty string for a media-only post; text and media cannot both be empty.default
timezonestring- IANA timezone. Defaults to the schedule's timezone.
workspaceIdstring- Workspace id from eden_list_workspaces. Uses the configured default workspace when omitted.
edenmcp_eden_rename_boardRename an existing board.WriteRename Board
Rename an existing board.
- Idempotent
Inputs
boardIdstringrequired- The ID of the board to rename.
namestringrequired- The new name to assign to the board.
edenmcp_eden_rename_noteRename an existing note/document.WriteRename Note
Rename an existing note/document. Updates the title everywhere it appears (first heading, sidebar name, canvas card) while leaving the rest of the body intact. Find the note's itemId with eden_search_workspace_items / eden_get_note_markdown. Use eden_update_note instead if you need to rewrite the entire body.
- Idempotent
Inputs
itemIdstringrequired- Note item id (an item with type: "markdown").
titlestringrequired- New title (display name) for the note.
workspaceIdstring- Workspace id from eden_list_workspaces. Uses the configured default workspace when omitted.
edenmcp_eden_save_items_to_boardPlace existing workspace/library items onto a board as cards.WriteSave Existing Items to Board
Place existing workspace/library items onto a board as cards. This is the right tool for saving highlights to a board: pass each highlight's itemId from eden_search_highlights results. Also works for any other item id from eden_search_workspace_items / eden_find_workspace_items (notes, saved links, PDFs). Unlike the links/posts tools this creates no new item -- the board gets a card for the canonical item. Idempotent: items already on the board are reported as alreadyOnBoard, not duplicated.
- Idempotent
Inputs
boardIdstringrequired- Id of the destination board (item type: "canvas", or a folder). Find via eden_list_workspace_items or eden_search_workspace_items.
itemIdsarrayrequired- Existing workspace item ids to place on the board, e.g. the itemId field on eden_search_highlights results, or ids from eden_search_workspace_items (max 25 per call).
workspaceIdstring- Workspace id. Uses the configured default workspace when omitted.
edenmcp_eden_save_links_to_boardSave one or more URLs onto an Eden board.WriteSave Links to Board
Save one or more URLs onto an Eden board. Eden classifies each URL into a platform card (YouTube/Twitter/Instagram/TikTok/LinkedIn/Substack/Loom) or a generic link card. Use only for URLs from outside Eden; save indexed social results with eden_save_posts_to_board, and items already in the workspace with eden_save_items_to_board. Re-calling with the same URLs creates duplicate cards.
Inputs
boardIdstringrequired- The ID of the board to save the links to.
urlsarrayrequired- Absolute URLs to save (max 25 per call).
workspaceIdstring- Workspace id from eden_list_workspaces. Uses the configured default workspace when omitted.
edenmcp_eden_save_posts_to_boardSave indexed social posts onto an Eden board as fully-hydrated cards (thumbnail, metrics, creator attribution).WriteSave Posts to Board
Save indexed social posts onto an Eden board as fully-hydrated cards (thumbnail, metrics, creator attribution). Use with results from eden_search_social_content, eden_analyze_creator, or eden_analyze_list: pass each result's contentId (the Eden DB UUID, not the platform's native post id) plus its platform. Retrying an identical call is safe -- each post lands on a given board once, keyed by contentId.
- Idempotent
Inputs
boardIdstringrequired- The ID of the board to save the posts to.
postsarrayrequired- Posts to save, in the order they should land on the board (max 20 per call). Each entry needs platform and contentId (the Eden DB UUID from a social search result, not the platform-native id).
workspaceIdstring- Workspace id from eden_list_workspaces. Uses the configured default workspace when omitted.
edenmcp_eden_schedule_postSchedule a social post in Eden and enqueue it for publishing at a future time -- or, with draft: true, save it as an unscheduled scheduler draft with no publish time.WriteSchedule Post
Schedule a social post in Eden and enqueue it for publishing at a future time -- or, with draft: true, save it as an unscheduled scheduler draft with no publish time. This is a real write, not a proposal. When scheduling, pass a concrete timestamp as scheduledFor (epoch ms) or scheduledAtIso -- never natural language; when draft: true, omit the timestamp. Supports text, media, per-platform overrides, X/Threads segments (threads), and long-form articles (Twitter/Substack).
- Idempotent
Inputs
articleobject- Canonical long-form article (Twitter Articles / Substack posts). Requires explicit platforms and may only target twitter and substack. Needs title and bodyHtml; substack targets additionally require the nested 'substack' settings object (audience, commentPermission, sendEmail, cta, paywall).
draftboolean- true = save as an unscheduled scheduler draft (no publish time, nothing enqueued) for the user to review. Omit or false = schedule at the given timestamp.
idempotencyKeystring- Optional retry-safe key. Same key + same content/time returns the same post instead of creating a duplicate.
mediaarray- Already-hosted media/document assets to attach. Each item needs a publicly fetchable 'url' (never a local file path); use eden_prepare_scheduling_media_upload first to host a local file.
perPlatformobject- Optional per-platform overrides for when one platform should differ from the rest (text, mediaIds subset, a unique thread, YouTube title, or Instagram trial reel). Keyed by platform name. Omit entirely to have every platform use the shared text and all shared media.
platformsarray- Platforms to publish to. Defaults to active text platforms when no media is provided; active platforms when media is provided.
scheduledAtIsostring- Publish time as a concrete ISO timestamp. Used when scheduledFor is absent.
scheduledFornumber- Publish time as epoch milliseconds. Prefer this when known. Ignored with draft: true.
scheduleIdstring- Optional schedule id to publish under.
segmentsarray- Thread segments for X/Threads. Each segment is one post in the thread: {"text": "...", "mediaIds": ["..."]}.
textstring- Post text/caption, line breaks preserved. Use an empty string for a media-only post; text and media cannot both be empty.default
timezonestring- IANA timezone. Defaults to the schedule's timezone.
workspaceIdstring- Workspace id from eden_list_workspaces. Uses the configured default workspace when omitted.
edenmcp_eden_scheduling_media_multipartDrive a multipart scheduling-media upload from eden_prepare_scheduling_media_upload's multipart plan, one step at a time.WriteMultipart Media Upload Step
Drive a multipart scheduling-media upload from eden_prepare_scheduling_media_upload's multipart plan, one step at a time. step="sign-part" (needs partNumber) returns a presigned PUT URL for that part -- PUT the part's bytes and keep the ETag response header. step="complete" (needs parts, every partNumber + ETag in ascending order) finalizes the upload; the prepared publicUrl is ready for media[].url only after this succeeds. step="abort" discards an upload that will not be resumed.
- Idempotent
Inputs
stepstringrequired- Which multipart operation to perform: sign-part, complete, or abort.one of
sign-partcompleteabort storagePathstringrequired- storagePath returned by eden_prepare_scheduling_media_upload.
uploadIdstringrequired- uploadId returned by eden_prepare_scheduling_media_upload.
partNumberinteger- Required for step=sign-part: one-based part number from the multipart plan.
partsarray- Required for step=complete: all uploaded part numbers and ETag response headers, in ascending order.
workspaceIdstring- Workspace id. Uses the configured default workspace when omitted.
edenmcp_eden_set_first_commentSet the first comment on a scheduled post (for auto-commenting after publish).WriteSet First Comment
Set the first comment on a scheduled post (for auto-commenting after publish).
- Idempotent
Inputs
commentstringrequired- The text content of the first comment to auto-post after publishing.
postIdstringrequired- The unique identifier of the scheduled post.
edenmcp_eden_update_custom_aiReplace an editable Custom AI's definition.WriteUpdate Custom AI
Replace an editable Custom AI's definition. First call eden_get_custom_ai, merge the requested changes into the complete current definition, and pass that full definition plus its current revision. Managed marketplace installs are read-only. Sources are preserved (not editable through this call).
- Idempotent
Inputs
customAIIdstringrequired- Custom AI id from eden_list_custom_ai.
definitionobjectrequired- The Custom AI's full replacement definition: name, instructions, and behavior settings. Must be the complete current definition with your changes merged in, not a partial patch. Example: {"name": "Brand Voice Coach", "instructionsMarkdown": "You help draft posts in our brand voice..."}.
expectedRevisionintegerrequired- Current revision from eden_get_custom_ai. Prevents overwriting a version the caller hasn't seen yet.
visibilitystring- Who can see this Custom AI: private, workspace, unlisted, or public.one of
privateworkspaceunlistedpublic workspaceIdstring- Workspace id from eden_list_workspaces. Uses the workspace's configured default when omitted.
edenmcp_eden_update_noteReplace the entire markdown body of an existing note with new content.WriteUpdate Note
Replace the entire markdown body of an existing note with new content. Always call eden_get_note_markdown first and pass its contentHash as baseContentHash so you do not clobber newer edits. If omitted, this tool preflights a live read and refuses a large unexpected shrink unless allowShrink is true. Does not rename the note -- use eden_rename_note for that. To add to the end instead of replacing, use eden_append_to_note.
- Idempotent
Inputs
contentstringrequired- Full replacement markdown body of the note. This fully replaces any existing content.
itemIdstringrequired- Note item id (an item with type: "markdown").
allowShrinkboolean- Set true only when you intentionally replace a long note with a much shorter body. Without this, large shrinks are refused so stale/template overwrites cannot wipe work.
baseContentHashstring- contentHash from eden_get_note_markdown for the read you composed against. Strongly recommended. If omitted, Eden reads the live note and uses its hash.
workspaceIdstring- Workspace id from eden_list_workspaces. Uses the configured default workspace when omitted.
edenmcp_eden_update_scheduleEdit an Eden posting schedule's recurring slot times and/or timezone -- the queue cadence shown under a brand in the scheduler, not an individual post.WriteUpdate Schedule
Edit an Eden posting schedule's recurring slot times and/or timezone -- the queue cadence shown under a brand in the scheduler, not an individual post. Read the current slots with eden_list_schedules first, then pass the full replacement array (it replaces the whole set, so include unchanged slots too). Already-queued posts keep their times. Does not rename the schedule. To move one existing post instead, use eden_update_scheduled_post.
- Idempotent
Inputs
scheduleIdstring- Schedule id from eden_list_schedules. Omit to edit the default schedule; pass it explicitly when the workspace has several schedules/brands.
slotsarray- Full replacement set of recurring posting slots. Each slot fires at 'time' on every day marked true. Example: [{"time": "08:30", "days": [true, true, true, true, true, false, false]}].
timezonestring- IANA timezone for the schedule, e.g. "America/New_York".
workspaceIdstring- Workspace id. Uses the configured default workspace when omitted.
edenmcp_eden_update_scheduled_postEdit an existing draft or scheduled post in Eden by id -- change its time, its body, its auto first-comment, and/or its auto-repost.WriteUpdate Scheduled Post
Edit an existing draft or scheduled post in Eden by id -- change its time, its body, its auto first-comment, and/or its auto-repost. Find the id with eden_list_scheduled_posts. Reschedule only by passing scheduledFor/scheduledAtIso and leaving body fields out; edit the body by passing text/article/segments/media/platforms/perPlatform (omitted fields fall back to the existing post). Cannot edit a post that is already publishing or posted.
- Idempotent
Inputs
postIdstringrequired- Scheduled post / draft id from eden_list_scheduled_posts.
articleobject- Replacement canonical article. Omit to keep the existing article. Needs title and bodyHtml; substack targets additionally require the nested 'substack' settings object.
autoRepostobject- X only: natively repost the post to the author's own timeline after publish. Shape: {"everyHours": <0-168>, "times": <1-3>, "undoAfterHours": <0-168>}. Pass everyHours: 0 to turn auto-repost off. Requires the X account to have advanced automations enabled in Eden.
firstCommentobject- Set or clear the auto first-comment Eden posts right after the main post publishes. Shape: {"comment": "...", "afterLikes": <int>, "delayMinutes": <int>}. Pass an empty comment string to remove the first comment.
mediaarray- Replace the attached media. Omit to keep the post's existing media.
perPlatformobject- Optional per-platform overrides for when one platform should differ from the rest. Omit entirely to keep every platform on the shared text/media.
platformsarray- Replace the target platforms. Omit to keep the post's current platforms.
scheduledAtIsostring- New publish time as a concrete ISO timestamp. Used when scheduledFor is absent.
scheduledFornumber- New publish time as epoch milliseconds. Prefer this when known.
scheduleIdstring- Optional schedule id guard -- rejects if the post belongs to another schedule.
segmentsarray- Replacement thread segments for X/Threads.
textstring- Replacement post text, line breaks preserved. Pass an empty string to remove a media post's caption; omit to keep the current text.
timezonestring- Optional timezone override.
edenmcp_eden_update_skillUpdate an existing AI skill's name, description, or definition by skill ID.WriteUpdate Skill
Update an existing AI skill's name, description, or definition by skill ID.
- Idempotent
Inputs
skillIdstringrequired- The unique identifier of the skill to update.
definitionstring- New skill definition as a JSON string. Omit to leave unchanged.
descriptionstring- New description for the skill. Omit to leave unchanged.
namestring- New display name for the skill. Omit to leave unchanged.
edenmcp_eden_update_tableChange an Eden table itself (not its rows): rename it, add columns, or change the shared view -- layout table/board/calendar, groupBy a column name or 'done', the calendar's date column, hide completed / hide check circles.WriteUpdate Table (Columns/View)
Change an Eden table itself (not its rows): rename it, add columns, or change the shared view -- layout table/board/calendar, groupBy a column name or 'done', the calendar's date column, hide completed / hide check circles. Existing columns can't be renamed or deleted here. Read the table first with eden_read_table for the current column names and view; anything that can't resolve comes back in a 'warnings' field.
- Idempotent
Inputs
itemIdstringrequired- Table item id.
addColumnsarray- New columns to add. Each needs a name and type. 'status' seeds a select with Not started/In progress/Done. 'rating' = stars. 'item' cells hold a workspace item id. 'meta' = read-only fact from the row's linked item. Up to 30 per call.
titlestring- New table name.
viewobject- Changes to the table's shared view: layout (table/board/calendar), groupBy (a select/rating/checkbox/date column name, or 'done'; empty string clears), calendarDateProperty, hideDone, hideCheck.
workspaceIdstring- Workspace id, for usage attribution. Uses the configured default workspace when omitted.
edenmcp_eden_update_table_rowsUpdate rows in an Eden table: set cell values, rename, check/uncheck the done circle, or soft-remove.WriteUpdate Table Rows
Update rows in an Eden table: set cell values, rename, check/uncheck the done circle, or soft-remove. Address each row by its row item id (from eden_read_table) or its exact title -- ambiguous titles are skipped with a warning. Cell patches merge (only the columns you pass change; null clears a cell). Use for 'mark X done', status sweeps, or bulk fills of a new column.
- Idempotent
Inputs
itemIdstringrequired- Table item id.
updatesarrayrequired- Row updates to apply. Each entry addresses one row by 'row' (row item id or exact title) and may set title, done, cells (merged, not replaced), or removed. Up to 100 updates per call.
workspaceIdstring- Workspace id, for usage attribution. Uses the configured default workspace when omitted.
edenmcp_eden_upload_scheduling_mediaUpload an image/video/PDF/document from base64 bytes into Eden's public scheduling media bucket and return a ready media asset for scheduling tools.WriteUpload Scheduling Media
Upload an image/video/PDF/document from base64 bytes into Eden's public scheduling media bucket and return a ready media asset for scheduling tools. Base64 upload is capped at 25 MB; for larger files use eden_prepare_scheduling_media_upload instead. Supported types: image/jpeg, image/png, image/webp, image/gif, application/pdf, video/mp4, video/quicktime, video/webm.
- Idempotent
Inputs
base64Contentstringrequired- Base64-encoded file bytes. Do not include a data: URL prefix.
mimeTypestringrequired- MIME type: image/jpeg, image/png, image/webp, image/gif, application/pdf, video/mp4, video/quicktime, or video/webm.
altstring- Alt text or document description.
fileNamestring- Original filename for alt/id hints.
workspaceIdstring- Workspace id from eden_list_workspaces. Uses the configured default workspace when omitted.
edenmcp_eden_cancel_scheduled_postCancel a scheduled post or delete a draft in Eden by id, removing it permanently from the publish queue.DestructiveCancel Scheduled Post
Cancel a scheduled post or delete a draft in Eden by id, removing it permanently from the publish queue. Find the id with eden_list_scheduled_posts. Cannot cancel a post that is already publishing or already posted.
- Idempotent
Inputs
postIdstringrequired- Scheduled post / draft id from eden_list_scheduled_posts.
scheduleIdstring- Optional schedule id to guard against cancelling a post on another schedule.
edenmcp_eden_delete_skillPermanently delete an AI skill by its ID.DestructiveDelete Skill
Permanently delete an AI skill by its ID. This action cannot be undone.
Inputs
skillIdstringrequired- The unique identifier of the skill to permanently delete.
edenmcp_eden_trash_boardMove a board to the trash in the user's Eden workspace.DestructiveTrash Board
Move a board to the trash in the user's Eden workspace. This is a soft delete -- the board and its cards leave the sidebar but can be restored from Trash inside Eden. Only do this when the user clearly asks to delete/remove/trash a specific board; confirm the board first with eden_search_workspace_items.
- Idempotent
Inputs
boardIdstringrequired- Id of the board to trash (an item with type: "canvas").
No tools match.