Skip to content

feat(hedy): add 20 AI-optimized MCP actions#20901

Open
sergio-eliot-rodriguez wants to merge 11 commits into
masterfrom
mcp/hedy
Open

feat(hedy): add 20 AI-optimized MCP actions#20901
sergio-eliot-rodriguez wants to merge 11 commits into
masterfrom
mcp/hedy

Conversation

@sergio-eliot-rodriguez
Copy link
Copy Markdown
Collaborator

@sergio-eliot-rodriguez sergio-eliot-rodriguez commented May 18, 2026

Closes #20510

Summary

Adds a complete set of AI-optimized MCP actions for Hedy, an AI meeting intelligence platform that provides transcripts, highlights, action items, and topic organization for recorded meetings.

New actions (20)

Sessions

  • hedy-get-current-user — identity / account details (GET /me)
  • hedy-get-many-sessions — paginated session list (GET /sessions)
  • hedy-get-session — full session: transcript, meeting minutes, recap, highlights, todos (GET /sessions/{id})

Highlights

  • hedy-get-many-highlights — global paginated highlights (GET /highlights)
  • hedy-get-highlights-by-session — highlights for a specific session (GET /sessions/{id}/highlights)
  • hedy-get-highlight — single highlight with rawQuote, aiInsight (GET /highlights/{id})

Todos (Action Items)

  • hedy-get-many-todos — global todos across all sessions (GET /todos)
  • hedy-get-todos-by-session — todos for a specific session (GET /sessions/{id}/todos)
  • hedy-get-todo — single todo by ID (GET /sessions/{id}/todos/{todoId})

Topics

  • hedy-get-many-topics — all topics with session counts and AI overviews (GET /topics)
  • hedy-get-topic — single topic with full topicContext (GET /topics/{id})
  • hedy-get-topic-sessions — sessions belonging to a topic (GET /topics/{id}/sessions)
  • hedy-create-topic — create topic with optional AI analysis context (POST /topics)
  • hedy-update-topic — update topic properties (PATCH /topics/{id})
  • hedy-delete-topic — delete topic, unlinks sessions (DELETE /topics/{id})

Session Contexts

  • hedy-get-many-session-contexts — all reusable AI instruction contexts (GET /contexts)
  • hedy-get-session-context — single context by ID (GET /contexts/{id})
  • hedy-create-session-context — create reusable AI instructions (POST /contexts)
  • hedy-update-session-context — update context (PATCH /contexts/{id})
  • hedy-delete-session-context — delete context (DELETE /contexts/{id})

App file changes

  • Added _baseUrl(), _headers(), _makeRequest() HTTP helpers
  • Added 19 resource methods covering all API endpoints
  • Added shared propDefinitions for sessionId, topicId, highlightId, todoId, contextId, limit, after

Test plan

  • All 20 actions published to private namespace and exercised via eval harness
  • 18/20 evals pass (topics, contexts, identity, sessions, highlights, todos — all green)
  • 2 remaining evals (get-highlight, get-todo) warn only because the test session has no highlights/todos yet (2-minute recording with no substantive content) — not tool bugs
  • Static schemas confirmed: no additionalProps, reloadProps, or remoteOptions on any action
  • openWorldHint: true on all tools; destructiveHint: true on delete actions; readOnlyHint set correctly
  • Node syntax check passes on all 21 files

🤖 Generated with Claude Code

Summary by CodeRabbit

Release Notes

  • New Features
    • Added session context management (create, retrieve, update, delete operations)
    • Added topic management with context support (create, retrieve, update, delete operations)
    • Added highlight and todo retrieval capabilities with filtering options
    • Enhanced API guidance in action descriptions for improved usability

Adds a complete set of AI-optimized actions for the Hedy meeting
intelligence platform covering sessions, highlights, todos, topics,
and session contexts.

New actions:
- get-current-user: identity / account details
- get-many-sessions, get-session: browse and fetch meeting sessions
- get-many-highlights, get-highlights-by-session, get-highlight: AI-generated meeting highlights
- get-many-todos, get-todos-by-session, get-todo: action items from meetings
- get-many-topics, get-topic, get-topic-sessions: topic management (read)
- create-topic, update-topic, delete-topic: topic management (write)
- get-many-session-contexts, get-session-context: reusable AI instruction contexts (read)
- create-session-context, update-session-context, delete-session-context: contexts (write)

App file changes:
- Added _baseUrl(), _headers(), _makeRequest() HTTP helpers
- Added 19 resource methods covering all API endpoints
- Added shared propDefinitions for sessionId, topicId, highlightId,
  todoId, contextId, limit, and after (pagination cursor)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented May 18, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
