Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
e916b6a
feat: add crud schema
ioannisj Aug 27, 2025
e09e297
feat: add input schema
ioannisj Aug 27, 2025
53fa9bd
feat: add handlers
ioannisj Aug 27, 2025
4adf60f
feat: add api client
ioannisj Aug 27, 2025
c64b50b
feat: add surveys schema
ioannisj Aug 27, 2025
05a3364
feat: support branching logic
ioannisj Aug 29, 2025
215d93e
fix: response based branching schemas
ioannisj Sep 1, 2025
7b4b9e6
feat: add more schema annotations
ioannisj Sep 1, 2025
efaebcb
feat: add survey global stats tool
ioannisj Sep 2, 2025
ab43f7b
fix: survey create tool
ioannisj Sep 2, 2025
76f7b42
fix: improve survey-update tool
ioannisj Sep 2, 2025
dcb5ddc
fix: add linked flag and variants to survey conditions
ioannisj Sep 2, 2025
1bf31db
feat: add targeting filter
ioannisj Sep 3, 2025
1c15a0c
Merge branch 'main' into feat/tools/surveys
ioannisj Sep 3, 2025
6abcd1a
fix: iteration count and frequency
ioannisj Sep 3, 2025
3e67b0d
refactor: types
ioannisj Sep 3, 2025
96eeb83
fix: add some input validations
ioannisj Sep 3, 2025
58331ea
feat: add unit tests
ioannisj Sep 4, 2025
7ab9698
fix: tool definitions
ioannisj Sep 4, 2025
b9dad6b
chore: update schemas
ioannisj Sep 4, 2025
82c8b06
fix: typecheck
ioannisj Sep 4, 2025
6c2c18d
fix: return full survey on create and update
ioannisj Sep 5, 2025
8945f74
fix: SurveyGetAllSchema
ioannisj Sep 5, 2025
2899b85
fix: use openWorldHint true
ioannisj Sep 5, 2025
781b70f
fix: format survey output
ioannisj Sep 5, 2025
78bd34e
fix: add create tool logic
ioannisj Sep 5, 2025
819851d
fix: nullish for output schemas
ioannisj Sep 5, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
953 changes: 952 additions & 1 deletion python/schema/tool_inputs.py

Large diffs are not rendered by default.

35 changes: 35 additions & 0 deletions schema/tool-definitions.json
Original file line number Diff line number Diff line change
Expand Up @@ -148,5 +148,40 @@
"description": "Change the active project from the default project. You should only use this tool if the user asks you to change the project - otherwise, the default project will be used.",
"category": "Organization & project management",
"summary": "Change the active project from the default project."
},
"survey-create": {
"description": "Creates a new survey in the project. Surveys can be popover or API-based and support various question types including open-ended, multiple choice, rating, and link questions. Once created, you should ask the user if they want to add the survey to their application code.",
"category": "Surveys",
"summary": "Creates a new survey in the project."
},
"survey-get": {
"description": "Get a specific survey by ID. Returns the survey configuration including questions, targeting, and scheduling details.",
"category": "Surveys",
"summary": "Get a specific survey by ID."
},
"surveys-get-all": {
"description": "Get all surveys in the project with optional filtering. Can filter by search term or use pagination.",
"category": "Surveys",
"summary": "Get all surveys in the project with optional filtering."
},
"survey-update": {
"description": "Update an existing survey by ID. Can update name, description, questions, scheduling, and other survey properties.",
"category": "Surveys",
"summary": "Update an existing survey by ID."
},
"survey-delete": {
Copy link
Member

Choose a reason for hiding this comment

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

Do we call it 'delete' on the UI?
Or do we have both states? Arquive and really deleted?

Copy link
Author

Choose a reason for hiding this comment

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

In the UI we have "Delete" for all surveys (permanent) and "Archive" for stopped or completed surveys. Afaik, we don't have an actual soft delete.
Had the same concerns as this comment here, so I went with always archive from mcp instead

"description": "Delete a survey by ID (soft delete - marks as archived).",
"category": "Surveys",
"summary": "Delete a survey by ID."
},
"surveys-global-stats": {
"description": "Get aggregated response statistics across all surveys in the project. Includes event counts (shown, dismissed, sent), unique respondents, conversion rates, and timing data. Supports optional date filtering.",
"category": "Surveys",
"summary": "Get aggregated response statistics across all surveys."
},
"survey-stats": {
"description": "Get response statistics for a specific survey. Includes detailed event counts (shown, dismissed, sent), unique respondents, conversion rates, and timing data. Supports optional date filtering.",
"category": "Surveys",
"summary": "Get response statistics for a specific survey."
}
}
Loading