pipedream-docs-redirect-do-not-edit Ignored Ignored Jun 5, 2026 4:10pm

Request Review

@pipedream-component-development
Copy link
Copy Markdown
Collaborator

Thank you so much for submitting this! We've added it to our backlog to review, and our team has been notified.

@pipedream-component-development
Copy link
Copy Markdown
Collaborator

Thanks for submitting this PR! When we review PRs, we follow the Pipedream component guidelines. If you're not familiar, here's a quick checklist:

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 18, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • ✅ Review completed - (🔄 Check again to review again)
📝 Walkthrough

Walkthrough

Expands the Hedy component into a full API client and adds action modules for creating, reading, updating, and deleting sessions, topics, highlights, todos, and session contexts; actions call the new app methods, export $summary, and return API responses.

Changes

Hedy Component API Expansion

Layer / File(s) Summary
API Client Implementation
components/hedy/hedy.app.mjs
Populates propDefinitions with session/topic/highlight/todo/context IDs and pagination props; adds _baseUrl(), _headers(), and _makeRequest() helpers; implements API methods used by actions (getCurrentUser, sessions, highlights, todos, topics, contexts).
Session Context CRUD Operations
components/hedy/actions/create-session-context/..., components/hedy/actions/update-session-context/..., components/hedy/actions/delete-session-context/..., components/hedy/actions/get-session-context/..., components/hedy/actions/get-many-session-contexts/...
Create/list/get/update/delete session contexts; actions build payloads from props, call app methods (createContext, listContexts, getContext, updateContext, deleteContext), export $summary, and return API responses.
Topic Management and Topic-Session Queries
components/hedy/actions/create-topic/..., components/hedy/actions/update-topic/..., components/hedy/actions/delete-topic/..., components/hedy/actions/get-topic/..., components/hedy/actions/get-many-topics/..., components/hedy/actions/get-topic-sessions/...
Topic create/update/delete and topic-session queries; actions accept optional topicContext (documented max length and clearing via empty string), call topic APIs, export $summary, and return responses.
Session Retrieval Actions
components/hedy/actions/get-session/..., components/hedy/actions/get-many-sessions/...
List sessions with pagination and fetch single session by ID; actions construct params, call listSessions/getSession, export count/title $summary, and return responses.
Highlight Retrieval Actions
components/hedy/actions/get-highlight/..., components/hedy/actions/get-highlights-by-session/..., components/hedy/actions/get-many-highlights/...
Get highlight by ID, list highlights by session, or list many highlights with pagination; actions normalize response?.data, export count/title $summary, and return API responses.
Todo Retrieval Actions
components/hedy/actions/get-todo/..., components/hedy/actions/get-todos-by-session/..., components/hedy/actions/get-many-todos/...
Get todo by session/todo ID, list todos for a session, or list all todos with pagination; $summary includes truncated todo text or fallback to ID.
Current User, Docs, and Version
components/hedy/actions/get-current-user/..., components/hedy/package.json
Extended get-current-user action description with setup guidance and documentation links; bumped package version from 0.0.1 to 0.1.0.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Suggested labels

User submitted

Suggested reviewers

  • GTFalcao
  • michelle0927
  • mariano-pd
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The PR title clearly identifies the primary change: adding 20 AI-optimized MCP actions for the Hedy integration. It is concise and specific about what is being added.
Description check ✅ Passed The PR description is comprehensive with detailed summary of the 20 new actions grouped by category, app file changes, and a thorough test plan. However, the description template's required checklist items are not checked off.
Linked Issues check ✅ Passed All 20 actions specified in linked issue #20510 are implemented with corresponding API endpoints. Sessions, Highlights, Todos, Topics, and Session Contexts requirements are fully covered by the new action modules and app methods.
Out of Scope Changes check ✅ Passed All changes are directly related to implementing the 20 Hedy actions and supporting app infrastructure. The version bump in package.json aligns with versioning requirements. No unrelated or extraneous changes detected.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch mcp/hedy

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@components/hedy/actions/create-session-context/create-session-context.mjs`:
- Around line 20-37: The title, content, and isDefault input prop definitions
are duplicated between Create Session Context and Update Session Context; move
their shared metadata into the app-level propDefinitions in
components/hedy/hedy.app.mjs (define props named e.g. title, content, isDefault
there) and then replace the inline prop objects in create-session-context.mjs
(and the Update Session Context file) with references using propDefinition:
"title"/"content"/"isDefault" so both actions use the centralized definitions.
- Line 43: The current truthy check drops explicit empty strings for content;
change the conditional that sets data.content from using "if (this.content)
data.content = this.content;" to an undefined-only check so "" is preserved
(e.g., test for this.content !== undefined before assigning). Update the
assignment around this.content and data.content in create-session-context
(create-session-context.mjs) to only skip when this.content is strictly
undefined.

In `@components/hedy/actions/get-current-user/get-current-user.mjs`:
- Line 9: The component metadata version in get-current-user.mjs is still
"version: \"0.0.1\"" despite metadata changes; update the version field (the
"version" property in the module metadata) to a patch bump (e.g., "0.0.2") so
the component version is incremented per the policy and commit the change.

In
`@components/hedy/actions/get-many-session-contexts/get-many-session-contexts.mjs`:
- Around line 24-27: The summary undercounts when listContexts() returns an
array because contexts is set via response?.data; change the assignment to
detect both shapes: if response is an array use it, otherwise use response?.data
or fallback to []; update the code that computes contexts (the variable named
contexts and the response value returned from listContexts()) so contexts =
Array.isArray(response) ? response : response?.data ?? []; keep the existing
summary generation using contexts.length so it reports the correct count.

In `@components/hedy/hedy.app.mjs`:
- Around line 52-57: The object returned by _headers() mixes quoted and unquoted
property names which violates the quote-props ESLint rule; change the
Authorization key to use quoted property syntax (e.g., "Authorization") to match
the already-quoted "Content-Type" key so both headers are consistently quoted in
the _headers() method.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: c05feba4-95c4-4629-a456-17bf1d267635

📥 Commits

Reviewing files that changed from the base of the PR and between 8dba6e2 and 80e253e.

📒 Files selected for processing (22)
  • components/hedy/actions/create-session-context/create-session-context.mjs
  • components/hedy/actions/create-topic/create-topic.mjs
  • components/hedy/actions/delete-session-context/delete-session-context.mjs
  • components/hedy/actions/delete-topic/delete-topic.mjs
  • components/hedy/actions/get-current-user/get-current-user.mjs
  • components/hedy/actions/get-highlight/get-highlight.mjs
  • components/hedy/actions/get-highlights-by-session/get-highlights-by-session.mjs
  • components/hedy/actions/get-many-highlights/get-many-highlights.mjs
  • components/hedy/actions/get-many-session-contexts/get-many-session-contexts.mjs
  • components/hedy/actions/get-many-sessions/get-many-sessions.mjs
  • components/hedy/actions/get-many-todos/get-many-todos.mjs
  • components/hedy/actions/get-many-topics/get-many-topics.mjs
  • components/hedy/actions/get-session-context/get-session-context.mjs
  • components/hedy/actions/get-session/get-session.mjs
  • components/hedy/actions/get-todo/get-todo.mjs
  • components/hedy/actions/get-todos-by-session/get-todos-by-session.mjs
  • components/hedy/actions/get-topic-sessions/get-topic-sessions.mjs
  • components/hedy/actions/get-topic/get-topic.mjs
  • components/hedy/actions/update-session-context/update-session-context.mjs
  • components/hedy/actions/update-topic/update-topic.mjs
  • components/hedy/hedy.app.mjs
  • components/hedy/package.json

Comment thread components/hedy/actions/create-session-context/create-session-context.mjs Outdated
Comment thread components/hedy/actions/get-current-user/get-current-user.mjs Outdated
Comment thread components/hedy/hedy.app.mjs
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@components/hedy/hedy.app.mjs`:
- Around line 10-45: Update the prop descriptions for meetingId, topicId,
highlightId, todoId, contextId, and the pagination cursor after (and optionally
limit) in the component schema to include concrete inline examples of expected
formats (e.g., meetingId: "meet_0123abcd", topicId: "topic_5f8e9a", highlightId:
"hl_20240501_abc123", todoId: "todo_987xyz", contextId: "ctx_456def", after:
"cursor_eyJpZCI6Ij..." or a short base64 token) so agents know exact input shape
and encoding; locate the property definitions for limit, after, meetingId,
topicId, highlightId, todoId, and contextId in hed y.app.mjs and append a brief
example to each description string without changing types or validation rules.

In `@components/hedy/package.json`:
- Line 3: The package.json version field currently uses a patch bump ("version":
"0.0.2"); update the "version" value in components/hedy/package.json to a minor
bump (for example "0.1.0") to reflect the additive, backwards-compatible
changes; modify the "version" string in the package.json so it is >= minor
(0.1.0) to comply with semver guidance for new optional functionality.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 329b1718-e598-459c-9fb8-045402a2ba0f

📥 Commits

Reviewing files that changed from the base of the PR and between 80e253e and 2a0f95a.

📒 Files selected for processing (2)
  • components/hedy/hedy.app.mjs
  • components/hedy/package.json

Comment thread components/hedy/hedy.app.mjs Outdated
Comment thread components/hedy/package.json Outdated
Sergio Eliot Rodriguez Wong and others added 4 commits May 17, 2026 17:57
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown
Collaborator

@michelle0927 michelle0927 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @sergio-eliot-rodriguez. Can you fix the doc links? That'll make it easier to review. :)

Comment thread components/hedy/actions/create-session-context/create-session-context.mjs Outdated
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
components/hedy/actions/get-many-topics/get-many-topics.mjs (1)

16-22: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Add pagination support to Get Many Topics

  • GET /topics supports limit + after, but this action exposes no pagination props and doesn’t forward params.
  • Add shared limit/after props via app propDefinitions (propDefinition: [app, "limit"] / propDefinition: [app, "after"]) and pass them as params to this.app.listTopics.
  • Update components/hedy/hedy.app.mjs listTopics to accept { params } and forward them in _makeRequest for /topics.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@components/hedy/actions/get-many-topics/get-many-topics.mjs` around lines 16
- 22, Add pagination props to the Get Many Topics action and forward them to the
app: in the action's props include limit and after using propDefinition
references (propDefinition: [app, "limit"] and propDefinition: [app, "after"])
so they become available in run, then call this.app.listTopics with an object
that includes $ and params (e.g., params: { limit, after }) instead of only $;
also update the Hedy app method listTopics to accept a single parameter object
(e.g., listTopics({ $, params })) and forward params into _makeRequest when
calling the /topics endpoint so the request includes pagination query params.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Outside diff comments:
In `@components/hedy/actions/get-many-topics/get-many-topics.mjs`:
- Around line 16-22: Add pagination props to the Get Many Topics action and
forward them to the app: in the action's props include limit and after using
propDefinition references (propDefinition: [app, "limit"] and propDefinition:
[app, "after"]) so they become available in run, then call this.app.listTopics
with an object that includes $ and params (e.g., params: { limit, after })
instead of only $; also update the Hedy app method listTopics to accept a single
parameter object (e.g., listTopics({ $, params })) and forward params into
_makeRequest when calling the /topics endpoint so the request includes
pagination query params.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 8c4c30a5-5cf4-4605-9946-12dd728737a5

📥 Commits

Reviewing files that changed from the base of the PR and between 9f1cf7b and 2f8c1d4.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (21)
  • components/hedy/actions/create-session-context/create-session-context.mjs
  • components/hedy/actions/create-topic/create-topic.mjs
  • components/hedy/actions/delete-session-context/delete-session-context.mjs
  • components/hedy/actions/delete-topic/delete-topic.mjs
  • components/hedy/actions/get-current-user/get-current-user.mjs
  • components/hedy/actions/get-highlight/get-highlight.mjs
  • components/hedy/actions/get-highlights-by-session/get-highlights-by-session.mjs
  • components/hedy/actions/get-many-highlights/get-many-highlights.mjs
  • components/hedy/actions/get-many-session-contexts/get-many-session-contexts.mjs
  • components/hedy/actions/get-many-sessions/get-many-sessions.mjs
  • components/hedy/actions/get-many-todos/get-many-todos.mjs
  • components/hedy/actions/get-many-topics/get-many-topics.mjs
  • components/hedy/actions/get-session-context/get-session-context.mjs
  • components/hedy/actions/get-session/get-session.mjs
  • components/hedy/actions/get-todo/get-todo.mjs
  • components/hedy/actions/get-todos-by-session/get-todos-by-session.mjs
  • components/hedy/actions/get-topic-sessions/get-topic-sessions.mjs
  • components/hedy/actions/get-topic/get-topic.mjs
  • components/hedy/actions/update-session-context/update-session-context.mjs
  • components/hedy/actions/update-topic/update-topic.mjs
  • components/hedy/package.json

Comment thread components/hedy/actions/get-current-user/get-current-user.mjs Outdated
Comment thread components/hedy/actions/get-highlights-by-session/get-highlights-by-session.mjs Outdated
Comment thread components/hedy/actions/get-many-todos/get-many-todos.mjs Outdated
Comment thread components/hedy/actions/get-todos-by-session/get-todos-by-session.mjs Outdated
Copy link
Copy Markdown
Collaborator

@michelle0927 michelle0927 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Ready for QA

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[components] Hedy

4 participants