Compare commits

...

95 Commits

Author SHA1 Message Date
waleed
3696658b03 changed zapier to use oauth 2025-12-09 14:28:04 -08:00
waleed
4d9ae94047 working checkbox, need to add zapier oauth2 2025-12-09 14:13:50 -08:00
waleed
ce72880935 feat(tools): added zapier 2025-12-09 13:20:48 -08:00
Waleed
2fcd07e82d feat(triggers): added rss feed trigger & poller (#2267) 2025-12-08 23:07:07 -08:00
Vikhyath Mondreti
0db5ba1b27 fix(org-limits): remove fallbacks for enterprise plan (#2255)
* fix(org-limits): remove fallbacks for enterprise plan

* remove comment

* remove comments

* make logger use new helper
2025-12-08 21:43:43 -08:00
Waleed
e390ba0491 feat(dropdowns): added searchbox to the operation dropdown for all blocks (#2266) 2025-12-08 20:54:59 -08:00
Vikhyath Mondreti
2f0509adaf fix(nextjs-size-limit): surface 413s accurately (#2265)
* fix(api-call-size-limit): cannot exceed nextjs size limits

* fix

* Convert to buffer

---------

Co-authored-by: Siddharth Ganesan <siddharthganesan@gmail.com>
2025-12-08 20:54:25 -08:00
Waleed
9f0584a818 feat(redis): added redis option for rate limiter, 10x speed improvement in rate limit checks & reduction of DB load (#2263)
* feat(redis): added redis option for rate limiter, 10x speed improvement in rate limit checks & reduction of DB load

* ack PR comments

* improvements
2025-12-08 20:39:29 -08:00
Siddharth Ganesan
6b4d76298f fix(custom-tools, copilot): custom tools state + copilot fixes (#2264)
* Workspace env vars

* Fix execution animation on copilot run

* Custom tools toolg

* Custom tools

* Fix custom tool

* remove extra fallback

* Fix lint
2025-12-08 20:14:49 -08:00
Vikhyath Mondreti
b7a1e8f5cf fix(pre-proc-checks): deployed checks should precede cost/ratelimit increments" (#2250) 2025-12-08 20:04:21 -08:00
Waleed
3ce2788562 feat(i18n): update translations (#2262)
Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com>
2025-12-08 19:40:42 -08:00
Waleed
17a084cd61 feat(copilot): updated copilot keys to have names, full parity with API keys page (#2260) 2025-12-08 19:28:40 -08:00
Waleed
dafd2f5ce8 feat(tools): added sftp tool to accompany smtp and ssh tools (#2261) 2025-12-08 19:21:10 -08:00
Waleed
5af67d08ba feat(i18n): update translations (#2259)
* feat(i18n): update translations

* fix chinese page

---------

Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com>
2025-12-08 17:58:49 -08:00
Waleed
209b0f1906 feat(tools): added duckduckgo (#2258) 2025-12-08 17:34:18 -08:00
Waleed
e067b584ee feat(admin): updated admin routes to consolidate duplicate behavior (#2257)
* feat(admin): updated admin routes to consolidate duplicate behavior

* ack PR comments
2025-12-08 17:29:55 -08:00
Waleed
87084edbe6 fix(timeouts): increased timeouts for function execution & agent (#2256) 2025-12-08 16:25:58 -08:00
Vikhyath Mondreti
99e0b81233 improvement(org): remove dead seats get endpoint (#2247)
* improvement(org): remove dead seats get endpoint

* remove more dead code

* remove fallback limit
2025-12-08 15:38:08 -08:00
Vikhyath Mondreti
c197b04bcc fix(migration): migration got removed by force push (#2253) 2025-12-08 14:07:03 -08:00
Waleed
4fb039f3e8 feat(i18n): update translations (#2249)
Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com>
2025-12-08 12:44:37 -08:00
Waleed
feb591867e fix(docs): fix salesforce docs & update styling (#2248) 2025-12-08 12:08:53 -08:00
Waleed
598c3bc684 feat(i18n): update translations (#2246)
Co-authored-by: icecrasher321 <icecrasher321@users.noreply.github.com>
2025-12-08 10:45:48 -08:00
Vikhyath Mondreti
01b2f809d1 feat(cursor): add cursor block and tools (#2245)
* fix(autolayout): reduce horizontal spacing in autolayout

* feat(cursor): add cursor cloud agents tools

* address greptile prompt
2025-12-08 09:49:28 -08:00
Waleed
d200f664e8 feat(i18n): update translations (#2244)
Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com>
2025-12-08 00:26:39 -08:00
Waleed
e2b077f582 fix(conditional): don't error in condition blocks when no conditions are satisfied (#2243)
* fix(conditional): don't error in condition blocks when no conditions are satisfied

* updated docs
2025-12-08 00:15:51 -08:00
Waleed
d09fd6cf92 fix(import): fixed trigger save on export/import flow (#2239)
* fix(import): fixed trigger save on export/import flow

* optimized test runners

* ack PR comments
2025-12-07 23:00:28 -08:00
Vikhyath Mondreti
434d12956e fix(autolayout): reduce horizontal spacing in autolayout (#2240) 2025-12-07 22:36:10 -08:00
Waleed
b49b8eeb9d feat(i18n): update translations (#2238)
Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com>
2025-12-07 19:43:12 -08:00
Waleed
5b9f3d3d02 feat(docs): added additional self-hosting documentation (#2237)
* feat(docs): added additional self-hosting documentation

* added more
2025-12-07 19:25:44 -08:00
Vikhyath Mondreti
05022e3468 fix(copilot-autolayout): more subflow cases and deal with resizing (#2236)
* fix sidebar hydration issue accurately

* improve autolayout subflow cases

* fix DOM structure to prevent HMR hydration issues
2025-12-07 19:14:18 -08:00
Vikhyath Mondreti
9f884c151c feat(credits): prepurchase credits (#2174)
* add credit balances

* add migrations

* remove handling for disputes

* fix idempotency key

* prep merge into staging

* code cleanup

* add back migration + prevent enterprise from purchasing credits

* remove circular import

* add dispute blocking

* fix lint

* fix: hydration error

* remove migration before merge staging
'

* moved credits addition to invoice payment success

---------

Co-authored-by: Emir Karabeg <emirkarabeg@berkeley.edu>
2025-12-06 19:11:58 -08:00
Adam Gough
92c03b825b improvement(salesforce): fixed refresh and added endpoints (#2177)
* added salesforce other tools

* modified scope and change salesforce refresh

* fixed refresh

* remove dup code
2025-12-06 19:03:25 -08:00
Vikhyath Mondreti
e9d53042f6 fix(inactivity-notif): add cron to helm (#2235) 2025-12-06 18:54:58 -08:00
Waleed
22c9384f19 improvement(code): removed dedicated code-optimized virtualized viewer, baked it into the code component (#2234)
* improvement(code): removed dedicated code-optimized virtualized viewer, baked it into the code component

* ack PR comments
2025-12-06 18:12:51 -08:00
Waleed
6e02a73259 feat(i18n): update translations (#2233)
Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com>
2025-12-06 17:57:46 -08:00
Adam Gough
683b4476fa fix(google-drive): added support for shared drive (#2232)
* added param for shared drive

* removed comments

---------

Co-authored-by: aadamgough <adam@sim.ai>
2025-12-06 17:37:02 -08:00
Adam Gough
ae7937280e feat(google-groups): added google groups (#2229)
* added google-groups

* added a few more endpoints

* removed comments

* removed named imports, fixed comments

* fixed google groups tool names

---------

Co-authored-by: aadamgough <adam@sim.ai>
Co-authored-by: waleed <walif6@gmail.com>
2025-12-06 17:32:30 -08:00
Waleed
7bfc6ebe48 fix(copilot): fixed copilot code component overflowing gutter (#2230) 2025-12-06 15:20:41 -08:00
Vikhyath Mondreti
23ef39de72 improvement(ui): revert settings > envvar ui (#2227) 2025-12-06 14:26:39 -08:00
Waleed
507fc112be feat(admin): added more billing, subscriptions, and organization admin API routes (#2225)
* feat(admin): added more billing, subscriptions, and organization admin API routes

* cleanup

* ack PR comments

* cleanup

* ack PR comment
2025-12-06 14:13:50 -08:00
Waleed
26670e289d fix(hosted): fixed hosted providers to exact string match model names rather than check provider names (#2228) 2025-12-06 13:33:34 -08:00
Waleed
e52bd575e7 feat(i18n): update translations (#2226)
Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com>
2025-12-06 13:33:00 -08:00
Emir Karabeg
0b28128f25 feat(tools): google slides tool, terminal console virtualization, tool fixes (#2209)
* feat: google slides tool

* fix oauth for slides, add remaining endpoints, update docs

* optimize json dump viewer using react window

* change slides to use google drive credentials

* fix some tools

* ack PR comments

---------

Co-authored-by: waleed <walif6@gmail.com>
Co-authored-by: Vikhyath Mondreti <vikhyath@simstudio.ai>
2025-12-06 12:16:21 -08:00
Vikhyath Mondreti
a50edf8131 fix(autolayout): subflow calculation (#2223)
* fix(autolayout): subflow calculation

* cleanup code

* fix missing import

* add back missing import
2025-12-05 16:31:10 -08:00
Siddharth Ganesan
656dfafb8f fix(copilot): fix function execute tool (#2222) 2025-12-05 15:19:39 -08:00
Siddharth Ganesan
9f604f379e fix(copilot): fix tool call flash (#2221)
* Fix copilot tool call flash

* Fix lint
2025-12-05 15:12:35 -08:00
Siddharth Ganesan
75da06adf8 fix(copilot): fix hanging tool calls (#2218) 2025-12-05 14:59:38 -08:00
Vikhyath Mondreti
c7b473f55f fix(build): added trigger.dev sdk mock to tests (#2216) 2025-12-05 14:24:52 -08:00
Vikhyath Mondreti
fb4c9827f8 fix(custom-bot-slack): dependsOn incorrectly set for bot_token (#2214)
* fix(custom-bot-slack): dependsOn incorrectly set for bot_token"

* fix other references to be compatible

* fix dependsOn for things depending on authMethod"
2025-12-05 13:54:52 -08:00
Siddharth Ganesan
4fd5f0051f fix(copilot): validation (#2215)
* Fix validation error

* Fix lint
2025-12-05 13:46:50 -08:00
Waleed
002713ec4b feat(i18n): update translations (#2208)
Co-authored-by: icecrasher321 <icecrasher321@users.noreply.github.com>
2025-12-05 13:29:44 -08:00
Waleed
5d6c1f7b88 feat(tools): added more slack tools (#2212) 2025-12-05 13:22:35 -08:00
Siddharth Ganesan
7752beac01 fix(import): fix array errors on import/export (#2211)
* Fix import/export

* Remove copilot gdrive tools

* Null

* Fix lint

* Add copilot validation

* Fix validation
2025-12-05 13:07:01 -08:00
Emir Karabeg
7101dc58d4 improvement: loading, optimistic actions (#2193)
* improvement: loading, optimistic operations

* improvement: folders update

* fix usage indicator rounding + new tsconfig

* remove redundant checks

* fix hmr case for missing workflow loads

* add abstraction for zustand/react hybrid optimism

* remove comments

---------

Co-authored-by: Vikhyath Mondreti <vikhyath@simstudio.ai>
2025-12-05 13:01:12 -08:00
Siddharth Ganesan
58251e28e6 feat(copilot): superagent (#2201)
* Superagent poc

* Checkpoint brokeN

* tool call rag

* Fix

* Fixes

* Improvements

* Creds stuff

* Fix

* Fix tools

* Fix stream

* Prompt

* Update sheets descriptions

* Better

* Copilot components

* Delete stuff

* Remove db migration

* Fix migrations

* Fix things

* Copilot side superagent

* Build workflow from chat

* Combine superagent into copilkot

* Render tools

* Function execution

* Max mode indicators

* Tool call confirmations

* Credential settings

* Remove betas

* Bump version

* Dropdown options in block metadata

* Copilot kb tools

* Fix lint

* Credentials modal

* Fix lint

* Cleanup

* Env var resolution in superagent tools

* Get id for workflow vars

* Fix insert into subflow

* Fix executor for while and do while loops

* Fix metadata for parallel

* Remove db migration

* Rebase

* Add migrations back

* Clean up code

* Fix executor logic issue

* Cleanup

* Diagram tool

* Fix tool naems

* Comment out g3p

* Remove popup option

* Hide o3

* Remove db migration

* Fix merge conflicts

* Fix lint

* Fix tests

* Remove webhook change

* Remove cb change

* Fix lint

* Fix

* Fix lint

* Fix build

* comment out gemini

* Add gemini back

* Remove bad test

* Fix

* Fix test

* Fix

* Nuke bad test

* Fix lint

---------

Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com>
Co-authored-by: Waleed <walif6@gmail.com>
Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com>
2025-12-04 21:26:18 -08:00
Vikhyath Mondreti
8ef9a45125 fix(env-vars): refactor for workspace/personal env vars to work with server side execution correctly (#2197)
* fix(env-var-resolution): new executor env var resolution changes

* add sessionuser id"

* cleanup code

* add doc update

* fix build

* fix client session pass through"

* add type change

* fix env var with hitl

* fix types
2025-12-04 21:08:20 -08:00
Waleed
ca818a6503 feat(admin): added admin APIs for admin management (#2206) 2025-12-04 20:52:32 -08:00
Waleed
1b903f2db5 fix(images): updated helm charts with branding URL guidance, removed additional nextjs image optimizations (#2205) 2025-12-04 19:39:51 -08:00
Waleed
414a54c358 feat(i18n): update translations (#2204)
Co-authored-by: icecrasher321 <icecrasher321@users.noreply.github.com>
2025-12-04 19:03:03 -08:00
Vikhyath Mondreti
3b9f0f9ce2 feat(error-notifications): workspace-level configuration of slack, email, webhook notifications for workflow execution (#2157)
* feat(notification): slack, email, webhook notifications from logs

* retain search params for filters to link in notification

* add alerting rules

* update selector

* fix lint

* add limits on num of emails and notification triggers per workspace

* address greptile comments

* add search to combobox

* move notifications to react query

* fix lint

* fix email formatting

* add more alert types

* fix imports

* fix test route

* use emcn componentfor modal

* refactor: consolidate notification config fields into jsonb objects

* regen migration

* fix delete notif modal ui

* make them multiselect dropdowns

* update tag styling

* combobox font size with multiselect tags'
2025-12-04 18:29:22 -08:00
Waleed
dcbdcb43aa chore(deps): upgrade to nextjs 16 (#2203)
* chore(deps): upgrade to nextjs 16

* upgraded fumadocs

* ensure vercel uses bun

* fix build

* fix bui;d

* remove redundant vercel.json
2025-12-04 17:55:37 -08:00
Emir Karabeg
1642ed754b improvement: modal UI (#2202)
* fix: trigger-save delete modal

* improvement: old modal styling
2025-12-04 17:10:59 -08:00
Vikhyath Mondreti
d22b5783be fix(enterprise-plan): seats should be taken from metadata (#2200)
* fix(enterprise): seats need to be picked up from metadata not column

* fix env var access

* fix user avatar
2025-12-04 16:22:29 -08:00
Waleed
8e7d8c93e3 fix(profile-pics): remove sharp dependency for serving profile pics in settings (#2199) 2025-12-04 15:46:10 -08:00
Waleed
ca3eb5b5a5 fix(subscription): fixed text clipping on subscription panel (#2198) 2025-12-04 15:12:50 -08:00
Waleed
dc5a2b1ad1 fix(envvar): fix envvar dropdown positioning, remove dead code (#2196) 2025-12-04 14:35:25 -08:00
Waleed
3f84ed9b72 fix(settings): fix long description on wordpress integration (#2195) 2025-12-04 14:10:50 -08:00
Waleed
b54ca604b6 fix(chat): fix download & clear popover staying open after pressing in floating chat (#2192) 2025-12-04 13:03:12 -08:00
Waleed
e581608472 fix(copilot): fix code viewer in copilot user inp (#2191) 2025-12-04 12:50:11 -08:00
Emir Karabeg
a4d4dfaa32 fix: tooltip on env settings (#2190) 2025-12-04 12:39:37 -08:00
Waleed
099e86e3c1 fix(settings): fixed sso form validation (#2189) 2025-12-04 12:34:28 -08:00
Emir Karabeg
042de6a944 fix: modals, settings, panel (#2187) 2025-12-04 12:01:36 -08:00
Waleed
f44e7e34ec fix(input): allow test value if no real value provided for inputs in deployed executions (#2186)
* fix(input): allow test value if no real value provided for inputs in deployed executions

* ack PR comments
2025-12-04 11:41:08 -08:00
Waleed
6bfb643ef8 fix(polling): fixed gmail and outlook polling to respect disabled status (#2185) 2025-12-04 11:31:33 -08:00
Siddharth Ganesan
cd5d1c0958 fix(executor): nested error activation (#2184) 2025-12-04 10:55:26 -08:00
Waleed
9df87d9b88 fix(mcp): remove client-side cache and reduce server cache from 5m to 30s (#2182)
* fix(mcp): remove client-side cache and reduce server cache from 5m to 30s

* ack PR comments
2025-12-04 08:51:06 -08:00
Waleed
c864d17991 chore(deps): upgrade to bun v1.3 (#2181)
* chore(deps): upgrade to bun v1.3

* ack PR comments
2025-12-04 00:43:01 -08:00
Emir Karabeg
36c91f4ca9 feat: terminal serach; fix: delete-modal (#2176) 2025-12-04 00:41:38 -08:00
Waleed
6d4ba6d5cf chore(deps): upgrade from nextjs 15.4.1 to 15.4.8 and upgrade turborepo (#2180) 2025-12-04 00:20:50 -08:00
Waleed
5d791cd55f feat(i18n): update translations (#2178)
* feat(i18n): update translations

* memory optimizations

---------

Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com>
2025-12-04 00:18:21 -08:00
Waleed
5630e133fd feat(tools): added zoom, elasticsearch, dropbox, kalshi, polymarket, datadog, ahrefs, gitlab, shopify, ssh, wordpress (#2175)
* feat(tools): added zoom, elasticsearch, dropbox, box, datadog, ahrefs, gitlab, shopify, ssh, wordpress

* added polymarket & kalshi, fixed ssh

* fix search modal bg instead of bgColor, added polymarket and kalshi new endpoints

* split up grafana

* update docs script & docs

* added more zoom endpoints

* remove unused box creds

* finished wordpress, shopify, kalshi

* cleanup

* revert envvar dropdown changes

* updated grafana endpoints
2025-12-03 20:09:27 -08:00
Emir Karabeg
08a11935af fix: commented out light mode (#2173) 2025-12-03 16:52:35 -08:00
Emir Karabeg
3158b62da8 feat: light, emcn, modals (#2104)
* feat: aligned current unassigned hex to old globals

* feat: emcn modal, help-modal; improvement(ui): emcn textarea, emcn combobox, messages-input

* improvement(modal): ui, transition

* improvement: terminal expand, variables styling; refactor(float): hooks

* improvement(invite-modal): emcn aligned

* feat(terminal): height memory

* improvement(invite-modal): skeleton ui

* improvement(invite-modal): badges UI

* feat: deploy-modal, emcn

* refactor: deleted duplicate dark styles

* feat: emcn, settings, light

* improvement: emcn, settings

* improvement: settings-modal, emcn

* improvement: SSO, light-mode

* improvement: EMCN, light

* fix issues, run lint

* fix: reverted mock data
2025-12-03 16:31:27 -08:00
Vikhyath Mondreti
7de721e090 fix(logs): logging with error issues for model costs (#2169)
* fix(async-execution): restore async executions

* fix schedules trace span collection'

* fix execution trace spans for schedules + cost tracking when workflow errors
2025-12-02 20:54:17 -08:00
Waleed
3e83fb398c fix(trace-spans): fix input/output token count in trace spans (#2168) 2025-12-02 20:36:16 -08:00
Waleed
a6e3c92c10 fix(jira): fixed incorrect dependsOn for jira project/issue subblcks (#2167) 2025-12-02 20:18:01 -08:00
Vikhyath Mondreti
9670d96eca fix(templates-page): loading issue due to loading extensive workflow block in preview for all listings (#2166)
* fix(templates-page): loading issue due to loading extensive workflow block in preview for all listings

* add more properties
2025-12-02 19:47:48 -08:00
Waleed
eb0d4cbd57 fix(templates): fixed verified creator status displaying & tooltip on templates (#2165) 2025-12-02 19:23:35 -08:00
Waleed
ffd12e1da4 fix(subblocks): update guardrails pii selector component to use emcn (#2164) 2025-12-02 18:36:34 -08:00
Waleed
84c2335a37 feat(i18n): update translations (#2163)
Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com>
2025-12-02 16:37:30 -08:00
Waleed
2ab8cec8c3 fix(icons): fix mailgun, restore tts and smtp blocks (#2162)
* fix(icons): fix mailgun

* register smtp block that was missing
2025-12-02 16:21:43 -08:00
Waleed
bf54c88ae4 feat(models): added xai models and updated gemini pricing (#2161) 2025-12-02 14:31:23 -08:00
Waleed
41c068c023 improvement(lib): refactored lib/ to be more aligned with queries and api directory (#2160)
* fix(lib): consolidate into core dir in lib/

* refactored lib/
2025-12-02 14:17:41 -08:00
Waleed
6fda9bd72e feat(models): added latest mistral models (#2159) 2025-12-02 13:46:00 -08:00
Waleed
3b4f227e43 fix(mcp): reuse sessionID for consecutive MCP tool calls, fix dynamic args clearing, fix refreshing tools on save (#2158)
* fix(mcp): reuse sessionID for consecutive MCP tool calls, fix dynamic args clearing, fix refreshing tools on save

* prevent defaults

* fix subblock text area

* added placeholders in tool-inp for mcp dynamic args

* ack PR comments
2025-12-02 12:37:59 -08:00
1692 changed files with 155173 additions and 24954 deletions

View File

@@ -8,7 +8,7 @@ ENSURE that you use the logger.info and logger.warn and logger.error instead of
## Comments
You must use TSDOC for comments. Do not use ==== for comments to separate sections.
You must use TSDOC for comments. Do not use ==== for comments to separate sections. Do not leave any comments that are not TSDOC.
## Globals styles

View File

@@ -1,4 +1,4 @@
FROM oven/bun:1.2.22-alpine
FROM oven/bun:1.3.3-alpine
# Install necessary packages for development
RUN apk add --no-cache \

View File

@@ -17,7 +17,7 @@ jobs:
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: 1.2.22
bun-version: 1.3.3
- name: Setup Node
uses: actions/setup-node@v4

View File

@@ -26,7 +26,7 @@ jobs:
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: 1.2.22
bun-version: 1.3.3
- name: Cache Bun dependencies
uses: actions/cache@v4
@@ -126,7 +126,7 @@ jobs:
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: 1.2.22
bun-version: 1.3.3
- name: Cache Bun dependencies
uses: actions/cache@v4

View File

@@ -16,7 +16,7 @@ jobs:
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: 1.2.22
bun-version: 1.3.3
- name: Cache Bun dependencies
uses: actions/cache@v4

View File

@@ -16,7 +16,7 @@ jobs:
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: 1.2.22
bun-version: 1.3.3
- name: Setup Node.js for npm publishing
uses: actions/setup-node@v4

View File

@@ -16,7 +16,7 @@ jobs:
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: 1.2.22
bun-version: 1.3.3
- name: Setup Node.js for npm publishing
uses: actions/setup-node@v4

View File

@@ -16,7 +16,7 @@ jobs:
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: 1.2.22
bun-version: 1.3.3
- name: Setup Node
uses: actions/setup-node@v4

View File

@@ -89,6 +89,36 @@ Wait for the model to download, then visit [http://localhost:3000](http://localh
docker compose -f docker-compose.ollama.yml exec ollama ollama pull llama3.1:8b
```
#### Using an External Ollama Instance
If you already have Ollama running on your host machine (outside Docker), you need to configure the `OLLAMA_URL` to use `host.docker.internal` instead of `localhost`:
```bash
# Docker Desktop (macOS/Windows)
OLLAMA_URL=http://host.docker.internal:11434 docker compose -f docker-compose.prod.yml up -d
# Linux (add extra_hosts or use host IP)
docker compose -f docker-compose.prod.yml up -d # Then set OLLAMA_URL to your host's IP
```
**Why?** When running inside Docker, `localhost` refers to the container itself, not your host machine. `host.docker.internal` is a special DNS name that resolves to the host.
For Linux users, you can either:
- Use your host machine's actual IP address (e.g., `http://192.168.1.100:11434`)
- Add `extra_hosts: ["host.docker.internal:host-gateway"]` to the simstudio service in your compose file
#### Using vLLM
Sim also supports [vLLM](https://docs.vllm.ai/) for self-hosted models with OpenAI-compatible API:
```bash
# Set these environment variables
VLLM_BASE_URL=http://your-vllm-server:8000
VLLM_API_KEY=your_optional_api_key # Only if your vLLM instance requires auth
```
When running with Docker, use `host.docker.internal` if vLLM is on your host machine (same as Ollama above).
### Self-hosted: Dev Containers
1. Open VS Code with the [Remote - Containers extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)
@@ -190,6 +220,46 @@ Copilot is a Sim-managed service. To use Copilot on a self-hosted instance:
- Go to https://sim.ai → Settings → Copilot and generate a Copilot API key
- Set `COPILOT_API_KEY` environment variable in your self-hosted apps/sim/.env file to that value
## Environment Variables
Key environment variables for self-hosted deployments (see `apps/sim/.env.example` for full list):
| Variable | Required | Description |
|----------|----------|-------------|
| `DATABASE_URL` | Yes | PostgreSQL connection string with pgvector |
| `BETTER_AUTH_SECRET` | Yes | Auth secret (`openssl rand -hex 32`) |
| `BETTER_AUTH_URL` | Yes | Your app URL (e.g., `http://localhost:3000`) |
| `NEXT_PUBLIC_APP_URL` | Yes | Public app URL (same as above) |
| `ENCRYPTION_KEY` | Yes | Encryption key (`openssl rand -hex 32`) |
| `OLLAMA_URL` | No | Ollama server URL (default: `http://localhost:11434`) |
| `VLLM_BASE_URL` | No | vLLM server URL for self-hosted models |
| `COPILOT_API_KEY` | No | API key from sim.ai for Copilot features |
## Troubleshooting
### Ollama models not showing in dropdown (Docker)
If you're running Ollama on your host machine and Sim in Docker, change `OLLAMA_URL` from `localhost` to `host.docker.internal`:
```bash
OLLAMA_URL=http://host.docker.internal:11434 docker compose -f docker-compose.prod.yml up -d
```
See [Using an External Ollama Instance](#using-an-external-ollama-instance) for details.
### Database connection issues
Ensure PostgreSQL has the pgvector extension installed. When using Docker, wait for the database to be healthy before running migrations.
### Port conflicts
If ports 3000, 3002, or 5432 are in use, configure alternatives:
```bash
# Custom ports
NEXT_PUBLIC_APP_URL=http://localhost:3100 POSTGRES_PORT=5433 docker compose up -d
```
## Tech Stack
- **Framework**: [Next.js](https://nextjs.org/) (App Router)

View File

@@ -1,4 +1,4 @@
import { findNeighbour } from 'fumadocs-core/server'
import { findNeighbour } from 'fumadocs-core/page-tree'
import defaultMdxComponents from 'fumadocs-ui/mdx'
import { DocsBody, DocsDescription, DocsPage, DocsTitle } from 'fumadocs-ui/page'
import { ChevronLeft, ChevronRight } from 'lucide-react'
@@ -182,13 +182,14 @@ export default async function Page(props: { params: Promise<{ slug?: string[]; l
tableOfContent={{
style: 'clerk',
enabled: true,
header: <div className='mb-2 font-medium text-sm'>On this page</div>,
header: (
<div key='toc-header' className='mb-2 font-medium text-sm'>
On this page
</div>
),
footer: <TOCFooter />,
single: false,
}}
article={{
className: 'scroll-smooth max-sm:pb-16',
}}
tableOfContentPopover={{
style: 'clerk',
enabled: true,

View File

@@ -101,9 +101,6 @@ export default async function Layout({ children, params }: LayoutProps) {
<Navbar />
<DocsLayout
tree={source.pageTree[lang]}
themeSwitch={{
enabled: false,
}}
nav={{
title: (
<Image
@@ -128,7 +125,7 @@ export default async function Layout({ children, params }: LayoutProps) {
},
}}
containerProps={{
className: '!pt-10',
className: '!pt-0',
}}
>
{children}

View File

@@ -96,45 +96,48 @@ aside#nd-sidebar {
border-right: none !important;
}
/* Responsive sidebar positioning */
/* Mobile: Fumadocs handles drawer */
@media (min-width: 768px) and (max-width: 1024px) {
aside[data-sidebar],
aside#nd-sidebar {
left: var(--sidebar-offset) !important;
/* Fumadocs v16: Add sidebar placeholder styling for grid area */
[data-sidebar-placeholder] {
background: transparent !important;
}
/* Fumadocs v16: Hide sidebar panel (floating collapse button) */
[data-sidebar-panel] {
display: none !important;
}
/* Mobile only: Reduce gap between navbar and content */
@media (max-width: 1023px) {
#nd-docs-layout {
margin-top: -25px;
}
}
/* Desktop layout alignment */
@media (min-width: 1025px) {
[data-sidebar-container] {
margin-left: var(--sidebar-offset) !important;
}
aside[data-sidebar],
aside#nd-sidebar {
left: var(--sidebar-offset) !important;
}
/* TOC positioning - target all possible selectors */
[data-toc],
aside[data-toc],
div[data-toc],
.fd-toc,
#nd-toc,
nav[data-toc],
aside:has([role="complementary"]) {
right: var(--toc-offset) !important;
/* Desktop only: Apply custom navbar offset, sidebar width and margin offsets */
/* On mobile, let fumadocs handle the layout natively */
@media (min-width: 1024px) {
:root {
--fd-banner-height: 64px !important;
}
/* Alternative TOC container targeting */
[data-docs-page] > aside:last-child,
main ~ aside {
right: var(--toc-offset) !important;
#nd-docs-layout {
--fd-docs-height: calc(100dvh - 64px) !important;
--fd-sidebar-width: 300px !important;
margin-left: var(--sidebar-offset) !important;
margin-right: var(--toc-offset) !important;
}
/* Hide fumadocs nav on desktop - we use custom navbar there */
#nd-docs-layout > header {
display: none !important;
}
}
/* Sidebar spacing - compact like turborepo */
[data-sidebar-viewport] {
padding: 0.5rem 20px 12px;
/* Fumadocs v16: [data-sidebar-viewport] doesn't exist, target #nd-sidebar > div instead */
[data-sidebar-viewport],
#nd-sidebar > div {
padding: 0.5rem 12px 12px;
background: transparent !important;
background-color: transparent !important;
}
@@ -142,8 +145,9 @@ aside#nd-sidebar {
/* Override sidebar item styling to match Raindrop */
/* Target Link and button elements in sidebar - override Fumadocs itemVariants */
/* Exclude the small chevron-only toggle buttons */
#nd-sidebar a,
#nd-sidebar button:not([aria-label*="ollapse"]):not([aria-label*="xpand"]) {
/* Using html prefix for higher specificity over Tailwind v4 utilities */
html #nd-sidebar a,
html #nd-sidebar button:not([aria-label*="ollapse"]):not([aria-label*="xpand"]) {
font-size: 0.9375rem !important; /* 15px to match Raindrop */
line-height: 1.4 !important;
padding: 0.5rem 0.75rem !important; /* More compact like Raindrop */
@@ -154,14 +158,14 @@ aside#nd-sidebar {
}
/* Dark mode sidebar text */
.dark #nd-sidebar a,
.dark #nd-sidebar button:not([aria-label*="ollapse"]):not([aria-label*="xpand"]) {
html.dark #nd-sidebar a,
html.dark #nd-sidebar button:not([aria-label*="ollapse"]):not([aria-label*="xpand"]) {
color: rgba(255, 255, 255, 0.6) !important;
}
/* Light mode sidebar text */
:root:not(.dark) #nd-sidebar a,
:root:not(.dark) #nd-sidebar button:not([aria-label*="ollapse"]):not([aria-label*="xpand"]) {
html:not(.dark) #nd-sidebar a,
html:not(.dark) #nd-sidebar button:not([aria-label*="ollapse"]):not([aria-label*="xpand"]) {
color: rgba(0, 0, 0, 0.6) !important;
}
@@ -194,7 +198,10 @@ aside#nd-sidebar {
}
/* Section headers should be slightly larger */
[data-sidebar-viewport] [data-separator] {
/* Fumadocs v16: Also target #nd-sidebar for compatibility */
[data-sidebar-viewport] [data-separator],
#nd-sidebar [data-separator],
#nd-sidebar p {
font-size: 0.75rem !important;
font-weight: 600 !important;
text-transform: uppercase !important;
@@ -218,61 +225,61 @@ aside#nd-sidebar {
}
/* Dark mode active state */
.dark #nd-sidebar a[data-active="true"],
.dark #nd-sidebar button[data-active="true"],
.dark #nd-sidebar a.bg-fd-primary\/10,
.dark #nd-sidebar a.text-fd-primary,
.dark #nd-sidebar a[class*="bg-fd-primary"],
.dark #nd-sidebar a[class*="text-fd-primary"],
.dark #nd-sidebar a.bg-purple-50\/80,
.dark #nd-sidebar a.text-purple-600,
.dark #nd-sidebar a[class*="bg-purple"],
.dark #nd-sidebar a[class*="text-purple"] {
html.dark #nd-sidebar a[data-active="true"],
html.dark #nd-sidebar button[data-active="true"],
html.dark #nd-sidebar a.bg-fd-primary\/10,
html.dark #nd-sidebar a.text-fd-primary,
html.dark #nd-sidebar a[class*="bg-fd-primary"],
html.dark #nd-sidebar a[class*="text-fd-primary"],
html.dark #nd-sidebar a.bg-purple-50\/80,
html.dark #nd-sidebar a.text-purple-600,
html.dark #nd-sidebar a[class*="bg-purple"],
html.dark #nd-sidebar a[class*="text-purple"] {
background-color: rgba(255, 255, 255, 0.15) !important;
color: rgba(255, 255, 255, 1) !important;
}
/* Light mode active state */
:root:not(.dark) #nd-sidebar a[data-active="true"],
:root:not(.dark) #nd-sidebar button[data-active="true"],
:root:not(.dark) #nd-sidebar a.bg-fd-primary\/10,
:root:not(.dark) #nd-sidebar a.text-fd-primary,
:root:not(.dark) #nd-sidebar a[class*="bg-fd-primary"],
:root:not(.dark) #nd-sidebar a[class*="text-fd-primary"],
:root:not(.dark) #nd-sidebar a.bg-purple-50\/80,
:root:not(.dark) #nd-sidebar a.text-purple-600,
:root:not(.dark) #nd-sidebar a[class*="bg-purple"],
:root:not(.dark) #nd-sidebar a[class*="text-purple"] {
html:not(.dark) #nd-sidebar a[data-active="true"],
html:not(.dark) #nd-sidebar button[data-active="true"],
html:not(.dark) #nd-sidebar a.bg-fd-primary\/10,
html:not(.dark) #nd-sidebar a.text-fd-primary,
html:not(.dark) #nd-sidebar a[class*="bg-fd-primary"],
html:not(.dark) #nd-sidebar a[class*="text-fd-primary"],
html:not(.dark) #nd-sidebar a.bg-purple-50\/80,
html:not(.dark) #nd-sidebar a.text-purple-600,
html:not(.dark) #nd-sidebar a[class*="bg-purple"],
html:not(.dark) #nd-sidebar a[class*="text-purple"] {
background-color: rgba(0, 0, 0, 0.07) !important;
color: rgba(0, 0, 0, 0.9) !important;
}
/* Dark mode hover state */
.dark #nd-sidebar a:hover:not([data-active="true"]),
.dark #nd-sidebar button:hover:not([data-active="true"]) {
html.dark #nd-sidebar a:hover:not([data-active="true"]),
html.dark #nd-sidebar button:hover:not([data-active="true"]) {
background-color: rgba(255, 255, 255, 0.08) !important;
}
/* Light mode hover state */
:root:not(.dark) #nd-sidebar a:hover:not([data-active="true"]),
:root:not(.dark) #nd-sidebar button:hover:not([data-active="true"]) {
html:not(.dark) #nd-sidebar a:hover:not([data-active="true"]),
html:not(.dark) #nd-sidebar button:hover:not([data-active="true"]) {
background-color: rgba(0, 0, 0, 0.03) !important;
}
/* Dark mode - ensure active/selected items don't change on hover */
.dark #nd-sidebar a.bg-purple-50\/80:hover,
.dark #nd-sidebar a[class*="bg-purple"]:hover,
.dark #nd-sidebar a[data-active="true"]:hover,
.dark #nd-sidebar button[data-active="true"]:hover {
html.dark #nd-sidebar a.bg-purple-50\/80:hover,
html.dark #nd-sidebar a[class*="bg-purple"]:hover,
html.dark #nd-sidebar a[data-active="true"]:hover,
html.dark #nd-sidebar button[data-active="true"]:hover {
background-color: rgba(255, 255, 255, 0.15) !important;
color: rgba(255, 255, 255, 1) !important;
}
/* Light mode - ensure active/selected items don't change on hover */
:root:not(.dark) #nd-sidebar a.bg-purple-50\/80:hover,
:root:not(.dark) #nd-sidebar a[class*="bg-purple"]:hover,
:root:not(.dark) #nd-sidebar a[data-active="true"]:hover,
:root:not(.dark) #nd-sidebar button[data-active="true"]:hover {
html:not(.dark) #nd-sidebar a.bg-purple-50\/80:hover,
html:not(.dark) #nd-sidebar a[class*="bg-purple"]:hover,
html:not(.dark) #nd-sidebar a[data-active="true"]:hover,
html:not(.dark) #nd-sidebar button[data-active="true"]:hover {
background-color: rgba(0, 0, 0, 0.07) !important;
color: rgba(0, 0, 0, 0.9) !important;
}
@@ -351,7 +358,16 @@ aside[data-sidebar] > *:not([data-sidebar-viewport]) {
[data-sidebar] [data-title],
#nd-sidebar > a:first-child,
#nd-sidebar > div:first-child > a:first-child,
#nd-sidebar img[alt="Sim"] {
#nd-sidebar img[alt="Sim"],
/* Hide theme toggle at bottom of sidebar on desktop */
#nd-sidebar
> footer,
#nd-sidebar footer,
aside#nd-sidebar > *:last-child:not(div),
#nd-sidebar > button:last-child,
#nd-sidebar button[aria-label*="theme" i],
#nd-sidebar button[aria-label*="Theme"],
#nd-sidebar > div:last-child > button {
display: none !important;
visibility: hidden !important;
height: 0 !important;
@@ -498,13 +514,14 @@ main article,
============================================ */
/* Main content area - center and constrain like turborepo/raindrop */
/* Note: --sidebar-offset and --toc-offset are now applied at #nd-docs-layout level */
main[data-main] {
max-width: var(--spacing-fd-container, 1400px);
margin-left: auto;
margin-right: auto;
padding-top: 1rem;
padding-left: calc(var(--sidebar-offset) + var(--content-gap));
padding-right: calc(var(--toc-offset) + var(--content-gap));
padding-left: var(--content-gap);
padding-right: var(--content-gap);
order: 1 !important;
}

View File

@@ -1,126 +1,194 @@
'use client'
import { type ReactNode, useEffect, useState } from 'react'
import type { PageTree } from 'fumadocs-core/server'
import type { Folder, Item, Separator } from 'fumadocs-core/page-tree'
import { ChevronRight } from 'lucide-react'
import Link from 'next/link'
import { usePathname } from 'next/navigation'
import { cn } from '@/lib/utils'
function isActive(url: string, pathname: string, nested = true): boolean {
return url === pathname || (nested && pathname.startsWith(`${url}/`))
const LANG_PREFIXES = ['/en', '/es', '/fr', '/de', '/ja', '/zh']
function stripLangPrefix(path: string): string {
for (const prefix of LANG_PREFIXES) {
if (path === prefix) return '/'
if (path.startsWith(`${prefix}/`)) return path.slice(prefix.length)
}
return path
}
export function SidebarItem({ item }: { item: PageTree.Item }) {
function isActive(url: string, pathname: string, nested = true): boolean {
const normalizedPathname = stripLangPrefix(pathname)
const normalizedUrl = stripLangPrefix(url)
return (
normalizedUrl === normalizedPathname ||
(nested && normalizedPathname.startsWith(`${normalizedUrl}/`))
)
}
export function SidebarItem({ item }: { item: Item }) {
const pathname = usePathname()
const active = isActive(item.url, pathname, false)
return (
<li className='mb-[0.0625rem] list-none'>
<Link
href={item.url}
className={cn(
'block rounded-md px-2.5 py-1.5 font-normal text-[13px] leading-tight transition-colors',
'text-gray-600 dark:text-gray-400',
!active && 'hover:bg-gray-100/60 dark:hover:bg-gray-800/40',
active &&
'bg-purple-50/80 font-medium text-purple-600 dark:bg-purple-900/15 dark:text-purple-400'
)}
>
{item.name}
</Link>
</li>
<Link
href={item.url}
data-active={active}
className={cn(
// Mobile styles (default)
'flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-sm transition-colors',
'text-fd-muted-foreground hover:bg-fd-accent/50 hover:text-fd-accent-foreground',
active && 'bg-fd-primary/10 font-medium text-fd-primary',
// Desktop styles (lg+)
'lg:mb-[0.0625rem] lg:block lg:rounded-md lg:px-2.5 lg:py-1.5 lg:font-normal lg:text-[13px] lg:leading-tight',
'lg:text-gray-600 lg:dark:text-gray-400',
!active && 'lg:hover:bg-gray-100/60 lg:dark:hover:bg-gray-800/40',
active &&
'lg:bg-purple-50/80 lg:font-normal lg:text-purple-600 lg:dark:bg-purple-900/15 lg:dark:text-purple-400'
)}
>
{item.name}
</Link>
)
}
export function SidebarFolder({
item,
level,
children,
}: {
item: PageTree.Folder
level: number
children: ReactNode
}) {
export function SidebarFolder({ item, children }: { item: Folder; children: ReactNode }) {
const pathname = usePathname()
const hasActiveChild = checkHasActiveChild(item, pathname)
const hasChildren = item.children.length > 0
const [open, setOpen] = useState(hasActiveChild)
useEffect(() => {
setOpen(hasActiveChild)
}, [hasActiveChild])
const active = item.index ? isActive(item.index.url, pathname, false) : false
if (item.index && !hasChildren) {
return (
<Link
href={item.index.url}
data-active={active}
className={cn(
// Mobile styles (default)
'flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-sm transition-colors',
'text-fd-muted-foreground hover:bg-fd-accent/50 hover:text-fd-accent-foreground',
active && 'bg-fd-primary/10 font-medium text-fd-primary',
// Desktop styles (lg+)
'lg:mb-[0.0625rem] lg:block lg:rounded-md lg:px-2.5 lg:py-1.5 lg:font-normal lg:text-[13px] lg:leading-tight',
'lg:text-gray-600 lg:dark:text-gray-400',
!active && 'lg:hover:bg-gray-100/60 lg:dark:hover:bg-gray-800/40',
active &&
'lg:bg-purple-50/80 lg:font-normal lg:text-purple-600 lg:dark:bg-purple-900/15 lg:dark:text-purple-400'
)}
>
{item.name}
</Link>
)
}
return (
<li className='mb-[0.0625rem] list-none'>
{item.index ? (
<div className='flex items-center gap-0.5'>
<div className='flex flex-col lg:mb-[0.0625rem]'>
<div className='flex w-full items-center lg:gap-0.5'>
{item.index ? (
<Link
href={item.index.url}
data-active={active}
className={cn(
'block flex-1 rounded-md px-2.5 py-1.5 font-medium text-[13px] leading-tight transition-colors',
'text-gray-800 dark:text-gray-200',
!isActive(item.index.url, pathname, false) &&
'hover:bg-gray-100/60 dark:hover:bg-gray-800/40',
isActive(item.index.url, pathname, false) &&
'bg-purple-50/80 text-purple-600 dark:bg-purple-900/15 dark:text-purple-400'
// Mobile styles (default)
'flex flex-1 items-center gap-2 rounded-md px-2 py-1.5 text-sm transition-colors',
'text-fd-muted-foreground hover:bg-fd-accent/50 hover:text-fd-accent-foreground',
active && 'bg-fd-primary/10 font-medium text-fd-primary',
// Desktop styles (lg+)
'lg:block lg:flex-1 lg:rounded-md lg:px-2.5 lg:py-1.5 lg:font-medium lg:text-[13px] lg:leading-tight',
'lg:text-gray-800 lg:dark:text-gray-200',
!active && 'lg:hover:bg-gray-100/60 lg:dark:hover:bg-gray-800/40',
active &&
'lg:bg-purple-50/80 lg:text-purple-600 lg:dark:bg-purple-900/15 lg:dark:text-purple-400'
)}
>
{item.name}
</Link>
) : (
<button
onClick={() => setOpen(!open)}
className='cursor-pointer rounded p-1 transition-colors hover:bg-gray-100/60 dark:hover:bg-gray-800/40'
aria-label={open ? 'Collapse' : 'Expand'}
className={cn(
// Mobile styles (default)
'flex flex-1 items-center gap-2 rounded-md px-2 py-1.5 text-sm transition-colors',
'text-fd-muted-foreground hover:bg-fd-accent/50',
// Desktop styles (lg+)
'lg:flex lg:w-full lg:cursor-pointer lg:items-center lg:justify-between lg:rounded-md lg:px-2.5 lg:py-1.5 lg:text-left lg:font-medium lg:text-[13px] lg:leading-tight',
'lg:text-gray-800 lg:hover:bg-gray-100/60 lg:dark:text-gray-200 lg:dark:hover:bg-gray-800/40'
)}
>
<span>{item.name}</span>
{/* Desktop-only chevron for non-index folders */}
<ChevronRight
className={cn(
'h-3 w-3 text-gray-400 transition-transform duration-200 ease-in-out dark:text-gray-500',
'ml-auto hidden h-3 w-3 flex-shrink-0 text-gray-400 transition-transform duration-200 ease-in-out lg:block dark:text-gray-500',
open && 'rotate-90'
)}
/>
</button>
</div>
) : (
<button
onClick={() => setOpen(!open)}
)}
{hasChildren && (
<button
onClick={() => setOpen(!open)}
className={cn(
// Mobile styles
'rounded p-1 hover:bg-fd-accent/50',
// Desktop styles
'lg:cursor-pointer lg:rounded lg:p-1 lg:transition-colors lg:hover:bg-gray-100/60 lg:dark:hover:bg-gray-800/40'
)}
aria-label={open ? 'Collapse' : 'Expand'}
>
<ChevronRight
className={cn(
// Mobile styles
'h-4 w-4 transition-transform',
// Desktop styles
'lg:h-3 lg:w-3 lg:text-gray-400 lg:duration-200 lg:ease-in-out lg:dark:text-gray-500',
open && 'rotate-90'
)}
/>
</button>
)}
</div>
{hasChildren && (
<div
className={cn(
'flex w-full cursor-pointer items-center justify-between rounded-md px-2.5 py-1.5 text-left font-medium text-[13px] leading-tight transition-colors',
'hover:bg-gray-100/60 dark:hover:bg-gray-800/40',
'text-gray-800 dark:text-gray-200'
'overflow-hidden transition-all duration-200 ease-in-out',
open ? 'max-h-[10000px] opacity-100' : 'max-h-0 opacity-0'
)}
>
<span>{item.name}</span>
<ChevronRight
className={cn(
'ml-auto h-3 w-3 flex-shrink-0 text-gray-400 transition-transform duration-200 ease-in-out dark:text-gray-500',
open && 'rotate-90'
)}
/>
</button>
{/* Mobile: simple indent */}
<div className='ml-4 flex flex-col gap-0.5 lg:hidden'>{children}</div>
{/* Desktop: styled with border */}
<ul className='mt-0.5 ml-2 hidden space-y-[0.0625rem] border-gray-200/60 border-l pl-2.5 lg:block dark:border-gray-700/60'>
{children}
</ul>
</div>
)}
<div
className={cn(
'overflow-hidden transition-all duration-200 ease-in-out',
open ? 'max-h-[10000px] opacity-100' : 'max-h-0 opacity-0'
)}
>
<ul className='mt-0.5 ml-2 space-y-[0.0625rem] border-gray-200/60 border-l pl-2.5 dark:border-gray-700/60'>
{children}
</ul>
</div>
</li>
</div>
)
}
export function SidebarSeparator({ item }: { item: PageTree.Separator }) {
export function SidebarSeparator({ item }: { item: Separator }) {
return (
<p className='mt-4 mb-1.5 px-2.5 font-semibold text-[10px] text-gray-500/80 uppercase tracking-wide dark:text-gray-500'>
<p
className={cn(
// Mobile styles
'mt-4 mb-2 px-2 font-medium text-fd-muted-foreground text-xs',
// Desktop styles
'lg:mt-4 lg:mb-1.5 lg:px-2.5 lg:font-semibold lg:text-[10px] lg:text-gray-500/80 lg:uppercase lg:tracking-wide lg:dark:text-gray-500'
)}
>
{item.name}
</p>
)
}
function checkHasActiveChild(node: PageTree.Folder, pathname: string): boolean {
function checkHasActiveChild(node: Folder, pathname: string): boolean {
if (node.index && isActive(node.index.url, pathname)) {
return true
}

View File

@@ -473,6 +473,30 @@ export function GithubIcon(props: SVGProps<SVGSVGElement>) {
)
}
export function GitLabIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg {...props} width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'>
<path
d='M22.65 14.39L12 22.13 1.35 14.39a.84.84 0 0 1-.3-.94l1.22-3.78 2.44-7.51A.42.42 0 0 1 4.82 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.49h8.1l2.44-7.51A.42.42 0 0 1 18.6 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.51L23 13.45a.84.84 0 0 1-.35.94z'
fill='#FC6D26'
/>
<path d='M12 22.13L16.05 9.67H7.95L12 22.13z' fill='#E24329' />
<path d='M12 22.13L7.95 9.67H1.69L12 22.13z' fill='#FC6D26' />
<path d='M1.69 9.67L.47 13.45a.84.84 0 0 0 .3.94L12 22.13 1.69 9.67z' fill='#FCA326' />
<path
d='M1.69 9.67H7.95L5.51 2.16A.42.42 0 0 0 4.93 2a.42.42 0 0 0-.11.18L1.69 9.67z'
fill='#E24329'
/>
<path d='M12 22.13L16.05 9.67H22.31L12 22.13z' fill='#FC6D26' />
<path d='M22.31 9.67L23.53 13.45a.84.84 0 0 1-.3.94L12 22.13 22.31 9.67z' fill='#FCA326' />
<path
d='M22.31 9.67H16.05l2.44-7.51A.42.42 0 0 1 19.07 2a.42.42 0 0 1 .11.18l3.13 7.49z'
fill='#E24329'
/>
</svg>
)
}
export function SerperIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg viewBox='0 0 654 600' xmlns='http://www.w3.org/2000/svg' {...props}>
@@ -649,6 +673,37 @@ export function GmailIcon(props: SVGProps<SVGSVGElement>) {
)
}
export function GrafanaIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg
{...props}
width='800px'
height='800px'
viewBox='0 0 16 16'
xmlns='http://www.w3.org/2000/svg'
fill='none'
>
<path
fill='url(#grafana-color-16__paint0_linear_2372_364)'
d='M13.985 7.175a4.408 4.408 0 00-.138-.802 5.035 5.035 0 00-1.054-1.998 2.96 2.96 0 00-.366-.393c.198-.787-.245-1.468-.245-1.468-.764-.046-1.237.227-1.42.363-.031-.015-.062-.03-.092-.03-.122-.046-.26-.106-.397-.137-.138-.045-.275-.075-.413-.12-.137-.031-.29-.061-.443-.092-.03 0-.046 0-.076-.015C9.005 1.44 8.058 1 8.058 1 7.004 1.666 6.79 2.604 6.79 2.604s0 .015-.016.06l-.183.046c-.076.03-.168.06-.244.076-.077.03-.168.06-.245.09-.153.076-.32.152-.473.228-.153.09-.306.181-.443.272-.016-.015-.03-.015-.03-.015-1.467-.545-2.766.136-2.766.136-.122 1.544.58 2.528.733 2.71-.03.09-.06.196-.091.287a8.104 8.104 0 00-.245 1.09c0 .06-.015.106-.015.166C1.397 8.386 1 9.748 1 9.748c1.13 1.287 2.46 1.377 2.46 1.377.167.303.366.575.58.848.092.106.183.212.29.318a3.014 3.014 0 00.061 2.149c1.268.045 2.093-.545 2.261-.681.122.045.26.076.382.106.382.106.78.151 1.176.181h.49c.595.848 1.634.954 1.634.954.748-.772.779-1.544.779-1.71v-.015-.03-.03c.153-.107.305-.228.443-.35a5.37 5.37 0 00.779-.892c.015-.03.046-.06.061-.09.84.045 1.436-.515 1.436-.515-.138-.863-.642-1.287-.749-1.378l-.015-.015h-.015s-.015 0-.015-.015c0-.045.015-.106.015-.151 0-.091.015-.182.015-.288V9.4v-.166-.076-.152l-.015-.075c-.015-.091-.03-.197-.061-.288a3.506 3.506 0 00-.428-1.044 3.856 3.856 0 00-.718-.848 3.784 3.784 0 00-.901-.575 3.347 3.347 0 00-.993-.272c-.168-.015-.336-.03-.504-.03H9.37 9.204c-.092.015-.169.015-.26.03-.336.06-.642.181-.932.348-.275.166-.52.363-.718.605a2.579 2.579 0 00-.459.757 2.63 2.63 0 00-.183.817v.393c.015.137.046.273.077.394.076.258.183.485.336.666.137.197.32.348.504.485.183.12.382.212.58.272.199.06.382.076.565.076h.244c.031 0 .047 0 .062-.015.015 0 .046-.015.061-.015.046-.016.076-.016.122-.03l.23-.092a.869.869 0 00.198-.12c.015-.016.03-.03.046-.03a.129.129 0 00.015-.198c-.046-.06-.122-.075-.183-.03-.015.015-.03.015-.046.03-.046.03-.107.046-.168.06l-.183.046c-.03 0-.061.015-.092.015H8.73a1.519 1.519 0 01-.825-.378 1.452 1.452 0 01-.306-.378 1.655 1.655 0 01-.168-.485c-.015-.09-.015-.166-.015-.257v-.106-.03c0-.046.015-.091.015-.136.061-.364.26-.727.55-1 .077-.075.153-.136.23-.181.076-.06.167-.106.259-.151.092-.046.183-.076.29-.106a.993.993 0 01.306-.046h.321c.107.015.229.03.336.046.214.045.427.12.626.242.397.212.733.56.947.969.107.211.183.423.214.65.015.06.015.121.015.167v.363c0 .06-.015.121-.015.182 0 .06-.015.12-.03.181l-.046.182c-.03.121-.077.242-.123.363a3.183 3.183 0 01-.366.666 3.002 3.002 0 01-1.91 1.18c-.122.016-.26.03-.382.046h-.198c-.061 0-.138 0-.199-.015a3.637 3.637 0 01-.81-.151 4.068 4.068 0 01-.748-.303 4.098 4.098 0 01-1.696-1.695 4.398 4.398 0 01-.29-.742c-.076-.257-.107-.514-.137-.772v-.302-.091c0-.136.015-.258.03-.394s.046-.272.061-.393c.03-.137.061-.258.092-.394a5.33 5.33 0 01.275-.741c.214-.47.504-.893.855-1.226.092-.091.184-.167.275-.243.092-.075.184-.136.29-.211a5.39 5.39 0 01.306-.182c.046-.03.107-.045.153-.076a.26.26 0 01.076-.03.26.26 0 01.077-.03c.107-.046.229-.091.336-.121.03-.015.06-.015.091-.03.03-.016.061-.016.092-.03.061-.016.122-.031.168-.046.03-.015.061-.015.092-.015.03 0 .06-.016.091-.016.03 0 .061-.015.092-.015l.046-.015h.046c.03 0 .06-.015.091-.015.03 0 .061-.015.107-.015.03 0 .077-.015.107-.015h.764c.23.015.443.03.657.075.428.076.84.212 1.207.394.366.182.702.393.977.636l.046.045.046.045c.03.03.061.061.107.091l.092.091.091.09c.123.122.23.258.336.394.199.258.367.515.49.772.014.015.014.03.03.046.015.015.015.03.015.045l.046.09.046.092.045.09c.046.122.092.228.123.333.06.167.107.318.137.455.015.045.061.09.122.075a.104.104 0 00.107-.106c.092-.227.092-.393.077-.575z'
/>
<defs>
<linearGradient
id='grafana-color-16__paint0_linear_2372_364'
x1='7.502'
x2='7.502'
y1='18.142'
y2='5.356'
gradientUnits='userSpaceOnUse'
>
<stop stopColor='#FFF200' />
<stop offset='1' stopColor='#F15A29' />
</linearGradient>
</defs>
</svg>
)
}
export function GoogleDriveIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg
@@ -1029,6 +1084,27 @@ export function GoogleDocsIcon(props: SVGProps<SVGSVGElement>) {
)
}
export function GoogleSlidesIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg
{...props}
xmlns='http://www.w3.org/2000/svg'
viewBox='0 0 48 48'
width='96px'
height='96px'
>
<path
fill='#FFC107'
d='M37,45H11c-1.657,0-3-1.343-3-3V6c0-1.657,1.343-3,3-3h19l10,10v29C40,43.657,38.657,45,37,45z'
/>
<path fill='#FFECB3' d='M40 13L30 13 30 3z' />
<path fill='#FFA000' d='M30 13L40 23 40 13z' />
<path fill='#FFF8E1' d='M14 21H34V35H14z' />
<path fill='#FFA000' d='M16 23H32V26H16zM16 28H28V30H16z' />
</svg>
)
}
export function GoogleCalendarIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg
@@ -1259,7 +1335,7 @@ export function ConfluenceIcon(props: SVGProps<SVGSVGElement>) {
export function TwilioIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg {...props} xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'>
<svg {...props} xmlns='http://www.w3.org/2000/svg' viewBox='-8 -8 272 272'>
<path
fill='currentColor'
d='M128 0c70.656 0 128 57.344 128 128s-57.344 128-128 128S0 198.656 0 128 57.344 0 128 0zm0 33.792c-52.224 0-94.208 41.984-94.208 94.208S75.776 222.208 128 222.208s94.208-41.984 94.208-94.208S180.224 33.792 128 33.792zm31.744 99.328c14.704 0 26.624 11.92 26.624 26.624 0 14.704-11.92 26.624-26.624 26.624-14.704 0-26.624-11.92-26.624-26.624 0-14.704 11.92-26.624 26.624-26.624zm-63.488 0c14.704 0 26.624 11.92 26.624 26.624 0 14.704-11.92 26.624-26.624 26.624-14.704 0-26.624-11.92-26.624-26.624 0-14.704 11.92-26.624 26.624-26.624zm63.488-63.488c14.704 0 26.624 11.92 26.624 26.624 0 14.704-11.92 26.624-26.624 26.624-14.704 0-26.624-11.92-26.624-26.624 0-14.704 11.92-26.624 26.624-26.624zm-63.488 0c14.704 0 26.624 11.92 26.624 26.624 0 14.704-11.92 26.624-26.624 26.624-14.704 0-26.624-11.92-26.624-26.624 0-14.704 11.92-26.624 26.624-26.624z'
@@ -1666,21 +1742,13 @@ export function ElevenLabsIcon(props: SVGProps<SVGSVGElement>) {
export function LinkupIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg
{...props}
xmlns='http://www.w3.org/2000/svg'
viewBox='0 0 24 24'
width='24'
height='24'
fill='none'
>
<path
d='M20.2 14.1c-.4-.3-1.6-.4-2.9-.2.5-1.4 1.3-3.9.1-5-.6-.5-1.5-.7-2.6-.5-.3 0-.6.1-1 .2-1.1-1.6-2.4-2.5-3.8-2.5-1.6 0-3.1 1-4.1 2.9-1.2 2.1-1.9 5.1-1.9 8.8v.03l.4.3c3-.9 7.5-2.3 10.7-2.9 0 .9.1 1.9.1 2.8v.03l.4.3c.1 0 5.4-1.7 5.3-3.3 0-.2-.1-.5-.3-.7zM19.9 14.7c.03.4-1.7 1.4-4 2.3.5-.7 1-1.6 1.3-2.5 1.4-.1 2.4-.1 2.7.2zM16.4 14.6c-.3.7-.7 1.4-1.2 2-.02-.6-.1-1.2-.2-1.8.4-.1.9-.1 1.4-.2zM16.5 9.4c.8.7.9 2.4.1 5.1-.5.1-1 .1-1.5.2-.3-2-.9-3.8-1.7-5.3.3-.1.6-.2.8-.2.9-.1 1.7.05 2.3.2zM9.5 6.8c1.2 0 2.3.7 3.2 2.1-2.8 1.1-5.9 3.4-8.4 7.8.2-5.1 1.9-9.9 5.2-9.9zM4.7 17c3.4-4.9 6.4-6.8 8.4-7.8.7 1.3 1.2 2.9 1.5 4.8-3.2.6-7.3 1.8-9.9 3z'
fill='currentColor'
stroke='currentColor'
strokeWidth='0.5'
strokeLinejoin='round'
/>
<svg {...props} xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'>
<g transform='translate(12, 12) scale(1.3) translate(-12, -12)'>
<path
d='M20.2 14.1c-.4-.3-1.6-.4-2.9-.2.5-1.4 1.3-3.9.1-5-.6-.5-1.5-.7-2.6-.5-.3 0-.6.1-1 .2-1.1-1.6-2.4-2.5-3.8-2.5-1.6 0-3.1 1-4.1 2.9-1.2 2.1-1.9 5.1-1.9 8.8v.03l.4.3c3-.9 7.5-2.3 10.7-2.9 0 .9.1 1.9.1 2.8v.03l.4.3c.1 0 5.4-1.7 5.3-3.3 0-.2-.1-.5-.3-.7zM19.9 14.7c.03.4-1.7 1.4-4 2.3.5-.7 1-1.6 1.3-2.5 1.4-.1 2.4-.1 2.7.2zM16.4 14.6c-.3.7-.7 1.4-1.2 2-.02-.6-.1-1.2-.2-1.8.4-.1.9-.1 1.4-.2zM16.5 9.4c.8.7.9 2.4.1 5.1-.5.1-1 .1-1.5.2-.3-2-.9-3.8-1.7-5.3.3-.1.6-.2.8-.2.9-.1 1.7.05 2.3.2zM9.5 6.8c1.2 0 2.3.7 3.2 2.1-2.8 1.1-5.9 3.4-8.4 7.8.2-5.1 1.9-9.9 5.2-9.9zM4.7 17c3.4-4.9 6.4-6.8 8.4-7.8.7 1.3 1.2 2.9 1.5 4.8-3.2.6-7.3 1.8-9.9 3z'
fill='#000000'
/>
</g>
</svg>
)
}
@@ -2710,111 +2778,19 @@ export function MicrosoftSharepointIcon(props: SVGProps<SVGSVGElement>) {
export function MicrosoftPlannerIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg
{...props}
xmlnsXlink='http://www.w3.org/1999/xlink'
viewBox='0 0 24 24'
fill='none'
xmlns='http://www.w3.org/2000/svg'
>
<g clipPath='url(#msplanner_clip0)'>
<path
d='M8.25809 15.7412C7.22488 16.7744 5.54971 16.7744 4.5165 15.7412L0.774909 11.9996C-0.258303 10.9664 -0.258303 9.29129 0.774908 8.25809L4.5165 4.51655C5.54971 3.48335 7.22488 3.48335 8.25809 4.51655L11.9997 8.2581C13.0329 9.29129 13.0329 10.9664 11.9997 11.9996L8.25809 15.7412Z'
fill='url(#msplanner_paint0_linear)'
/>
<path
d='M8.25809 15.7412C7.22488 16.7744 5.54971 16.7744 4.5165 15.7412L0.774909 11.9996C-0.258303 10.9664 -0.258303 9.29129 0.774908 8.25809L4.5165 4.51655C5.54971 3.48335 7.22488 3.48335 8.25809 4.51655L11.9997 8.2581C13.0329 9.29129 13.0329 10.9664 11.9997 11.9996L8.25809 15.7412Z'
fill='url(#msplanner_paint1_linear)'
/>
<path
d='M0.774857 11.9999C1.80809 13.0331 3.48331 13.0331 4.51655 11.9999L15.7417 0.774926C16.7749 -0.258304 18.4501 -0.258309 19.4834 0.774914L23.225 4.51655C24.2583 5.54977 24.2583 7.22496 23.225 8.25819L11.9999 19.4832C10.9667 20.5164 9.29146 20.5164 8.25822 19.4832L0.774857 11.9999Z'
fill='url(#msplanner_paint2_linear)'
/>
<path
d='M0.774857 11.9999C1.80809 13.0331 3.48331 13.0331 4.51655 11.9999L15.7417 0.774926C16.7749 -0.258304 18.4501 -0.258309 19.4834 0.774914L23.225 4.51655C24.2583 5.54977 24.2583 7.22496 23.225 8.25819L11.9999 19.4832C10.9667 20.5164 9.29146 20.5164 8.25822 19.4832L0.774857 11.9999Z'
fill='url(#msplanner_paint3_linear)'
/>
<path
d='M4.51642 15.7413C5.54966 16.7746 7.22487 16.7746 8.25812 15.7413L15.7415 8.25803C16.7748 7.2248 18.45 7.2248 19.4832 8.25803L23.2249 11.9997C24.2582 13.0329 24.2582 14.7081 23.2249 15.7413L15.7415 23.2246C14.7083 24.2579 13.033 24.2579 11.9998 23.2246L4.51642 15.7413Z'
fill='url(#msplanner_paint4_linear)'
/>
<path
d='M4.51642 15.7413C5.54966 16.7746 7.22487 16.7746 8.25812 15.7413L15.7415 8.25803C16.7748 7.2248 18.45 7.2248 19.4832 8.25803L23.2249 11.9997C24.2582 13.0329 24.2582 14.7081 23.2249 15.7413L15.7415 23.2246C14.7083 24.2579 13.033 24.2579 11.9998 23.2246L4.51642 15.7413Z'
fill='url(#msplanner_paint5_linear)'
/>
</g>
<defs>
<linearGradient
id='msplanner_paint0_linear'
x1='6.38724'
y1='3.74167'
x2='2.15779'
y2='12.777'
gradientUnits='userSpaceOnUse'
>
<stop stopColor='#8752E0' />
<stop offset='1' stopColor='#541278' />
</linearGradient>
<linearGradient
id='msplanner_paint1_linear'
x1='8.38032'
y1='11.0696'
x2='4.94062'
y2='7.69244'
gradientUnits='userSpaceOnUse'
>
<stop offset='0.12172' stopColor='#3D0D59' />
<stop offset='1' stopColor='#7034B0' stopOpacity='0' />
</linearGradient>
<linearGradient
id='msplanner_paint2_linear'
x1='18.3701'
y1='-3.33385e-05'
x2='9.85717'
y2='20.4192'
gradientUnits='userSpaceOnUse'
>
<stop stopColor='#DB45E0' />
<stop offset='1' stopColor='#6C0F71' />
</linearGradient>
<linearGradient
id='msplanner_paint3_linear'
x1='18.3701'
y1='-3.33385e-05'
x2='9.85717'
y2='20.4192'
gradientUnits='userSpaceOnUse'
>
<stop stopColor='#DB45E0' />
<stop offset='0.677403' stopColor='#A829AE' />
<stop offset='1' stopColor='#8F28B3' />
</linearGradient>
<linearGradient
id='msplanner_paint4_linear'
x1='18.0002'
y1='7.49958'
x2='14.0004'
y2='23.9988'
gradientUnits='userSpaceOnUse'
>
<stop stopColor='#3DCBFF' />
<stop offset='1' stopColor='#00479E' />
</linearGradient>
<linearGradient
id='msplanner_paint5_linear'
x1='18.2164'
y1='7.92626'
x2='10.5237'
y2='22.9363'
gradientUnits='userSpaceOnUse'
>
<stop stopColor='#3DCBFF' />
<stop offset='1' stopColor='#4A40D4' />
</linearGradient>
<clipPath id='msplanner_clip0'>
<rect width='24' height='24' fill='white' />
</clipPath>
</defs>
<svg {...props} viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'>
<path
d='M8.25809 15.7412C7.22488 16.7744 5.54971 16.7744 4.5165 15.7412L0.774909 11.9996C-0.258303 10.9664 -0.258303 9.29129 0.774908 8.25809L4.5165 4.51655C5.54971 3.48335 7.22488 3.48335 8.25809 4.51655L11.9997 8.2581C13.0329 9.29129 13.0329 10.9664 11.9997 11.9996L8.25809 15.7412Z'
fill='#185ABD'
/>
<path
d='M0.774857 11.9999C1.80809 13.0331 3.48331 13.0331 4.51655 11.9999L15.7417 0.774926C16.7749 -0.258304 18.4501 -0.258309 19.4834 0.774914L23.225 4.51655C24.2583 5.54977 24.2583 7.22496 23.225 8.25819L11.9999 19.4832C10.9667 20.5164 9.29146 20.5164 8.25822 19.4832L0.774857 11.9999Z'
fill='#41A5EE'
/>
<path
d='M4.51642 15.7413C5.54966 16.7746 7.22487 16.7746 8.25812 15.7413L15.7415 8.25803C16.7748 7.2248 18.45 7.2248 19.4832 8.25803L23.2249 11.9997C24.2582 13.0329 24.2582 14.7081 23.2249 15.7413L15.7415 23.2246C14.7083 24.2579 13.033 24.2579 11.9998 23.2246L4.51642 15.7413Z'
fill='#2B7CD3'
/>
</svg>
)
}
@@ -3297,29 +3273,10 @@ export function TrelloIcon(props: SVGProps<SVGSVGElement>) {
export function AsanaIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg
{...props}
xmlns='http://www.w3.org/2000/svg'
width='24'
height='24'
viewBox='781.361 0 944.893 873.377'
>
<radialGradient
id='asana_radial_gradient'
cx='943.992'
cy='1221.416'
r='.663'
gradientTransform='matrix(944.8934 0 0 -873.3772 -890717.875 1067234.75)'
gradientUnits='userSpaceOnUse'
>
<stop offset='0' stopColor='#ffb900' />
<stop offset='.6' stopColor='#f95d8f' />
<stop offset='.999' stopColor='#f95353' />
</radialGradient>
<path
fill='url(#asana_radial_gradient)'
d='M1520.766 462.371c-113.508 0-205.508 92-205.508 205.488 0 113.499 92 205.518 205.508 205.518 113.489 0 205.488-92.019 205.488-205.518 0-113.488-91.999-205.488-205.488-205.488zm-533.907.01c-113.489.01-205.498 91.99-205.498 205.488 0 113.489 92.009 205.498 205.498 205.498 113.498 0 205.508-92.009 205.508-205.498 0-113.499-92.01-205.488-205.518-205.488h.01zm472.447-256.883c0 113.489-91.999 205.518-205.488 205.518-113.508 0-205.508-92.029-205.508-205.518S1140.31 0 1253.817 0c113.489 0 205.479 92.009 205.479 205.498h.01z'
/>
<svg {...props} xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'>
<circle cx='18' cy='16' r='4' fill='#F06A6A' />
<circle cx='6' cy='16' r='4' fill='#F06A6A' />
<circle cx='12' cy='6.5' r='4' fill='#F06A6A' />
</svg>
)
}
@@ -3694,6 +3651,22 @@ export function ZendeskIcon(props: SVGProps<SVGSVGElement>) {
)
}
export function ZoomIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg
{...props}
fill='currentColor'
width='800px'
height='800px'
viewBox='0 0 32 32'
version='1.1'
xmlns='http://www.w3.org/2000/svg'
>
<path d='M19.283 17.4c-0.367 0.374-0.879 0.606-1.444 0.606-1.117 0-2.023-0.906-2.023-2.023s0.906-2.023 2.023-2.023c0.929 0 1.712 0.626 1.949 1.479l0.003 0.014c0.045 0.159 0.071 0.341 0.071 0.53 0 0.552-0.221 1.052-0.579 1.417l0-0zM15.471 13.586c-0.648 0.615-1.052 1.483-1.052 2.446 0 1.861 1.509 3.37 3.37 3.37s3.37-1.509 3.37-3.37c0-1.54-1.033-2.838-2.444-3.241l-0.024-0.006c-0.27-0.078-0.581-0.123-0.902-0.123-0.899 0-1.716 0.352-2.32 0.925l0.002-0.001zM28.296 12.601c-0.802 0.001-1.522 0.352-2.016 0.909l-0.002 0.003c-0.496-0.562-1.219-0.915-2.023-0.915-0.563 0-1.086 0.173-1.519 0.468l0.009-0.006c-0.316-0.278-0.73-0.451-1.184-0.462l-0.002-0v6.742l0.337-0.016c0.544-0.014 0.981-0.451 0.995-0.993l0-0.001 0.016-0.337v-2.361l0.017-0.337c0-0.001 0-0.002 0-0.003 0-0.245 0.061-0.477 0.169-0.679l-0.004 0.008c0.238-0.405 0.671-0.672 1.166-0.672s0.928 0.267 1.162 0.664l0.003 0.006c0.103 0.196 0.164 0.428 0.165 0.675v0l0.017 0.339v2.361l0.016 0.336c0.022 0.54 0.454 0.972 0.991 0.995l0.002 0 0.337 0.016v-3.708l0.015-0.337c0-0.001 0-0.002 0-0.003 0-0.247 0.062-0.48 0.171-0.683l-0.004 0.008c0.238-0.403 0.67-0.669 1.165-0.669 0.496 0 0.929 0.268 1.164 0.666l0.003 0.006c0.102 0.195 0.162 0.427 0.162 0.673 0 0.001 0 0.001 0 0.002v-0l0.019 0.337v2.361l0.016 0.336c0.020 0.541 0.454 0.975 0.993 0.995l0.002 0 0.337 0.016v-4.045c-0.001-1.488-1.208-2.694-2.697-2.694-0.001 0-0.002 0-0.003 0h0zM12.206 17.4c-0.37 0.393-0.894 0.638-1.475 0.638-1.117 0-2.023-0.906-2.023-2.023s0.906-2.023 2.023-2.023c0.924 0 1.703 0.619 1.945 1.465l0.004 0.014c0.047 0.163 0.075 0.351 0.075 0.544 0 0.536-0.209 1.024-0.549 1.386l0.001-0.001zM10.78 12.6h-0.005c-1.86 0.001-3.367 1.509-3.367 3.368s1.508 3.368 3.368 3.368 3.368-1.508 3.368-3.368c0-1.86-1.507-3.367-3.366-3.368h-0zM6.734 18.008l-0.337-0.015h-3.035l4.044-4.045-0.016-0.337c-0.013-0.544-0.451-0.982-0.994-0.995l-0.001-0-0.337-0.016h-5.052l0.018 0.337c0.026 0.538 0.455 0.967 0.99 0.995l0.002 0 0.337 0.016h3.037l-4.049 4.045 0.017 0.336c0.019 0.541 0.453 0.975 0.992 0.995l0.002 0 0.337 0.016h5.056l-0.018-0.337c-0.024-0.539-0.455-0.969-0.991-0.993l-0.002-0z' />
</svg>
)
}
export function PylonIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg
@@ -3765,12 +3738,16 @@ export function MailgunIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg
{...props}
fill='currentColor'
version='1.1'
viewBox='0 0 1000 1000'
xmlns='http://www.w3.org/2000/svg'
xmlnsXlink='http://www.w3.org/1999/xlink'
xmlSpace='preserve'
viewBox='0 0 512 512'
>
<path d='M256.5 159.5c-53.5 0-97 43.5-97 97s43.5 97 97 97 97-43.5 97-97-43.5-97-97-97m-151.1 97c0-83.4 67.7-151.1 151.1-151.1s151.1 67.7 151.1 151.1c0 5.8-.5 11-1 16.3-1 14.7 9.4 25.7 24.1 25.7 24.7 0 27.3-32 27.3-42.5 0-111.7-90.2-202-202-202S54 144.3 54 256s90.2 202 202 202c59.3 0 112.3-25.7 149.5-66.1l41.4 34.6C400.3 479 332.1 512 256 512 114.4 512 0 397.1 0 256 0 114.4 114.9 0 256 0c141.6 0 256 114.9 256 256 0 56.7-27.3 102.8-81.3 102.8-24.1 0-38.3-11-46.7-23.1-26.8 43-74 71.3-128.5 71.3-82.4.6-150.1-67.1-150.1-150.5m151.1-44.6c24.7 0 44.6 19.9 44.6 44.1 0 24.7-19.9 44.6-44.6 44.6s-44.6-19.9-44.6-44.6c.6-24.1 20-44.1 44.6-44.1' />
<path
fill='#C12126'
d='M493,305.7c-88.9,0-161,72.1-161,161c0,88.9,72.1,161,161,161c88.9,0,161-72.1,161-161 C654,377.8,582,305.7,493,305.7z M242,466.7c0-138.7,112.4-251,251-251c138.7,0,251.1,112.4,251.1,251c0,9.2-0.5,18.2-1.4,27.1 c-1.9,24.5,16.1,43.2,40.4,43.2c41.3,0,45.7-53.2,45.7-70.3c0-185.4-150.3-335.6-335.6-335.6S157.4,281.4,157.4,466.7 c0,185.4,150.3,335.6,335.6,335.6c98.4,0,187-42.4,248.4-109.9l69,57.9c-77.9,87.1-191.3,142-317.4,142 c-235.1,0-425.7-190.6-425.7-425.7S257.9,41,493,41c235.1,0,425.7,190.6,425.7,425.7c0,94.5-45,171.2-135.4,171.2 c-39.8,0-64-18.2-77.2-38.6C661.9,670.5,583,717.8,493,717.8C354.4,717.8,242,605.4,242,466.7z M493,393.1c40.7,0,73.7,33,73.7,73.7 c0,40.7-33,73.7-73.7,73.7c-40.7,0-73.7-33-73.7-73.7S452.3,393.1,493,393.1z'
/>
</svg>
)
}
@@ -3797,6 +3774,47 @@ export function SmtpIcon(props: SVGProps<SVGSVGElement>) {
)
}
export function SshIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg
{...props}
xmlns='http://www.w3.org/2000/svg'
width='24'
height='24'
viewBox='0 0 24 24'
fill='none'
stroke='currentColor'
strokeWidth='2'
strokeLinecap='round'
strokeLinejoin='round'
>
<rect x='2' y='4' width='20' height='16' rx='2' />
<path d='M6 8h.01' />
<path d='M10 8h.01' />
<path d='M14 8h8' />
<path d='M6 12l3 3-3 3' />
<path d='M12 18h6' />
</svg>
)
}
export function SftpIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg
{...props}
xmlns='http://www.w3.org/2000/svg'
viewBox='0 0 32 32'
width='32px'
height='32px'
>
<path
d='M 6 3 L 6 29 L 26 29 L 26 9.59375 L 25.71875 9.28125 L 19.71875 3.28125 L 19.40625 3 Z M 8 5 L 18 5 L 18 11 L 24 11 L 24 27 L 8 27 Z M 20 6.4375 L 22.5625 9 L 20 9 Z'
fill='currentColor'
/>
</svg>
)
}
export function ApifyIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg
@@ -3883,3 +3901,323 @@ export function DynamoDBIcon(props: SVGProps<SVGSVGElement>) {
</svg>
)
}
export function McpIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg
{...props}
width='16'
height='16'
viewBox='0 0 16 16'
fill='none'
xmlns='http://www.w3.org/2000/svg'
>
<g clipPath='url(#mcp-clip)'>
<path
fillRule='evenodd'
clipRule='evenodd'
d='M14.5572 7.87503L14.5022 7.92903L8.69824 13.62C8.68102 13.6368 8.66728 13.6569 8.65781 13.679C8.64834 13.7011 8.64332 13.7248 8.64304 13.7489C8.64276 13.773 8.64723 13.7968 8.65619 13.8192C8.66514 13.8415 8.67842 13.8618 8.69524 13.879L8.69824 13.882L9.89024 15.052C9.99431 15.1536 10.0539 15.2923 10.056 15.4378C10.058 15.5832 10.0024 15.7235 9.90124 15.828L9.89124 15.838C9.78385 15.9428 9.63977 16.0014 9.48974 16.0014C9.33972 16.0014 9.19564 15.9428 9.08824 15.838L7.89624 14.67C7.77347 14.5507 7.67588 14.408 7.60923 14.2503C7.54259 14.0927 7.50825 13.9232 7.50825 13.752C7.50825 13.5808 7.54259 13.4114 7.60923 13.2537C7.67588 13.096 7.77347 12.9533 7.89624 12.834L13.7012 7.14203C14.0139 6.83733 14.1928 6.42097 14.1986 5.98444C14.2044 5.54792 14.0367 5.12694 13.7322 4.81403L13.7012 4.78203L13.6672 4.75003C13.3455 4.43669 12.9143 4.26118 12.4651 4.2608C12.016 4.26043 11.5845 4.43522 11.2622 4.74803L6.48124 9.43803H6.47924L6.41424 9.50303C6.30685 9.60778 6.16277 9.66642 6.01274 9.66642C5.86272 9.66642 5.71864 9.60778 5.61124 9.50303C5.50731 9.40128 5.44791 9.26252 5.44604 9.11709C5.44417 8.97166 5.49997 8.83141 5.60124 8.72703L5.61124 8.71703L10.4602 3.96003C11.1102 3.32403 11.1232 2.28203 10.4872 1.63103L10.4582 1.60103C10.1362 1.28736 9.70433 1.11183 9.25474 1.11183C8.80516 1.11183 8.37333 1.28736 8.05124 1.60103L1.63524 7.89603C1.5279 8.00048 1.38403 8.05893 1.23424 8.05893C1.08446 8.05893 0.940591 8.00048 0.833243 7.89603C0.729179 7.79442 0.669597 7.65573 0.667536 7.5103C0.665474 7.36487 0.7211 7.22454 0.822243 7.12003L0.833243 7.11003L7.25024 0.814026C7.78698 0.291743 8.50633 -0.000488281 9.25524 -0.000488281C10.0042 -0.000488281 10.7235 0.291743 11.2602 0.814026C11.8902 1.42703 12.1892 2.30403 12.0632 3.17403C12.9432 3.04903 13.8332 3.34003 14.4692 3.96103L14.5032 3.99403C14.7616 4.24525 14.9679 4.54492 15.1104 4.87591C15.2529 5.2069 15.3287 5.56272 15.3337 5.92304C15.3386 6.28337 15.2725 6.64113 15.1391 6.97589C15.0057 7.31064 14.8076 7.61584 14.5562 7.87403M12.8652 6.32103C12.9692 6.21928 13.0286 6.08052 13.0304 5.93509C13.0323 5.78966 12.9765 5.64941 12.8752 5.54503L12.8652 5.53503C12.7578 5.43027 12.6138 5.37164 12.4637 5.37164C12.3137 5.37164 12.1696 5.43027 12.0622 5.53503L7.31724 10.19C6.99515 10.5037 6.56333 10.6792 6.11374 10.6792C5.66416 10.6792 5.23233 10.5037 4.91024 10.19C4.7552 10.0391 4.63143 9.85901 4.54601 9.66018C4.46058 9.46135 4.41518 9.24763 4.4124 9.03124C4.40961 8.81486 4.4495 8.60004 4.52977 8.39908C4.61005 8.19812 4.72914 8.01494 4.88024 7.86003L4.91124 7.82903L9.65824 3.17403C9.76231 3.07242 9.82189 2.93373 9.82395 2.7883C9.82601 2.64287 9.77039 2.50254 9.66924 2.39803L9.65824 2.38803C9.55085 2.28327 9.40677 2.22464 9.25674 2.22464C9.10672 2.22464 8.96264 2.28327 8.85524 2.38803L4.10824 7.04203C3.84537 7.29765 3.63642 7.60338 3.49374 7.94115C3.35107 8.27892 3.27755 8.64186 3.27755 9.00853C3.27755 9.37519 3.35107 9.73814 3.49374 10.0759C3.63642 10.4137 3.84537 10.7194 4.10824 10.975C4.64515 11.4974 5.36467 11.7896 6.11374 11.7896C6.86282 11.7896 7.58234 11.4974 8.11924 10.975L12.8652 6.32103Z'
fill='currentColor'
/>
</g>
<defs>
<clipPath id='mcp-clip'>
<rect width='16' height='16' fill='white' />
</clipPath>
</defs>
</svg>
)
}
export function WordpressIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg {...props} xmlns='http://www.w3.org/2000/svg' viewBox='0 0 25.925 25.925'>
<g fill='currentColor'>
<path d='M1.843,12.962c0,4.401,2.557,8.205,6.267,10.008L2.805,8.437C2.189,9.819,1.843,11.35,1.843,12.962z M20.469,12.4c0-1.374-0.493-2.326-0.917-3.066c-0.563-0.917-1.092-1.691-1.092-2.608c0-1.021,0.775-1.973,1.867-1.973c0.049,0,0.096,0.006,0.145,0.008c-1.979-1.813-4.615-2.919-7.509-2.919c-3.885,0-7.303,1.993-9.291,5.013c0.261,0.008,0.507,0.013,0.716,0.013c1.163,0,2.963-0.142,2.963-0.142c0.599-0.035,0.67,0.846,0.071,0.917c0,0-0.603,0.07-1.272,0.105l4.049,12.045l2.434-7.298l-1.732-4.747c-0.599-0.035-1.167-0.105-1.167-0.105c-0.6-0.036-0.529-0.953,0.07-0.917c0,0,1.836,0.142,2.928,0.142c1.163,0,2.964-0.142,2.964-0.142c0.6-0.035,0.67,0.846,0.071,0.917c0,0-0.604,0.07-1.272,0.105l4.018,11.953l1.11-3.706C20.187,14.55,20.469,13.353,20.469,12.4z M13.158,13.935l-3.337,9.694c0.997,0.293,2.05,0.453,3.142,0.453c1.294,0,2.537-0.224,3.693-0.63c-0.029-0.048-0.057-0.099-0.08-0.153L13.158,13.935z M22.72,7.627c0.049,0.354,0.075,0.734,0.075,1.144c0,1.128-0.212,2.396-0.846,3.982l-3.396,9.82c3.306-1.928,5.529-5.509,5.529-9.611C24.082,11.028,23.588,9.21,22.72,7.627z' />
<path d='M0,12.962c0,7.147,5.815,12.963,12.962,12.963c7.149,0,12.963-5.816,12.963-12.963S20.111,0,12.963,0S0,5.814,0,12.962z M0.594,12.962c0-6.819,5.548-12.368,12.368-12.368s12.369,5.549,12.369,12.368S19.782,25.33,12.963,25.33S0.594,19.781,0.594,12.962z' />
</g>
</svg>
)
}
export function AhrefsIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg {...props} xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1065 1300'>
<path
fillRule='evenodd'
fill='#ff8800'
d='m111.3 0.7h953.4v1264.4h-256.9v-137.8h-21.2c-127 129.9-230.4 172.4-410.4 172.4-227.8 0-376.1-127.3-376.1-339.5v-58.3c0-288.9 121.8-392.4 511-421.5l241-18.6v-180.2h-640.8zm640.8 707.7l-193.4 18.6c-203.9 18.6-248.8 47.8-251.5 169.7-2.7 87.5 42.4 127.2 148.3 127.2 98 0 217.1-53 296.6-132.5z'
/>
</svg>
)
}
export function ShopifyIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg
{...props}
xmlns='http://www.w3.org/2000/svg'
viewBox='0 0 48 48'
width='48px'
height='48px'
>
<path
fill='#7cb342'
d='M37.216,11.78c-0.023-0.211-0.211-0.305-0.351-0.305s-3.21-0.234-3.21-0.234s-2.132-2.132-2.39-2.343 c-0.234-0.234-0.68-0.164-0.867-0.117c-0.023,0-0.469,0.141-1.195,0.375c-0.726-2.086-1.968-3.984-4.194-3.984h-0.211 C24.187,4.375,23.391,4,22.735,4c-5.155,0-7.639,6.444-8.412,9.725c-2.015,0.633-3.445,1.054-3.609,1.125 c-1.125,0.351-1.148,0.375-1.289,1.429c-0.117,0.797-3.046,23.456-3.046,23.456L29.179,44l12.373-2.671 C41.575,41.282,37.24,11.991,37.216,11.78z M27.937,9.483c-0.562,0.164-1.242,0.375-1.921,0.609V9.671 c0-1.265-0.164-2.296-0.469-3.117C26.718,6.695,27.445,7.984,27.937,9.483L27.937,9.483z M24.117,6.812 c0.305,0.797,0.516,1.922,0.516,3.468v0.234c-1.265,0.398-2.601,0.797-3.984,1.242C21.422,8.804,22.899,7.351,24.117,6.812 L24.117,6.812z M22.617,5.359c0.234,0,0.469,0.094,0.656,0.234c-1.664,0.773-3.421,2.718-4.148,6.655 c-1.101,0.351-2.156,0.656-3.163,0.984C16.806,10.233,18.915,5.359,22.617,5.359z'
/>
<path
fill='#558b2f'
d='M36.865,11.428c-0.141,0-3.21-0.234-3.21-0.234s-2.132-2.132-2.39-2.343 C31.17,8.757,31.053,8.71,30.96,8.71L29.249,44l12.373-2.671c0,0-4.335-29.338-4.359-29.549 C37.169,11.569,37.005,11.475,36.865,11.428z'
/>
<path
fill='#fff'
d='M24.792,18.593l-1.475,4.449c0,0-1.337-0.715-2.927-0.715c-2.374,0-2.489,1.498-2.489,1.867 c0,2.028,5.301,2.812,5.301,7.583c0,3.757-2.374,6.177-5.578,6.177c-3.872,0-5.808-2.397-5.808-2.397l1.037-3.411 c0,0,2.028,1.752,3.734,1.752c1.129,0,1.59-0.876,1.59-1.521c0-2.651-4.333-2.766-4.333-7.145c0-3.665,2.628-7.214,7.952-7.214 C23.777,17.994,24.792,18.593,24.792,18.593z'
/>
</svg>
)
}
export function BoxCompanyIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg {...props} xmlns='http://www.w3.org/2000/svg' viewBox='0 0 41 22'>
<path
d='M39.7 19.2c.5.7.4 1.6-.2 2.1-.7.5-1.7.4-2.2-.2l-3.5-4.5-3.4 4.4c-.5.7-1.5.7-2.2.2-.7-.5-.8-1.4-.3-2.1l4-5.2-4-5.2c-.5-.7-.3-1.7.3-2.2.7-.5 1.7-.3 2.2.3l3.4 4.5L37.3 7c.5-.7 1.4-.8 2.2-.3.7.5.7 1.5.2 2.2L35.8 14l3.9 5.2zm-18.2-.6c-2.6 0-4.7-2-4.7-4.6 0-2.5 2.1-4.6 4.7-4.6s4.7 2.1 4.7 4.6c-.1 2.6-2.2 4.6-4.7 4.6zm-13.8 0c-2.6 0-4.7-2-4.7-4.6 0-2.5 2.1-4.6 4.7-4.6s4.7 2.1 4.7 4.6c0 2.6-2.1 4.6-4.7 4.6zM21.5 6.4c-2.9 0-5.5 1.6-6.8 4-1.3-2.4-3.9-4-6.9-4-1.8 0-3.4.6-4.7 1.5V1.5C3.1.7 2.4 0 1.6 0 .7 0 0 .7 0 1.5v12.6c.1 4.2 3.5 7.5 7.7 7.5 3 0 5.6-1.7 6.9-4.1 1.3 2.4 3.9 4.1 6.8 4.1 4.3 0 7.8-3.4 7.8-7.7.1-4.1-3.4-7.5-7.7-7.5z'
fill='currentColor'
/>
</svg>
)
}
export function DropboxIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg {...props} xmlns='http://www.w3.org/2000/svg' viewBox='0 0 43 40'>
<path
d='m12.5 0l-12.5 8.1 8.7 7 12.5-7.8-8.7-7.3zm-12.5 21.9l12.5 8.2 8.7-7.3-12.5-7.7-8.7 6.8zm21.2 0.9l8.8 7.3 12.4-8.1-8.6-6.9-12.6 7.7zm21.2-14.7l-12.4-8.1-8.8 7.3 12.6 7.8 8.6-7zm-21.1 16.3l-8.8 7.3-3.7-2.5v2.8l12.5 7.5 12.5-7.5v-2.8l-3.8 2.5-8.7-7.3z'
fill='currentColor'
/>
</svg>
)
}
export function ElasticsearchIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg {...props} xmlns='http://www.w3.org/2000/svg' viewBox='0 0 128 128'>
<path
fill='#343741'
d='M4 64c0 5.535.777 10.879 2.098 16H84c8.836 0 16-7.164 16-16s-7.164-16-16-16H6.098A63.738 63.738 0 0 0 4 64'
/>
<path
fill='#fec514'
d='M111.695 30.648A61.485 61.485 0 0 0 117.922 24C106.188 9.379 88.199 0 68 0 42.715 0 20.957 14.71 10.574 36H98.04a20.123 20.123 0 0 0 13.652-5.352'
/>
<path
fill='#00bfb3'
d='M98.04 92H10.577C20.961 113.29 42.715 128 68 128c20.2 0 38.188-9.383 49.922-24a61.1 61.1 0 0 0-6.227-6.648A20.133 20.133 0 0 0 98.04 92'
/>
</svg>
)
}
export function GitlabIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg {...props} xmlns='http://www.w3.org/2000/svg' viewBox='0 0 380 380'>
<path
fill='#e24329'
d='M265.26416,174.37243l-.2134-.55822-21.19899-55.30908c-.4236-1.08359-1.18542-1.99642-2.17699-2.62689-.98837-.63373-2.14749-.93253-3.32305-.87014-1.1689.06239-2.29195.48925-3.20809,1.21821-.90957.73554-1.56629,1.73047-1.87493,2.85346l-14.31327,43.80662h-57.90965l-14.31327-43.80662c-.30864-1.12299-.96536-2.11791-1.87493-2.85346-.91614-.72895-2.03911-1.15582-3.20809-1.21821-1.17548-.06239-2.33468.23641-3.32297.87014-.99166.63047-1.75348,1.5433-2.17707,2.62689l-21.19891,55.31237-.21348.55493c-6.28158,16.38521-.92929,34.90803,13.05891,45.48782.02621.01641.04922.03611.07552.05582l.18719.14119,32.29094,24.17392,15.97151,12.09024,9.71951,7.34871c2.34117,1.77316,5.57877,1.77316,7.92002,0l9.71943-7.34871,15.96822-12.09024,32.48142-24.31511c.02958-.02299.05588-.04269.08538-.06568,13.97834-10.57977,19.32735-29.09604,13.04905-45.47796Z'
/>
<path
fill='#fc6d26'
d='M265.26416,174.37243l-.2134-.55822c-10.5174,2.16062-20.20405,6.6099-28.49844,12.81593-.1346.0985-25.20497,19.05805-46.55171,35.19699,15.84998,11.98517,29.6477,22.40405,29.6477,22.40405l32.48142-24.31511c.02958-.02299.05588-.04269.08538-.06568,13.97834-10.57977,19.32735-29.09604,13.04905-45.47796Z'
/>
<path
fill='#fca326'
d='M160.34962,244.23117l15.97151,12.09024,9.71951,7.34871c2.34117,1.77316,5.57877,1.77316,7.92002,0l9.71943-7.34871,15.96822-12.09024s-13.79772-10.41888-29.6477-22.40405c-15.85327,11.98517-29.65099,22.40405-29.65099,22.40405Z'
/>
<path
fill='#fc6d26'
d='M143.44561,186.63014c-8.29111-6.20274-17.97446-10.65531-28.49507-12.81264l-.21348.55493c-6.28158,16.38521-.92929,34.90803,13.05891,45.48782.02621.01641.04922.03611.07552.05582l.18719.14119,32.29094,24.17392s13.79772-10.41888,29.65099-22.40405c-21.34673-16.13894-46.42031-35.09848-46.55499-35.19699Z'
/>
</svg>
)
}
export function SSHIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg
{...props}
xmlns='http://www.w3.org/2000/svg'
viewBox='0 0 48 48'
width='48px'
height='48px'
>
<path
fill='#7cb342'
d='M37.216,11.78c-0.023-0.211-0.211-0.305-0.351-0.305s-3.21-0.234-3.21-0.234s-2.132-2.132-2.39-2.343 c-0.234-0.234-0.68-0.164-0.867-0.117c-0.023,0-0.469,0.141-1.195,0.375c-0.726-2.086-1.968-3.984-4.194-3.984h-0.211 C24.187,4.375,23.391,4,22.735,4c-5.155,0-7.639,6.444-8.412,9.725c-2.015,0.633-3.445,1.054-3.609,1.125 c-1.125,0.351-1.148,0.375-1.289,1.429c-0.117,0.797-3.046,23.456-3.046,23.456L29.179,44l12.373-2.671 C41.575,41.282,37.24,11.991,37.216,11.78z M27.937,9.483c-0.562,0.164-1.242,0.375-1.921,0.609V9.671 c0-1.265-0.164-2.296-0.469-3.117C26.718,6.695,27.445,7.984,27.937,9.483L27.937,9.483z M24.117,6.812 c0.305,0.797,0.516,1.922,0.516,3.468v0.234c-1.265,0.398-2.601,0.797-3.984,1.242C21.422,8.804,22.899,7.351,24.117,6.812 L24.117,6.812z M22.617,5.359c0.234,0,0.469,0.094,0.656,0.234c-1.664,0.773-3.421,2.718-4.148,6.655 c-1.101,0.351-2.156,0.656-3.163,0.984C16.806,10.233,18.915,5.359,22.617,5.359z'
/>
<path
fill='#558b2f'
d='M36.865,11.428c-0.141,0-3.21-0.234-3.21-0.234s-2.132-2.132-2.39-2.343 C31.17,8.757,31.053,8.71,30.96,8.71L29.249,44l12.373-2.671c0,0-4.335-29.338-4.359-29.549 C37.169,11.569,37.005,11.475,36.865,11.428z'
/>
<path
fill='#fff'
d='M24.792,18.593l-1.475,4.449c0,0-1.337-0.715-2.927-0.715c-2.374,0-2.489,1.498-2.489,1.867 c0,2.028,5.301,2.812,5.301,7.583c0,3.757-2.374,6.177-5.578,6.177c-3.872,0-5.808-2.397-5.808-2.397l1.037-3.411 c0,0,2.028,1.752,3.734,1.752c1.129,0,1.59-0.876,1.59-1.521c0-2.651-4.333-2.766-4.333-7.145c0-3.665,2.628-7.214,7.952-7.214 C23.777,17.994,24.792,18.593,24.792,18.593z'
/>
</svg>
)
}
export function DatadogIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg {...props} xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'>
<g fill='currentColor'>
<path d='M57.705 33.717l1.575 20.1L31.4 58.82 29 38.72l3.983-.556c.648.278 1.112.37 1.853.556 1.204.278 2.594.648 4.63-.463.463-.278 1.482-1.112 1.853-1.667zm-43.073 23.9c-.463-.74-1.297-1.575-2.594-2.594-1.853-1.482-1.204-4.076-.093-5.65 1.4-2.686 8.707-6.206 8.337-10.56-.185-1.575-.37-3.613-1.853-5.095-.093.556 0 1.112 0 1.112s-.648-.74-.926-1.853c-.278-.37-.556-.556-.834-1.112-.185.648-.185 1.297-.185 1.297s-.463-1.204-.556-2.13c-.278.463-.37 1.297-.37 1.297s-.648-1.853-.463-2.87c-.278-.834-1.204-2.594-.926-6.484 1.575 1.112 5.095.834 6.484-1.204.463-.648.74-2.5-.185-6.114-.648-2.316-2.223-5.743-2.87-7.04l-.093.093c.37 1.02 1.02 3.242 1.297 4.354.74 3.242 1.02 4.354.648 5.836-.278 1.297-1.02 2.13-2.964 3.057-1.853.926-4.446-1.4-4.54-1.482-1.853-1.482-3.242-3.9-3.427-5.002-.185-1.297.74-2.038 1.204-3.057-.648.185-1.4.556-1.4.556s.834-.926 1.945-1.667a9.43 9.43 0 0 0 1.204-.834H10.28s1.112-.648 2.316-1.02H10.93l4.446-1.945c1.4-.556 2.686-.37 3.427.648 1.02 1.4 2.038 2.13 4.168 2.686 1.297-.556 1.76-.926 3.427-1.4 1.482-1.667 2.686-1.853 2.686-1.853s-.834.74-.926 1.575c.834-.648 1.76-1.204 1.76-1.204s-.37.463-.648 1.112l.093.093c1.02-.556 2.13-1.02 2.13-1.02s-.37.37-.74.926c.74 0 2.223 0 2.78.093 3.427.093 4.168-3.613 5.465-4.168 1.667-.556 2.408-.926 5.187 1.853 2.408 2.408 4.26 6.577 3.335 7.503-.74.74-2.316-.278-4.076-2.408-.926-1.112-1.575-2.5-1.945-4.168-.185-1.4-1.204-2.223-1.204-2.223s.648 1.4.648 2.594c0 .648.093 3.057 1.112 4.446-.093.185-.185 1.02-.278 1.112-1.204-1.482-3.9-2.5-4.26-2.87 1.482 1.204 4.817 3.9 6.114 6.484 1.204 2.5.463 4.724 1.112 5.28.185.185 2.594 3.15 3.057 4.724.834 2.686.093 5.465-1.02 7.132l-2.964.463a3.92 3.92 0 0 1-1.112-.371c.185-.37.648-1.297.648-1.482l-.185-.278c-.926 1.297-2.5 2.594-3.798 3.335-1.667.926-3.613.834-4.9.37-3.613-1.112-7.04-3.52-7.78-4.168 0 0 0 .463.093.648a28.07 28.07 0 0 0 5.002 4.168l-4.26.463 2.038 15.747c-.926.093-1.02.185-2.038.37-.834-3.057-2.5-5.002-4.354-6.206-1.575-1.02-3.798-1.297-5.928-.834l-.093.185c1.482-.185 3.242.093 5.002 1.204s3.15 3.983 3.705 5.65c.648 2.223 1.112 4.54-.648 7.04-1.297 1.76-5.002 2.78-7.966.648.834 1.297 1.853 2.316 3.335 2.5 2.13.278 4.168-.093 5.65-1.482 1.204-1.204 1.853-3.798 1.667-6.577l1.945-.278.648 4.9L62.06 56.7l-2.78-25.195-1.575.278L54.556 0 1.942 6.114l6.484 52.428z' />
<path d='M39.665 30.06c1.4 1.02 2.594 1.667 3.798 1.575.74-.093 1.482-1.297 1.945-2.408.37-.74.37-1.575-.185-1.853-.278-.093-1.4-.093-2.223 0-1.575.185-3.15.74-3.52 1.02-.556.37-.278 1.297.185 1.667m.37-10.84v.093l.093.185c.37.74.74 1.482 1.482 1.853.185 0 .37-.093.556-.093.648 0 1.02.093 1.297.185v-.556c-.093-.926.185-2.594-1.667-3.52-.74-.37-1.667-.185-2.038.185h.185c.463.185.185.37.093.556-.093.37-.185.463 0 1.112' />
<path d='M31.698 19.407c.463-.37-2.13-.926-4.168.37-1.482 1.02-1.482 3.15-.093 4.354a1.27 1.27 0 0 1 .37.278c.37-.185.926-.37 1.4-.556.926-.278 1.667-.463 2.316-.556.278-.37.648-.926.556-1.945-.093-1.4-1.204-1.112-.37-1.945m15.098 22.5l-4.446 7.4-5.187-1.575-4.54 6.947.185 2.223 24.825-4.54-1.482-15.47-4.076 8.522z' />
</g>
</svg>
)
}
export function KalshiIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg {...props} viewBox='0 0 78 20' fill='currentColor' xmlns='http://www.w3.org/2000/svg'>
<path d='M40.1043 0H36.0332V19.9986H40.1043V0Z' />
<path d='M0.416887 0.0221237H4.73849V8.99348L12.818 0.0221237H18.0582L10.6468 8.24586L18.5384 20H13.3608L7.59868 11.5686L4.73849 14.7459V20H0.416887V0.0221237Z' />
<path
fillRule='evenodd'
clipRule='evenodd'
d='M34.4675 19.8117H32.4007C30.5426 19.8117 29.624 19.0017 29.6658 17.4027C29.1229 18.2334 28.4549 18.8771 27.6824 19.3132C26.8891 19.7494 25.9496 19.9778 24.8222 19.9778C23.1729 19.9778 21.8368 19.604 20.8138 18.8564C19.8117 18.088 19.3106 17.0289 19.3106 15.6582C19.3106 14.1007 19.8952 12.8962 21.0434 12.0656C22.2126 11.2141 23.9036 10.778 26.1166 10.778H29.0603V10.0719C29.0603 9.40737 28.8098 8.8882 28.3087 8.49362C27.8077 8.09905 27.1396 7.89138 26.2836 7.89138C25.532 7.89138 24.9266 8.05752 24.4464 8.36902C23.9662 8.70129 23.674 9.1374 23.5905 9.67734H19.6446C19.7699 8.18212 20.4589 7.01916 21.6697 6.18848C22.8806 5.3578 24.4882 4.92169 26.4924 4.92169C28.5801 4.92169 30.2086 5.37857 31.3359 6.29232C32.4842 7.20607 33.0688 8.53516 33.0688 10.2588V15.4298C33.0688 15.7828 33.1523 16.0321 33.2984 16.1774C33.4445 16.302 33.6951 16.3851 34.0291 16.3851H34.4675V19.8117ZM26.0749 13.4569C25.2398 13.4569 24.5717 13.6231 24.0915 13.9761C23.6322 14.3084 23.4026 14.7653 23.4026 15.3675C23.4026 15.8867 23.5905 16.2813 23.9871 16.5928C24.3838 16.9043 24.9266 17.0496 25.5947 17.0496C26.6594 17.0496 27.4945 16.7589 28.1 16.1567C28.7054 15.5544 29.0394 14.7445 29.0603 13.7269V13.4569H26.0749Z'
/>
<path d='M45.5115 14.9314C45.5741 15.5752 45.8873 16.0944 46.4718 16.5097C47.0564 16.9043 47.7871 17.112 48.6848 17.112C49.5408 17.112 50.2297 16.9874 50.7308 16.7174C51.2318 16.4266 51.4824 16.0321 51.4824 15.5129C51.4824 15.1391 51.3571 14.8483 51.1275 14.6614C50.8978 14.4745 50.5638 14.3292 50.1462 14.2669C49.7287 14.163 49.0397 14.0592 48.0794 13.9554C46.7641 13.7892 45.6785 13.5608 44.8225 13.2908C43.9665 13.0208 43.2567 12.6055 42.7557 12.024C42.2337 11.4426 41.9832 10.6949 41.9832 9.73966C41.9832 8.78438 42.2337 7.9537 42.7557 7.22685C43.2985 6.47924 44.0501 5.91853 45.0104 5.50319C45.9708 5.10861 47.0773 4.90094 48.3299 4.90094C50.355 4.92171 51.9625 5.35782 53.1943 6.1885C54.4469 7.01918 55.115 8.18213 55.2194 9.67736H51.3571C51.2945 9.11665 51.0022 8.68054 50.4594 8.3275C49.9374 7.97446 49.2694 7.78756 48.4343 7.78756C47.6618 7.78756 47.0355 7.93293 46.5553 8.22367C46.096 8.5144 45.8664 8.88821 45.8664 9.36585C45.8664 9.71889 45.9916 9.9681 46.2422 10.1342C46.4927 10.3004 46.8267 10.425 47.2234 10.508C47.6201 10.5911 48.309 10.6742 49.2485 10.7572C51.2527 10.9857 52.7768 11.4218 53.8206 12.0448C54.9062 12.647 55.4282 13.7062 55.4282 15.2222C55.4282 16.1774 55.1359 17.0081 54.5722 17.735C54.0085 18.4618 53.2361 19.0225 52.2131 19.4171C51.211 19.7909 50.0418 19.9986 48.7266 19.9986C46.6806 19.9986 44.9895 19.5417 43.716 18.6487C42.4216 17.735 41.7535 16.4889 41.67 14.9314H45.5115Z' />
<path d='M69.7503 6.72852C68.623 5.6694 67.2033 5.12946 65.4496 5.12946C63.6333 5.12946 62.1719 5.794 61.0654 7.12309V0H56.9943V19.9986H61.0654V12.4602C61.0654 11.1934 61.3368 10.2174 61.9213 9.5113C62.5059 8.80522 63.3201 8.45218 64.364 8.45218C65.3661 8.45218 66.1177 8.78445 66.6187 9.42823C67.1198 10.0512 67.3703 10.965 67.3703 12.1902V19.9986H71.4414V12.0241C71.4414 9.55283 70.8777 7.78763 69.7503 6.72852Z' />
<path d='M73.0068 5.29551H77.0779V19.9778H73.0068V5.29551Z' />
<path d='M76.473 0.581477C76.0972 0.20767 75.617 0 75.0324 0C74.4688 0 73.9677 0.20767 73.571 0.581477C73.1952 0.955283 72.9865 1.41216 72.9865 1.97287C72.9865 2.53358 73.1952 3.01122 73.571 3.38503C73.9677 3.75883 74.4688 3.9665 75.0324 3.9665C75.5961 3.9665 76.0972 3.7796 76.473 3.38503C76.8488 2.99045 77.0575 2.53358 77.0575 1.97287C77.0575 1.41216 76.8488 0.934516 76.473 0.581477Z' />
</svg>
)
}
export function PolymarketIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg {...props} xmlns='http://www.w3.org/2000/svg' viewBox='51 209 123 155'>
<path
fill='currentColor'
d='M173.2,363.2L51.1,328.3v-83.7l122.1-34.9V363.2z M161.4,296.2l-89.8,25.6l89.8,25.6L161.4,296.2z M62.9,260.8v51.3l89.8-25.6L62.9,260.8z M161.4,225.3L71.6,251l89.8,25.6L161.4,225.3z'
/>
</svg>
)
}
export function GoogleGroupsIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg {...props} xmlns='http://www.w3.org/2000/svg' viewBox='0 0 950 950'>
<path
d='M0 0 C0.94278809 0.16097168 1.88557617 0.32194336 2.85693359 0.48779297 C41.39640021 7.38000818 77.6089919 23.60492603 108.359375 47.75439453 C110.82847014 49.62899623 113.39874033 51.31473268 116 53 C116.46293457 52.57372314 116.92586914 52.14744629 117.40283203 51.70825195 C122.59800275 47.03131713 128.0429109 43.0311917 133.875 39.1875 C134.79337646 38.58075439 135.71175293 37.97400879 136.65795898 37.34887695 C193.06543269 0.50131391 260.71306352 -11.46626137 326.5625 2.1875 C345.0682729 6.30166442 362.9846016 12.66357256 380 21 C380.84159668 21.41121094 381.68319336 21.82242187 382.55029297 22.24609375 C394.71831585 28.25763667 406.12081333 34.88025718 417 43 C417.91386475 43.680625 417.91386475 43.680625 418.84619141 44.375 C427.3442083 50.7615534 435.33491318 57.63400459 443 65 C443.89187012 65.85102295 443.89187012 65.85102295 444.80175781 66.71923828 C453.69930679 75.25198316 461.69744094 84.07076231 469 94 C469.42619629 94.57073242 469.85239258 95.14146484 470.29150391 95.72949219 C480.43354301 109.33663206 488.67420729 123.71010258 496 139 C496.44988281 139.91910156 496.89976562 140.83820313 497.36328125 141.78515625 C507.8727502 163.93377648 513.86707037 187.75512603 517 212 C517.17128418 213.27705811 517.34256836 214.55411621 517.51904297 215.86987305 C518.22536878 222.32344617 518.20134476 228.78767265 518.23828125 235.2734375 C518.24439454 236.28303968 518.24439454 236.28303968 518.25063133 237.31303787 C518.27135228 240.8724256 518.28571641 244.43177631 518.29516602 247.99121094 C518.30623374 251.63452388 518.34067753 255.27722681 518.38033772 258.92032433 C518.40666551 261.75333675 518.41487174 264.58620664 518.41844749 267.4193306 C518.42558411 269.40605687 518.45193759 271.39268495 518.47883606 273.37924194 C518.44942207 285.76015309 515.12264488 295.57193005 507 305 C499.87428202 312.02979486 489.28626689 317.89258596 479.05601447 318.02519969 C476.62337781 317.96406397 474.19532718 317.86193279 471.76460171 317.74760151 C470.82658438 317.70850022 469.88856705 317.66939893 468.92212495 317.62911275 C466.85886798 317.54255897 464.79572187 317.45333201 462.73267936 317.36180875 C458.15557952 317.15958497 453.5778828 316.97272504 449.00018999 316.78448407 C445.21423965 316.62851756 441.42837797 316.470502 437.64251518 316.31242561 C398.91465695 314.70443054 360.18475613 313.32679155 321.43299866 312.45133972 C320.24242123 312.42435066 320.24242123 312.42435066 319.02779173 312.39681636 C302.59808087 312.02523843 286.16791507 311.67886855 269.73699983 311.36500082 C260.42194939 311.18705349 251.10704348 311.00250961 241.79223633 310.81225586 C240.94943279 310.79516155 240.10662926 310.77806724 239.23828622 310.76045491 C214.73870723 310.26060136 190.27214589 309.42986365 165.79391344 308.29660819 C125.90250763 306.44979005 86.03732773 305.17982958 46.09943641 305.14658036 C44.50897189 305.14521365 42.91850784 305.14311607 41.32804524 305.14028964 C-37.5133746 305.00531502 -103.97082682 308.91076335 -163.52726094 367.12336398 C-188.38087655 391.97851495 -210.60272126 420.04013588 -229.42095524 449.719724 C-234.44627637 457.53470195 -238.00370356 461.2158497 -247.01953125 463.8984375 C-257.45600695 465.67920678 -265.74521563 464.625344 -274.70703125 458.76953125 C-282.12356812 453.04603687 -286.55153627 446.30121318 -288 437 C-288.0944182 434.21858347 -288.13925894 431.46261367 -288.13371277 428.68151855 C-288.13597833 427.84676797 -288.13824388 427.01201739 -288.14057809 426.15197134 C-288.14690588 423.35585743 -288.14608946 420.55979215 -288.14526367 417.76367188 C-288.14825623 415.75762367 -288.15165898 413.75157604 -288.15544128 411.74552917 C-288.16428321 406.29210673 -288.16661969 400.83869999 -288.16725707 395.38527107 C-288.16796834 391.97072817 -288.17010429 388.55618925 -288.17275429 385.14164734 C-288.18201368 373.20657092 -288.1860891 361.27150567 -288.18530273 349.33642578 C-288.18470423 338.25260833 -288.19520972 327.16883991 -288.2110464 316.08503485 C-288.22418718 306.54413041 -288.22948379 297.00324184 -288.22884732 287.46232843 C-288.22859392 281.77588842 -288.23135606 276.08949183 -288.24202538 270.40306091 C-288.25181491 265.03831145 -288.25171239 259.67364588 -288.24450874 254.3088932 C-288.2434757 252.35683887 -288.24574798 250.40477901 -288.2518692 248.45273399 C-288.30129251 231.57587659 -287.43735147 214.67304784 -284.25 198.0625 C-284.07936035 197.16249268 -283.9087207 196.26248535 -283.73291016 195.33520508 C-277.33281977 162.80659035 -264.83654002 129.80613517 -245 103 C-244.30777344 102.03835938 -243.61554688 101.07671875 -242.90234375 100.0859375 C-231.62223929 84.68769966 -218.86054597 69.06796015 -204 57 C-202.82757852 56.01627594 -201.65576659 55.0318252 -200.484375 54.046875 C-165.05335732 24.48458427 -123.47627349 6.4544733 -78 -1 C-77.21238281 -1.13132324 -76.42476562 -1.26264648 -75.61328125 -1.39794922 C-51.08216194 -5.26757047 -24.38186362 -4.16780456 0 0 Z '
fill='#4185F3'
transform='translate(394,440)'
/>
<path
d='M0 0 C0.84159668 0.41121094 1.68319336 0.82242187 2.55029297 1.24609375 C14.71831585 7.25763667 26.12081333 13.88025718 37 22 C37.91386475 22.680625 37.91386475 22.680625 38.84619141 23.375 C47.3442083 29.7615534 55.33491318 36.63400459 63 44 C63.59458008 44.56734863 64.18916016 45.13469727 64.80175781 45.71923828 C73.69930679 54.25198316 81.69744094 63.07076231 89 73 C89.63929443 73.85609863 89.63929443 73.85609863 90.29150391 74.72949219 C100.43354301 88.33663206 108.67420729 102.71010258 116 118 C116.67482422 119.37865234 116.67482422 119.37865234 117.36328125 120.78515625 C127.8727502 142.93377648 133.86707037 166.75512603 137 191 C137.17128418 192.27705811 137.34256836 193.55411621 137.51904297 194.86987305 C138.22536878 201.32344617 138.20134476 207.78767265 138.23828125 214.2734375 C138.24439454 215.28303968 138.24439454 215.28303968 138.25063133 216.31303787 C138.27135228 219.8724256 138.28571641 223.43177631 138.29516602 226.99121094 C138.30623374 230.63452388 138.34067753 234.27722681 138.38033772 237.92032433 C138.40666551 240.75333675 138.41487174 243.58620664 138.41844749 246.4193306 C138.42558411 248.40605687 138.45193759 250.39268495 138.47883606 252.37924194 C138.44942207 264.76015309 135.12264488 274.57193005 127 284 C118.57776719 292.3088566 107.25707403 297.12771911 95.43405437 297.12304783 C94.31986273 297.12503888 93.20567109 297.12702993 92.05771607 297.12908131 C90.83884967 297.12616847 89.61998327 297.12325563 88.36418152 297.12025452 C86.41604418 297.12153615 86.41604418 297.12153615 84.42855054 297.12284368 C80.82553724 297.1250799 77.22255366 297.12107927 73.61954415 297.11606562 C69.7334335 297.1117488 65.84732453 297.11320842 61.96121216 297.1139679 C55.22888479 297.11449235 48.49656711 297.11135375 41.76424217 297.10573006 C32.03042012 297.09760442 22.29660275 297.09499874 12.56277768 297.09374207 C-3.22955387 297.09155322 -19.02188025 297.08489767 -34.81420898 297.07543945 C-50.15535455 297.06626101 -65.49649872 297.05918229 -80.83764648 297.05493164 C-81.78321047 297.05466892 -82.72877445 297.05440619 -83.70299188 297.05413551 C-88.44658929 297.05283048 -93.1901867 297.05156677 -97.93378413 297.05032361 C-137.28919303 297.03995621 -176.64459618 297.02234244 -216 297 C-216 296.67 -216 296.34 -216 296 C-215.10539063 295.78085937 -214.21078125 295.56171875 -213.2890625 295.3359375 C-199.60744526 291.74779481 -190.30226454 286.44506049 -182.33886719 274.51049805 C-175.8694217 262.19130537 -177.24804735 248.40718553 -177.47143555 234.86889648 C-177.50929034 232.14367461 -177.51761785 229.41872657 -177.52514935 226.69327831 C-177.58592774 206.53538226 -178.58970103 187.22051454 -183.1875 167.5625 C-183.34061646 166.90023407 -183.49373291 166.23796814 -183.65148926 165.55563354 C-193.05991068 125.06154086 -212.75392634 88.11244854 -240.77734375 57.4453125 C-242.91048395 55.09848338 -244.98632073 52.70965414 -247.0625 50.3125 C-250.74767655 46.15843419 -254.73024771 42.54055591 -259 39 C-259.90878906 38.23623047 -259.90878906 38.23623047 -260.8359375 37.45703125 C-262.2186283 36.29829741 -263.60842508 35.14804931 -265 34 C-261.24101804 29.06359373 -257.22764272 25.6831341 -252.125 22.1875 C-251.37541016 21.66760498 -250.62582031 21.14770996 -249.85351562 20.61206055 C-242.75668826 15.74085214 -235.4948349 11.22981506 -228 7 C-227.34596191 6.6277832 -226.69192383 6.25556641 -226.01806641 5.87207031 C-214.74568717 -0.48948891 -203.12149343 -5.48811078 -191 -10 C-189.783125 -10.46148437 -188.56625 -10.92296875 -187.3125 -11.3984375 C-127.13030363 -32.87253938 -57.14586678 -27.9977207 0 0 Z '
fill='#4185F3'
transform='translate(774,461)'
/>
<path
d='M0 0 C2.5086616 2.21585252 4.93546061 4.49626878 7.3515625 6.8125 C8.23457031 7.62074219 9.11757813 8.42898437 10.02734375 9.26171875 C26.83279315 25.16390495 37.10842709 45.7665863 43.3515625 67.8125 C43.69316406 68.99070312 44.03476562 70.16890625 44.38671875 71.3828125 C50.59092755 97.64248697 47.11935597 127.30989764 36.3515625 151.8125 C35.92665527 152.79379883 35.92665527 152.79379883 35.49316406 153.79492188 C25.5268296 176.37059662 8.35413683 195.88783887 -12.6484375 208.8125 C-13.55078125 209.410625 -14.453125 210.00875 -15.3828125 210.625 C-42.35348642 227.69118915 -77.57347657 232.41053788 -108.6484375 226.1875 C-132.14362975 220.89155145 -153.29033371 209.45309871 -170.6484375 192.8125 C-171.53144531 192.00425781 -172.41445313 191.19601562 -173.32421875 190.36328125 C-190.12966815 174.46109505 -200.40530209 153.8584137 -206.6484375 131.8125 C-206.99003906 130.63429688 -207.33164062 129.45609375 -207.68359375 128.2421875 C-213.88780255 101.98251303 -210.41623097 72.31510236 -199.6484375 47.8125 C-199.36516602 47.15830078 -199.08189453 46.50410156 -198.79003906 45.83007812 C-188.8237046 23.25440338 -171.65101183 3.73716113 -150.6484375 -9.1875 C-149.29492188 -10.0846875 -149.29492188 -10.0846875 -147.9140625 -11 C-102.93060045 -39.46411158 -40.49856726 -33.45014405 0 0 Z '
fill='#4285F4'
transform='translate(753.6484375,172.1875)'
/>
<path
d='M0 0 C2.5086616 2.21585252 4.93546061 4.49626878 7.3515625 6.8125 C8.23457031 7.62074219 9.11757813 8.42898437 10.02734375 9.26171875 C26.83279315 25.16390495 37.10842709 45.7665863 43.3515625 67.8125 C43.69316406 68.99070312 44.03476562 70.16890625 44.38671875 71.3828125 C50.59092755 97.64248697 47.11935597 127.30989764 36.3515625 151.8125 C35.92665527 152.79379883 35.92665527 152.79379883 35.49316406 153.79492188 C25.5268296 176.37059662 8.35413683 195.88783887 -12.6484375 208.8125 C-13.55078125 209.410625 -14.453125 210.00875 -15.3828125 210.625 C-42.35348642 227.69118915 -77.57347657 232.41053788 -108.6484375 226.1875 C-132.14362975 220.89155145 -153.29033371 209.45309871 -170.6484375 192.8125 C-171.53144531 192.00425781 -172.41445313 191.19601562 -173.32421875 190.36328125 C-190.12966815 174.46109505 -200.40530209 153.8584137 -206.6484375 131.8125 C-206.99003906 130.63429688 -207.33164063 129.45609375 -207.68359375 128.2421875 C-213.88780255 101.98251303 -210.41623097 72.31510236 -199.6484375 47.8125 C-199.36516602 47.15830078 -199.08189453 46.50410156 -198.79003906 45.83007812 C-188.8237046 23.25440338 -171.65101183 3.73716113 -150.6484375 -9.1875 C-149.29492188 -10.0846875 -149.29492188 -10.0846875 -147.9140625 -11 C-102.93060045 -39.46411158 -40.49856726 -33.45014405 0 0 Z '
fill='#4285F4'
transform='translate(433.6484375,172.1875)'
/>
<path
d='M0 0 C3.81562395 1.29823475 6.07090879 2.74966858 8.8125 5.6875 C11.4212352 8.40859646 14.04942755 10.95293127 16.9375 13.375 C51.99603414 43.73637132 74.26678331 91.46037764 84.375 135.8125 C84.61371826 136.84769775 84.85243652 137.88289551 85.09838867 138.94946289 C89.0693436 157.37670439 89.42863544 175.94083356 89.48046875 194.72631836 C89.48930372 197.45992471 89.51740015 200.19229146 89.5625 202.92553711 C90.0727242 234.5058769 90.0727242 234.5058769 78.75 248.5 C67.10259629 260.32182406 52.90572797 263.38672329 36.8588047 263.52641392 C33.85098681 263.53023974 30.8436979 263.51414279 27.8359375 263.49609375 C25.70992992 263.49624909 23.58392206 263.49774385 21.45791626 263.50050354 C17.02520058 263.50188017 12.59281136 263.48945128 8.16015625 263.46655273 C2.50723581 263.43813586 -3.14514462 263.44092501 -8.79810524 263.45364285 C-13.18043552 263.46062972 -17.56264313 263.45277705 -21.94495773 263.44038582 C-24.02834985 263.43590298 -26.11175527 263.43550647 -28.19514847 263.43945122 C-45.28053358 263.45666805 -61.10730832 262.67785762 -74.25 250.4375 C-84.29292795 239.84189519 -87.30277119 227.81294372 -87.3359375 213.64453125 C-87.34418045 212.55703079 -87.3524234 211.46953033 -87.36091614 210.34907532 C-87.38009551 206.83674954 -87.38011101 203.32487017 -87.375 199.8125 C-87.37545319 198.61937195 -87.37590637 197.4262439 -87.37637329 196.19696045 C-87.35610617 178.09521781 -86.46012832 160.79921916 -83 143 C-82.75469856 141.54891669 -82.51332288 140.0971597 -82.27734375 138.64453125 C-78.04339545 114.58454961 -68.4884574 91.45015164 -57 70 C-56.38769531 68.84628906 -55.77539062 67.69257812 -55.14453125 66.50390625 C-47.06102443 51.82025778 -37.08959704 38.53023956 -26 26 C-25.22914063 25.11828125 -24.45828125 24.2365625 -23.6640625 23.328125 C-16.29692403 15.00455101 -8.575012 7.08370557 0 0 Z '
fill='#1967D2'
transform='translate(508,495)'
/>
</svg>
)
}
export function CursorIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg {...props} xmlns='http://www.w3.org/2000/svg' viewBox='0 0 546 546' fill='currentColor'>
<path d='m466.383 137.073-206.469-119.2034c-6.63-3.8287-14.811-3.8287-21.441 0l-206.4586 119.2034c-5.5734 3.218-9.0144 9.169-9.0144 15.615v240.375c0 6.436 3.441 12.397 9.0144 15.615l206.4686 119.203c6.63 3.829 14.811 3.829 21.441 0l206.468-119.203c5.574-3.218 9.015-9.17 9.015-15.615v-240.375c0-6.436-3.441-12.397-9.015-15.615zm-12.969 25.25-199.316 345.223c-1.347 2.326-4.904 1.376-4.904-1.319v-226.048c0-4.517-2.414-8.695-6.33-10.963l-195.7577-113.019c-2.3263-1.347-1.3764-4.905 1.3182-4.905h398.6305c5.661 0 9.199 6.136 6.368 11.041h-.009z' />
</svg>
)
}
export function DuckDuckGoIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg {...props} xmlns='http://www.w3.org/2000/svg' viewBox='-108 -108 216 216'>
<circle r='108' fill='#d53' />
<circle r='96' fill='none' stroke='#ffffff' strokeWidth='7' />
<path
d='M-32-55C-62-48-51-6-51-6l19 93 7 3M-39-73h-8l11 4s-11 0-11 7c24-1 35 5 35 5'
fill='#ddd'
/>
<path d='M25 95S1 57 1 32c0-47 31-7 31-44S1-58 1-58c-15-19-44-15-44-15l7 4s-7 2-9 4 19-3 28 5c-37 3-31 33-31 33l21 120' />
<path d='M25-1l38-10c34 5-29 24-33 23C0 7 9 32 45 24s9 20-24 9C-26 20-1-3 25-1' fill='#fc0' />
<path
d='M15 78l2-3c22 8 23 11 22-9s0-20-23-3c0-5-13-3-15 0-21-9-23-12-22 2 2 29 1 24 21 14'
fill='#6b5'
/>
<path d='M-1 67v12c1 2 17 2 17-2s-8 3-13 1-2-13-2-13' fill='#4a4' />
<path
d='M-23-32c-5-6-18-1-15 7 1-4 8-10 15-7m32 0c1-6 11-7 14-1-4-2-10-2-14 1m-33 16a2 2 0 1 1 0 1m-8 3a7 7 0 1 0 0-1m52-6a2 2 0 1 1 0 1m-6 3a6 6 0 1 0 0-1'
fill='#148'
/>
</svg>
)
}
export function RssIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg
{...props}
width='24'
height='24'
viewBox='0 0 24 24'
fill='none'
xmlns='http://www.w3.org/2000/svg'
>
<path
d='M4 11C6.38695 11 8.67613 11.9482 10.364 13.636C12.0518 15.3239 13 17.6131 13 20'
stroke='currentColor'
strokeWidth='2'
strokeLinecap='round'
strokeLinejoin='round'
/>
<path
d='M4 4C8.24346 4 12.3131 5.68571 15.3137 8.68629C18.3143 11.6869 20 15.7565 20 20'
stroke='currentColor'
strokeWidth='2'
strokeLinecap='round'
strokeLinejoin='round'
/>
<circle cx='5' cy='19' r='1' fill='currentColor' />
</svg>
)
}
export function ZapierIcon(props: SVGProps<SVGSVGElement>) {
return (
<svg
{...props}
width='800px'
height='800px'
viewBox='0 0 256 256'
version='1.1'
xmlns='http://www.w3.org/2000/svg'
xmlnsXlink='http://www.w3.org/1999/xlink'
>
<g>
<path
d='M128.080089,-0.000183105 C135.311053,0.0131003068 142.422517,0.624138494 149.335663,1.77979593 L149.335663,1.77979593 L149.335663,76.2997796 L202.166953,23.6044907 C208.002065,27.7488446 213.460883,32.3582023 218.507811,37.3926715 C223.557281,42.4271407 228.192318,47.8867213 232.346817,53.7047992 L232.346817,53.7047992 L179.512985,106.400063 L254.227854,106.400063 C255.387249,113.29414 256,120.36111 256,127.587243 L256,127.587243 L256,127.759881 C256,134.986013 255.387249,142.066204 254.227854,148.960282 L254.227854,148.960282 L179.500273,148.960282 L232.346817,201.642324 C228.192318,207.460402 223.557281,212.919983 218.523066,217.954452 L218.523066,217.954452 L218.507811,217.954452 C213.460883,222.988921 208.002065,227.6115 202.182208,231.742607 L202.182208,231.742607 L149.335663,179.04709 L149.335663,253.5672 C142.435229,254.723036 135.323765,255.333244 128.092802,255.348499 L128.092802,255.348499 L127.907197,255.348499 C120.673691,255.333244 113.590195,254.723036 106.677048,253.5672 L106.677048,253.5672 L106.677048,179.04709 L53.8457596,231.742607 C42.1780766,223.466917 31.977435,213.278734 23.6658953,201.642324 L23.6658953,201.642324 L76.4997269,148.960282 L1.78485803,148.960282 C0.612750404,142.052729 0,134.946095 0,127.719963 L0,127.719963 L0,127.349037 C0.0121454869,125.473817 0.134939797,123.182933 0.311311815,120.812834 L0.36577283,120.099764 C0.887996182,113.428547 1.78485803,106.400063 1.78485803,106.400063 L1.78485803,106.400063 L76.4997269,106.400063 L23.6658953,53.7047992 C27.8076812,47.8867213 32.4300059,42.4403618 37.4769335,37.4193681 L37.4769335,37.4193681 L37.5023588,37.3926715 C42.5391163,32.3582023 48.0106469,27.7488446 53.8457596,23.6044907 L53.8457596,23.6044907 L106.677048,76.2997796 L106.677048,1.77979593 C113.590195,0.624138494 120.688946,0.0131003068 127.932622,-0.000183105 L127.932622,-0.000183105 L128.080089,-0.000183105 Z M128.067377,95.7600714 L127.945335,95.7600714 C118.436262,95.7600714 109.32891,97.5001809 100.910584,100.661566 C97.7553011,109.043534 96.0085811,118.129275 95.9958684,127.613685 L95.9958684,127.733184 C96.0085811,137.217594 97.7553011,146.303589 100.923296,154.685303 C109.32891,157.846943 118.436262,159.587052 127.945335,159.587052 L128.067377,159.587052 C137.576449,159.587052 146.683802,157.846943 155.089415,154.685303 C158.257411,146.290368 160.004131,137.217594 160.004131,127.733184 L160.004131,127.613685 C160.004131,118.129275 158.257411,109.043534 155.089415,100.661566 C146.683802,97.5001809 137.576449,95.7600714 128.067377,95.7600714 Z'
fill='#FF4A00'
fillRule='nonzero'
/>
</g>
</svg>
)
}

View File

@@ -20,7 +20,7 @@ export function Navbar() {
<div
className='relative flex w-full items-center justify-between'
style={{
paddingLeft: 'calc(var(--sidebar-offset) + 20px)',
paddingLeft: 'calc(var(--sidebar-offset) + 32px)',
paddingRight: 'calc(var(--toc-offset) + 60px)',
}}
>

View File

@@ -4,6 +4,7 @@
import type { ComponentType, SVGProps } from 'react'
import {
AhrefsIcon,
AirtableIcon,
ApifyIcon,
ApolloIcon,
@@ -14,22 +15,31 @@ import {
CalendlyIcon,
ClayIcon,
ConfluenceIcon,
CursorIcon,
DatadogIcon,
DiscordIcon,
DocumentIcon,
DropboxIcon,
DuckDuckGoIcon,
DynamoDBIcon,
ElasticsearchIcon,
ElevenLabsIcon,
ExaAIIcon,
EyeIcon,
FirecrawlIcon,
GithubIcon,
GitLabIcon,
GmailIcon,
GoogleCalendarIcon,
GoogleDocsIcon,
GoogleDriveIcon,
GoogleFormsIcon,
GoogleGroupsIcon,
GoogleIcon,
GoogleSheetsIcon,
GoogleSlidesIcon,
GoogleVaultIcon,
GrafanaIcon,
HubspotIcon,
HuggingFaceIcon,
HunterIOIcon,
@@ -38,6 +48,7 @@ import {
IntercomIcon,
JinaAIIcon,
JiraIcon,
KalshiIcon,
LinearIcon,
LinkedInIcon,
LinkupIcon,
@@ -61,6 +72,7 @@ import {
PerplexityIcon,
PineconeIcon,
PipedriveIcon,
PolymarketIcon,
PostgresIcon,
PosthogIcon,
PylonIcon,
@@ -74,8 +86,11 @@ import {
SendgridIcon,
SentryIcon,
SerperIcon,
SftpIcon,
ShopifyIcon,
SlackIcon,
SmtpIcon,
SshIcon,
STTIcon,
StagehandIcon,
StripeIcon,
@@ -92,19 +107,25 @@ import {
WebflowIcon,
WhatsAppIcon,
WikipediaIcon,
WordpressIcon,
xIcon,
YouTubeIcon,
ZapierIcon,
ZendeskIcon,
ZepIcon,
ZoomIcon,
} from '@/components/icons'
type IconComponent = ComponentType<SVGProps<SVGSVGElement>>
export const blockTypeToIconMap: Record<string, IconComponent> = {
zoom: ZoomIcon,
zep: ZepIcon,
zendesk: ZendeskIcon,
zapier: ZapierIcon,
youtube: YouTubeIcon,
x: xIcon,
wordpress: WordpressIcon,
wikipedia: WikipediaIcon,
whatsapp: WhatsAppIcon,
webflow: WebflowIcon,
@@ -125,9 +146,12 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
stripe: StripeIcon,
stagehand_agent: StagehandIcon,
stagehand: StagehandIcon,
ssh: SshIcon,
smtp: SmtpIcon,
slack: SlackIcon,
shopify: ShopifyIcon,
sharepoint: MicrosoftSharepointIcon,
sftp: SftpIcon,
serper: SerperIcon,
sentry: SentryIcon,
sendgrid: SendgridIcon,
@@ -141,6 +165,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
pylon: PylonIcon,
posthog: PosthogIcon,
postgresql: PostgresIcon,
polymarket: PolymarketIcon,
pipedrive: PipedriveIcon,
pinecone: PineconeIcon,
perplexity: PerplexityIcon,
@@ -164,6 +189,7 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
linkedin: LinkedInIcon,
linear: LinearIcon,
knowledge: PackageSearchIcon,
kalshi: KalshiIcon,
jira: JiraIcon,
jina: JinaAIIcon,
intercom: IntercomIcon,
@@ -172,21 +198,30 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
hunter: HunterIOIcon,
huggingface: HuggingFaceIcon,
hubspot: HubspotIcon,
grafana: GrafanaIcon,
google_vault: GoogleVaultIcon,
google_slides: GoogleSlidesIcon,
google_sheets: GoogleSheetsIcon,
google_groups: GoogleGroupsIcon,
google_forms: GoogleFormsIcon,
google_drive: GoogleDriveIcon,
google_docs: GoogleDocsIcon,
google_calendar: GoogleCalendarIcon,
google_search: GoogleIcon,
gmail: GmailIcon,
gitlab: GitLabIcon,
github: GithubIcon,
firecrawl: FirecrawlIcon,
file: DocumentIcon,
exa: ExaAIIcon,
elevenlabs: ElevenLabsIcon,
elasticsearch: ElasticsearchIcon,
dynamodb: DynamoDBIcon,
duckduckgo: DuckDuckGoIcon,
dropbox: DropboxIcon,
discord: DiscordIcon,
datadog: DatadogIcon,
cursor: CursorIcon,
confluence: ConfluenceIcon,
clay: ClayIcon,
calendly: CalendlyIcon,
@@ -196,4 +231,5 @@ export const blockTypeToIconMap: Record<string, IconComponent> = {
apollo: ApolloIcon,
apify: ApifyIcon,
airtable: AirtableIcon,
ahrefs: AhrefsIcon,
}

View File

@@ -143,7 +143,7 @@ Function (Process) → Condition (account_type === 'enterprise') → Advanced or
## Bewährte Praktiken
- **Bedingungen korrekt anordnen**: Platzieren Sie spezifischere Bedingungen vor allgemeinen, um sicherzustellen, dass spezifische Logik Vorrang vor Fallbacks hat
- **Eine Standardbedingung einfügen**: Fügen Sie eine Auffangbedingung (`true`) als letzte Bedingung hinzu, um nicht übereinstimmende Fälle zu behandeln und zu verhindern, dass die Workflow-Ausführung stecken bleibt
- **Ausdrücke einfach halten**: Verwenden Sie klare, unkomplizierte boolesche Ausdrücke für bessere Lesbarkeit und einfachere Fehlersuche
- **Verwenden Sie den Else-Zweig bei Bedarf**: Wenn keine Bedingungen übereinstimmen und der Else-Zweig nicht verbunden ist, endet der Workflow-Zweig ordnungsgemäß. Verbinden Sie den Else-Zweig, wenn Sie einen Fallback-Pfad für nicht übereinstimmende Fälle benötigen
- **Halten Sie Ausdrücke einfach**: Verwenden Sie klare, unkomplizierte boolesche Ausdrücke für bessere Lesbarkeit und einfachere Fehlersuche
- **Dokumentieren Sie Ihre Bedingungen**: Fügen Sie Beschreibungen hinzu, um den Zweck jeder Bedingung für bessere Teamzusammenarbeit und Wartung zu erklären
- **Grenzfälle testen**: Überprüfen Sie, ob Bedingungen Grenzwerte korrekt behandeln, indem Sie mit Werten an den Grenzen Ihrer Bedingungsbereiche testen
- **Testen Sie Grenzfälle**: Überprüfen Sie, ob Bedingungen Grenzwerte korrekt behandeln, indem Sie mit Werten an den Grenzen Ihrer Bedingungsbereiche testen

View File

@@ -251,32 +251,78 @@ Rufen Sie Ausführungsdetails einschließlich des Workflow-Zustandsschnappschuss
</Tab>
</Tabs>
## Webhook-Abonnements
## Benachrichtigungen
Erhalten Sie Echtzeitbenachrichtigungen, wenn Workflow-Ausführungen abgeschlossen werden. Webhooks werden über die Sim-Benutzeroberfläche im Workflow-Editor konfiguriert.
Erhalten Sie Echtzeit-Benachrichtigungen, wenn Workflow-Ausführungen abgeschlossen sind, per Webhook, E-Mail oder Slack. Benachrichtigungen werden auf Workspace-Ebene von der Protokollseite aus konfiguriert.
### Konfiguration
Webhooks können für jeden Workflow über die Benutzeroberfläche des Workflow-Editors konfiguriert werden. Klicken Sie auf das Webhook-Symbol in der Kontrollleiste, um Ihre Webhook-Abonnements einzurichten.
Konfigurieren Sie Benachrichtigungen von der Protokollseite aus, indem Sie auf die Menütaste klicken und "Benachrichtigungen konfigurieren" auswählen.
<div className="mx-auto w-full overflow-hidden rounded-lg">
<Video src="configure-webhook.mp4" width={700} height={450} />
</div>
**Benachrichtigungskanäle:**
- **Webhook**: Senden Sie HTTP POST-Anfragen an Ihren Endpunkt
- **E-Mail**: Erhalten Sie E-Mail-Benachrichtigungen mit Ausführungsdetails
- **Slack**: Posten Sie Nachrichten in einen Slack-Kanal
**Verfügbare Konfigurationsoptionen:**
**Workflow-Auswahl:**
- Wählen Sie bestimmte Workflows zur Überwachung aus
- Oder wählen Sie "Alle Workflows", um aktuelle und zukünftige Workflows einzubeziehen
**Filteroptionen:**
- `levelFilter`: Zu empfangende Protokollebenen (`info`, `error`)
- `triggerFilter`: Zu empfangende Auslösertypen (`api`, `webhook`, `schedule`, `manual`, `chat`)
**Optionale Daten:**
- `includeFinalOutput`: Schließt die endgültige Ausgabe des Workflows ein
- `includeTraceSpans`: Schließt detaillierte Ausführungs-Trace-Spans ein
- `includeRateLimits`: Schließt Informationen zum Ratenlimit ein (Sync/Async-Limits und verbleibende)
- `includeUsageData`: Schließt Abrechnungszeitraum-Nutzung und -Limits ein
### Alarmregeln
Anstatt Benachrichtigungen für jede Ausführung zu erhalten, konfigurieren Sie Alarmregeln, um nur bei erkannten Problemen benachrichtigt zu werden:
**Aufeinanderfolgende Fehler**
- Alarm nach X aufeinanderfolgenden fehlgeschlagenen Ausführungen (z.B. 3 Fehler in Folge)
- Wird zurückgesetzt, wenn eine Ausführung erfolgreich ist
**Fehlerrate**
- Alarm, wenn die Fehlerrate X% in den letzten Y Stunden überschreitet
- Erfordert mindestens 5 Ausführungen im Zeitfenster
- Wird erst nach Ablauf des vollständigen Zeitfensters ausgelöst
**Latenz-Schwellenwert**
- Alarm, wenn eine Ausführung länger als X Sekunden dauert
- Nützlich zum Erkennen langsamer oder hängender Workflows
**Latenz-Spitze**
- Alarm, wenn die Ausführung X% langsamer als der Durchschnitt ist
- Vergleicht mit der durchschnittlichen Dauer über das konfigurierte Zeitfenster
- Erfordert mindestens 5 Ausführungen, um eine Baseline zu etablieren
**Kostenschwelle**
- Alarmierung, wenn eine einzelne Ausführung mehr als $X kostet
- Nützlich, um teure LLM-Aufrufe zu erkennen
**Keine Aktivität**
- Alarmierung, wenn innerhalb von X Stunden keine Ausführungen stattfinden
- Nützlich zur Überwachung geplanter Workflows, die regelmäßig ausgeführt werden sollten
**Fehlerzählung**
- Alarmierung, wenn die Fehleranzahl X innerhalb eines Zeitfensters überschreitet
- Erfasst die Gesamtfehler, nicht aufeinanderfolgende
Alle Alarmtypen beinhalten eine Abklingzeit von 1 Stunde, um Benachrichtigungsspam zu vermeiden.
### Webhook-Konfiguration
Für Webhooks stehen zusätzliche Optionen zur Verfügung:
- `url`: Ihre Webhook-Endpunkt-URL
- `secret`: Optionales Geheimnis für die HMAC-Signaturverifizierung
- `includeFinalOutput`: Die endgültige Ausgabe des Workflows in die Nutzlast einschließen
- `includeTraceSpans`: Detaillierte Ausführungs-Trace-Spans einschließen
- `includeRateLimits`: Informationen zum Ratelimit des Workflow-Besitzers einschließen
- `includeUsageData`: Nutzungs- und Abrechnungsdaten des Workflow-Besitzers einschließen
- `levelFilter`: Array von Log-Ebenen, die empfangen werden sollen (`info`, `error`)
- `triggerFilter`: Array von Auslösertypen, die empfangen werden sollen (`api`, `webhook`, `schedule`, `manual`, `chat`)
- `active`: Webhook-Abonnement aktivieren/deaktivieren
- `secret`: Optionales Geheimnis für HMAC-Signaturverifizierung
### Webhook-Nutzlast
### Payload-Struktur
Wenn eine Workflow-Ausführung abgeschlossen ist, sendet Sim eine POST-Anfrage an Ihre Webhook-URL:
Wenn eine Workflow-Ausführung abgeschlossen ist, sendet Sim die folgende Payload (über Webhook POST, E-Mail oder Slack):
```json
{
@@ -327,17 +373,17 @@ Wenn eine Workflow-Ausführung abgeschlossen ist, sendet Sim eine POST-Anfrage a
### Webhook-Header
Jede Webhook-Anfrage enthält diese Header:
Jede Webhook-Anfrage enthält diese Header (nur Webhook-Kanal):
- `sim-event`: Ereignistyp (immer `workflow.execution.completed`)
- `sim-timestamp`: Unix-Zeitstempel in Millisekunden
- `sim-delivery-id`: Eindeutige Lieferungs-ID für Idempotenz
- `sim-signature`: HMAC-SHA256-Signatur zur Verifizierung (falls Secret konfiguriert)
- `Idempotency-Key`: Identisch mit der Lieferungs-ID zur Erkennung von Duplikaten
- `sim-delivery-id`: Eindeutige Zustell-ID für Idempotenz
- `sim-signature`: HMAC-SHA256-Signatur zur Verifizierung (falls Geheimnis konfiguriert)
- `Idempotency-Key`: Gleich wie Zustell-ID zur Erkennung von Duplikaten
### Signaturverifizierung
Wenn Sie ein Webhook-Secret konfigurieren, überprüfen Sie die Signatur, um sicherzustellen, dass der Webhook von Sim stammt:
Wenn Sie ein Webhook-Geheimnis konfigurieren, überprüfen Sie die Signatur, um sicherzustellen, dass der Webhook von Sim stammt:
<Tabs items={['Node.js', 'Python']}>
<Tab value="Node.js">
@@ -414,7 +460,7 @@ Fehlgeschlagene Webhook-Zustellungen werden mit exponentiellem Backoff und Jitte
- Maximale Versuche: 5
- Wiederholungsverzögerungen: 5 Sekunden, 15 Sekunden, 1 Minute, 3 Minuten, 10 Minuten
- Jitter: Bis zu 10% zusätzliche Verzögerung, um Überlastungen zu vermeiden
- Jitter: Bis zu 10% zusätzliche Verzögerung, um Überlastung zu vermeiden
- Nur HTTP 5xx und 429 Antworten lösen Wiederholungen aus
- Zustellungen haben ein Timeout nach 30 Sekunden
@@ -424,15 +470,15 @@ Fehlgeschlagene Webhook-Zustellungen werden mit exponentiellem Backoff und Jitte
## Best Practices
1. **Polling-Strategie**: Verwenden Sie beim Abfragen von Logs die cursorbasierte Paginierung mit `order=asc` und `startDate`, um neue Logs effizient abzurufen.
1. **Polling-Strategie**: Verwende bei der Abfrage von Logs eine cursor-basierte Paginierung mit `order=asc` und `startDate`, um neue Logs effizient abzurufen.
2. **Webhook-Sicherheit**: Konfigurieren Sie immer ein Webhook-Secret und überprüfen Sie Signaturen, um sicherzustellen, dass Anfragen von Sim stammen.
2. **Webhook-Sicherheit**: Konfiguriere immer ein Webhook-Secret und überprüfe Signaturen, um sicherzustellen, dass Anfragen von Sim stammen.
3. **Idempotenz**: Verwenden Sie den `Idempotency-Key`Header, um doppelte Webhook-Zustellungen zu erkennen und zu behandeln.
3. **Idempotenz**: Verwende den `Idempotency-Key`Header, um doppelte Webhook-Zustellungen zu erkennen und zu behandeln.
4. **Datenschutz**: Standardmäßig werden `finalOutput` und `traceSpans` von den Antworten ausgeschlossen. Aktivieren Sie diese nur, wenn Sie die Daten benötigen und die Datenschutzauswirkungen verstehen.
4. **Datenschutz**: Standardmäßig werden `finalOutput` und `traceSpans` aus den Antworten ausgeschlossen. Aktiviere diese nur, wenn du die Daten benötigst und die Datenschutzauswirkungen verstehst.
5. **Rate-Limiting**: Implementieren Sie exponentielles Backoff, wenn Sie 429-Antworten erhalten. Überprüfen Sie den `Retry-After`Header für die empfohlene Wartezeit.
5. **Rate-Limiting**: Implementiere exponentielles Backoff, wenn du 429-Antworten erhältst. Überprüfe den `Retry-After`Header für die empfohlene Wartezeit.
## Rate-Limiting
@@ -443,7 +489,7 @@ Die API implementiert Rate-Limiting, um eine faire Nutzung zu gewährleisten:
- **Team-Plan**: 60 Anfragen pro Minute
- **Enterprise-Plan**: Individuelle Limits
Informationen zum Rate-Limit sind in den Antwort-Headern enthalten:
Rate-Limit-Informationen sind in den Antwort-Headern enthalten:
- `X-RateLimit-Limit`: Maximale Anfragen pro Zeitfenster
- `X-RateLimit-Remaining`: Verbleibende Anfragen im aktuellen Zeitfenster
- `X-RateLimit-Reset`: ISO-Zeitstempel, wann das Zeitfenster zurückgesetzt wird
@@ -495,7 +541,7 @@ async function pollLogs() {
setInterval(pollLogs, 30000);
```
## Beispiel: Verarbeitung von Webhooks
## Beispiel: Verarbeiten von Webhooks
```javascript
import express from 'express';

View File

@@ -147,4 +147,4 @@ Der Snapshot bietet:
- Erfahren Sie mehr über die [Kostenberechnung](/execution/costs), um die Preisgestaltung von Workflows zu verstehen
- Erkunden Sie die [externe API](/execution/api) für programmatischen Zugriff auf Protokolle
- Richten Sie [Webhook-Benachrichtigungen](/execution/api#webhook-subscriptions) für Echtzeit-Warnungen ein
- Richten Sie [Benachrichtigungen](/execution/api#notifications) für Echtzeit-Warnungen per Webhook, E-Mail oder Slack ein

View File

@@ -72,7 +72,7 @@ Für benutzerdefinierte Integrationen nutzen Sie unsere [MCP (Model Context Prot
<Video src="introduction/integrations-sidebar.mp4" width={700} height={450} />
</div>
## KI-gesteuerter Copilot
## Copilot
**Fragen stellen & Anleitung erhalten**
Der Copilot beantwortet Fragen zu Sim, erklärt Ihre Workflows und gibt Verbesserungsvorschläge. Verwenden Sie das `@` Symbol, um auf Workflows, Blöcke, Dokumentation, Wissen und Protokolle für kontextbezogene Unterstützung zu verweisen.

View File

@@ -1,5 +1,7 @@
---
title: Wissensdatenbank
title: Übersicht
description: Laden Sie Ihre Dokumente hoch, verarbeiten und durchsuchen Sie sie
mit intelligenter Vektorsuche und Chunking
---
import { Video } from '@/components/ui/video'

View File

@@ -0,0 +1,155 @@
---
title: Docker
description: Sim Studio mit Docker Compose bereitstellen
---
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
import { Callout } from 'fumadocs-ui/components/callout'
## Schnellstart
```bash
# Clone and start
git clone https://github.com/simstudioai/sim.git && cd sim
docker compose -f docker-compose.prod.yml up -d
```
Öffnen Sie [http://localhost:3000](http://localhost:3000)
## Produktionseinrichtung
### 1. Umgebung konfigurieren
```bash
# Generate secrets
cat > .env << EOF
DATABASE_URL=postgresql://postgres:postgres@db:5432/simstudio
BETTER_AUTH_SECRET=$(openssl rand -hex 32)
ENCRYPTION_KEY=$(openssl rand -hex 32)
INTERNAL_API_SECRET=$(openssl rand -hex 32)
NEXT_PUBLIC_APP_URL=https://sim.yourdomain.com
BETTER_AUTH_URL=https://sim.yourdomain.com
NEXT_PUBLIC_SOCKET_URL=https://sim.yourdomain.com
EOF
```
### 2. Dienste starten
```bash
docker compose -f docker-compose.prod.yml up -d
```
### 3. SSL einrichten
<Tabs items={['Caddy (Empfohlen)', 'Nginx + Certbot']}>
<Tab value="Caddy (Empfohlen)">
Caddy verwaltet SSL-Zertifikate automatisch.
```bash
# Install Caddy
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update && sudo apt install caddy
```
Erstellen Sie `/etc/caddy/Caddyfile`:
```
sim.yourdomain.com {
reverse_proxy localhost:3000
handle /socket.io/* {
reverse_proxy localhost:3002
}
}
```
```bash
sudo systemctl restart caddy
```
</Tab>
<Tab value="Nginx + Certbot">
```bash
# Install
sudo apt install nginx certbot python3-certbot-nginx -y
# Create /etc/nginx/sites-available/sim
server {
listen 80;
server_name sim.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /socket.io/ {
proxy_pass http://127.0.0.1:3002;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
# Enable and get certificate
sudo ln -s /etc/nginx/sites-available/sim /etc/nginx/sites-enabled/
sudo certbot --nginx -d sim.yourdomain.com
```
</Tab>
</Tabs>
## Ollama
```bash
# With GPU
docker compose -f docker-compose.ollama.yml --profile gpu --profile setup up -d
# CPU only
docker compose -f docker-compose.ollama.yml --profile cpu --profile setup up -d
```
Zusätzliche Modelle herunterladen:
```bash
docker compose -f docker-compose.ollama.yml exec ollama ollama pull llama3.2
```
### Externes Ollama
Wenn Ollama auf Ihrem Host-Rechner läuft (nicht in Docker):
```bash
# macOS/Windows
OLLAMA_URL=http://host.docker.internal:11434 docker compose -f docker-compose.prod.yml up -d
# Linux - use your host IP
OLLAMA_URL=http://192.168.1.100:11434 docker compose -f docker-compose.prod.yml up -d
```
<Callout type="warning">
Innerhalb von Docker bezieht sich `localhost` auf den Container, nicht auf Ihren Host. Verwenden Sie `host.docker.internal` oder die IP-Adresse Ihres Hosts.
</Callout>
## Befehle
```bash
# View logs
docker compose -f docker-compose.prod.yml logs -f simstudio
# Stop
docker compose -f docker-compose.prod.yml down
# Update
docker compose -f docker-compose.prod.yml pull && docker compose -f docker-compose.prod.yml up -d
# Backup database
docker compose -f docker-compose.prod.yml exec db pg_dump -U postgres simstudio > backup.sql
```

View File

@@ -0,0 +1,87 @@
---
title: Umgebungsvariablen
description: Konfigurationsreferenz für Sim Studio
---
import { Callout } from 'fumadocs-ui/components/callout'
## Erforderlich
| Variable | Beschreibung |
|----------|-------------|
| `DATABASE_URL` | PostgreSQL-Verbindungszeichenfolge |
| `BETTER_AUTH_SECRET` | Auth-Secret (32 Hex-Zeichen): `openssl rand -hex 32` |
| `BETTER_AUTH_URL` | Ihre App-URL |
| `ENCRYPTION_KEY` | Verschlüsselungsschlüssel (32 Hex-Zeichen): `openssl rand -hex 32` |
| `INTERNAL_API_SECRET` | Internes API-Secret (32 Hex-Zeichen): `openssl rand -hex 32` |
| `NEXT_PUBLIC_APP_URL` | Öffentliche App-URL |
| `NEXT_PUBLIC_SOCKET_URL` | WebSocket-URL (Standard: `http://localhost:3002`) |
## KI-Anbieter
| Variable | Anbieter |
|----------|----------|
| `OPENAI_API_KEY` | OpenAI |
| `ANTHROPIC_API_KEY_1` | Anthropic Claude |
| `GEMINI_API_KEY_1` | Google Gemini |
| `MISTRAL_API_KEY` | Mistral |
| `OLLAMA_URL` | Ollama (Standard: `http://localhost:11434`) |
<Callout type="info">
Für Lastausgleich fügen Sie mehrere Schlüssel mit den Suffixen `_1`, `_2`, `_3` hinzu (z.B. `OPENAI_API_KEY_1`, `OPENAI_API_KEY_2`). Funktioniert mit OpenAI, Anthropic und Gemini.
</Callout>
<Callout type="info">
In Docker verwenden Sie `OLLAMA_URL=http://host.docker.internal:11434` für Ollama auf dem Host-System.
</Callout>
### Azure OpenAI
| Variable | Beschreibung |
|----------|-------------|
| `AZURE_OPENAI_API_KEY` | Azure OpenAI API-Schlüssel |
| `AZURE_OPENAI_ENDPOINT` | Azure OpenAI Endpoint-URL |
| `AZURE_OPENAI_API_VERSION` | API-Version (z.B. `2024-02-15-preview`) |
### vLLM (Selbst-gehostet)
| Variable | Beschreibung |
|----------|-------------|
| `VLLM_BASE_URL` | vLLM-Server-URL (z.B. `http://localhost:8000/v1`) |
| `VLLM_API_KEY` | Optionaler Bearer-Token für vLLM |
## OAuth-Anbieter
| Variable | Beschreibung |
|----------|-------------|
| `GOOGLE_CLIENT_ID` | Google OAuth Client-ID |
| `GOOGLE_CLIENT_SECRET` | Google OAuth Client-Secret |
| `GITHUB_CLIENT_ID` | GitHub OAuth Client-ID |
| `GITHUB_CLIENT_SECRET` | GitHub OAuth Client-Secret |
## Optional
| Variable | Beschreibung |
|----------|-------------|
| `API_ENCRYPTION_KEY` | Verschlüsselt gespeicherte API-Schlüssel (32 Hex-Zeichen): `openssl rand -hex 32` |
| `COPILOT_API_KEY` | API-Schlüssel für Copilot-Funktionen |
| `ADMIN_API_KEY` | Admin-API-Schlüssel für GitOps-Operationen |
| `RESEND_API_KEY` | E-Mail-Dienst für Benachrichtigungen |
| `ALLOWED_LOGIN_DOMAINS` | Registrierungen auf Domains beschränken (durch Kommas getrennt) |
| `ALLOWED_LOGIN_EMAILS` | Registrierungen auf bestimmte E-Mails beschränken (durch Kommas getrennt) |
| `DISABLE_REGISTRATION` | Auf `true` setzen, um neue Benutzerregistrierungen zu deaktivieren |
## Beispiel .env
```bash
DATABASE_URL=postgresql://postgres:postgres@db:5432/simstudio
BETTER_AUTH_SECRET=<openssl rand -hex 32>
BETTER_AUTH_URL=https://sim.yourdomain.com
ENCRYPTION_KEY=<openssl rand -hex 32>
INTERNAL_API_SECRET=<openssl rand -hex 32>
NEXT_PUBLIC_APP_URL=https://sim.yourdomain.com
NEXT_PUBLIC_SOCKET_URL=https://sim.yourdomain.com
OPENAI_API_KEY=sk-...
```
Siehe `apps/sim/.env.example` für alle Optionen.

View File

@@ -0,0 +1,50 @@
---
title: Self-Hosting
description: Stellen Sie Sim Studio auf Ihrer eigenen Infrastruktur bereit
---
import { Card, Cards } from 'fumadocs-ui/components/card'
import { Callout } from 'fumadocs-ui/components/callout'
Stellen Sie Sim Studio auf Ihrer eigenen Infrastruktur mit Docker oder Kubernetes bereit.
## Anforderungen
| Ressource | Minimum | Empfohlen |
|----------|---------|-------------|
| CPU | 2 Kerne | 4+ Kerne |
| RAM | 12 GB | 16+ GB |
| Speicher | 20 GB SSD | 50+ GB SSD |
| Docker | 20.10+ | Neueste Version |
## Schnellstart
```bash
git clone https://github.com/simstudioai/sim.git && cd sim
docker compose -f docker-compose.prod.yml up -d
```
Öffnen Sie [http://localhost:3000](http://localhost:3000)
## Bereitstellungsoptionen
<Cards>
<Card title="Docker" href="/self-hosting/docker">
Bereitstellung mit Docker Compose auf jedem Server
</Card>
<Card title="Kubernetes" href="/self-hosting/kubernetes">
Bereitstellung mit Helm auf Kubernetes-Clustern
</Card>
<Card title="Cloud-Plattformen" href="/self-hosting/platforms">
Anleitungen für Railway, DigitalOcean, AWS, Azure, GCP
</Card>
</Cards>
## Architektur
| Komponente | Port | Beschreibung |
|-----------|------|-------------|
| simstudio | 3000 | Hauptanwendung |
| realtime | 3002 | WebSocket-Server |
| db | 5432 | PostgreSQL mit pgvector |
| migrations | - | Datenbank-Migrationen (werden einmal ausgeführt) |

View File

@@ -0,0 +1,133 @@
---
title: Kubernetes
description: Sim Studio mit Helm bereitstellen
---
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
import { Callout } from 'fumadocs-ui/components/callout'
## Voraussetzungen
- Kubernetes 1.19+
- Helm 3.0+
- PV-Provisioner-Unterstützung
## Installation
```bash
# Clone repo
git clone https://github.com/simstudioai/sim.git && cd sim
# Generate secrets
BETTER_AUTH_SECRET=$(openssl rand -hex 32)
ENCRYPTION_KEY=$(openssl rand -hex 32)
INTERNAL_API_SECRET=$(openssl rand -hex 32)
# Install
helm install sim ./helm/sim \
--set app.env.BETTER_AUTH_SECRET="$BETTER_AUTH_SECRET" \
--set app.env.ENCRYPTION_KEY="$ENCRYPTION_KEY" \
--set app.env.INTERNAL_API_SECRET="$INTERNAL_API_SECRET" \
--namespace simstudio --create-namespace
```
## Cloud-spezifische Werte
<Tabs items={['AWS EKS', 'Azure AKS', 'GCP GKE']}>
<Tab value="AWS EKS">
```bash
helm install sim ./helm/sim \
--values ./helm/sim/examples/values-aws.yaml \
--set app.env.BETTER_AUTH_SECRET="$BETTER_AUTH_SECRET" \
--set app.env.ENCRYPTION_KEY="$ENCRYPTION_KEY" \
--set app.env.INTERNAL_API_SECRET="$INTERNAL_API_SECRET" \
--set app.env.NEXT_PUBLIC_APP_URL="https://sim.yourdomain.com" \
--namespace simstudio --create-namespace
```
</Tab>
<Tab value="Azure AKS">
```bash
helm install sim ./helm/sim \
--values ./helm/sim/examples/values-azure.yaml \
--set app.env.BETTER_AUTH_SECRET="$BETTER_AUTH_SECRET" \
--set app.env.ENCRYPTION_KEY="$ENCRYPTION_KEY" \
--set app.env.INTERNAL_API_SECRET="$INTERNAL_API_SECRET" \
--set app.env.NEXT_PUBLIC_APP_URL="https://sim.yourdomain.com" \
--namespace simstudio --create-namespace
```
</Tab>
<Tab value="GCP GKE">
```bash
helm install sim ./helm/sim \
--values ./helm/sim/examples/values-gcp.yaml \
--set app.env.BETTER_AUTH_SECRET="$BETTER_AUTH_SECRET" \
--set app.env.ENCRYPTION_KEY="$ENCRYPTION_KEY" \
--set app.env.INTERNAL_API_SECRET="$INTERNAL_API_SECRET" \
--set app.env.NEXT_PUBLIC_APP_URL="https://sim.yourdomain.com" \
--namespace simstudio --create-namespace
```
</Tab>
</Tabs>
## Schlüsselkonfiguration
```yaml
# Custom values.yaml
app:
replicaCount: 2
env:
NEXT_PUBLIC_APP_URL: "https://sim.yourdomain.com"
OPENAI_API_KEY: "sk-..."
postgresql:
persistence:
size: 50Gi
ingress:
enabled: true
className: nginx
tls:
enabled: true
app:
host: sim.yourdomain.com
```
Siehe `helm/sim/values.yaml` für alle Optionen.
## Externe Datenbank
```yaml
postgresql:
enabled: false
externalDatabase:
enabled: true
host: "your-db-host"
port: 5432
username: "postgres"
password: "your-password"
database: "simstudio"
sslMode: "require"
```
## Befehle
```bash
# Port forward for local access
kubectl port-forward deployment/sim-sim-app 3000:3000 -n simstudio
# View logs
kubectl logs -l app.kubernetes.io/component=app -n simstudio --tail=100
# Upgrade
helm upgrade sim ./helm/sim --namespace simstudio
# Uninstall
helm uninstall sim --namespace simstudio
```

View File

@@ -0,0 +1,124 @@
---
title: Cloud-Plattformen
description: Sim Studio auf Cloud-Plattformen bereitstellen
---
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
import { Callout } from 'fumadocs-ui/components/callout'
## Railway
Bereitstellung mit einem Klick und automatischer PostgreSQL-Bereitstellung.
[
![Auf Railway bereitstellen](https://railway.app/button.svg)
](https://railway.com/new/template/sim-studio)
Nach der Bereitstellung fügen Sie Umgebungsvariablen im Railway-Dashboard hinzu:
- `BETTER_AUTH_SECRET`, `ENCRYPTION_KEY`, `INTERNAL_API_SECRET` (automatisch generiert)
- `OPENAI_API_KEY` oder andere KI-Anbieter-Schlüssel
- Benutzerdefinierte Domain in Einstellungen → Netzwerk
## VPS-Bereitstellung
Für DigitalOcean, AWS EC2, Azure VMs oder jeden Linux-Server:
<Tabs items={['DigitalOcean', 'AWS EC2', 'Azure VM']}>
<Tab value="DigitalOcean">
**Empfohlen:** 16 GB RAM Droplet, Ubuntu 24.04
```bash
# Create Droplet via console, then SSH in
ssh root@your-droplet-ip
```
</Tab>
<Tab value="AWS EC2">
**Empfohlen:** t3.xlarge (16 GB RAM), Ubuntu 24.04
```bash
ssh -i your-key.pem ubuntu@your-ec2-ip
```
</Tab>
<Tab value="Azure VM">
**Empfohlen:** Standard_D4s_v3 (16 GB RAM), Ubuntu 24.04
```bash
ssh azureuser@your-vm-ip
```
</Tab>
</Tabs>
### Docker installieren
```bash
# Install Docker (official method)
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker $USER
# Logout and reconnect, then verify
docker --version
```
### Sim Studio bereitstellen
```bash
git clone https://github.com/simstudioai/sim.git && cd sim
# Create .env with secrets
cat > .env << EOF
DATABASE_URL=postgresql://postgres:postgres@db:5432/simstudio
BETTER_AUTH_SECRET=$(openssl rand -hex 32)
ENCRYPTION_KEY=$(openssl rand -hex 32)
INTERNAL_API_SECRET=$(openssl rand -hex 32)
NEXT_PUBLIC_APP_URL=https://sim.yourdomain.com
BETTER_AUTH_URL=https://sim.yourdomain.com
NEXT_PUBLIC_SOCKET_URL=https://sim.yourdomain.com
EOF
# Start
docker compose -f docker-compose.prod.yml up -d
```
### SSL mit Caddy
```bash
# Install Caddy
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update && sudo apt install caddy
# Configure (replace domain)
echo 'sim.yourdomain.com {
reverse_proxy localhost:3000
handle /socket.io/* {
reverse_proxy localhost:3002
}
}' | sudo tee /etc/caddy/Caddyfile
sudo systemctl restart caddy
```
Richten Sie den DNS A-Eintrag Ihrer Domain auf die IP-Adresse Ihres Servers.
## Kubernetes (EKS, AKS, GKE)
Siehe den [Kubernetes-Leitfaden](/self-hosting/kubernetes) für Helm-Deployment auf verwaltetem Kubernetes.
## Verwaltete Datenbank (Optional)
Für den Produktivbetrieb sollten Sie einen verwalteten PostgreSQL-Dienst verwenden:
- **AWS RDS** / **Azure Database** / **Cloud SQL** - Aktivieren Sie die pgvector-Erweiterung
- **Supabase** / **Neon** - pgvector enthalten
Setzen Sie `DATABASE_URL` in Ihrer Umgebung:
```bash
DATABASE_URL="postgresql://user:pass@host:5432/db?sslmode=require"
```

View File

@@ -0,0 +1,113 @@
---
title: Fehlerbehebung
description: Häufige Probleme und Lösungen
---
## Datenbankverbindung fehlgeschlagen
```bash
# Check database is running
docker compose ps db
# Test connection
docker compose exec db psql -U postgres -c "SELECT 1"
```
Überprüfen Sie das `DATABASE_URL` Format: `postgresql://user:pass@host:5432/database`
## Ollama-Modelle werden nicht angezeigt
In Docker ist `localhost` = der Container, nicht Ihr Host-Rechner.
```bash
# For host-machine Ollama, use:
OLLAMA_URL=http://host.docker.internal:11434 # macOS/Windows
OLLAMA_URL=http://192.168.1.x:11434 # Linux (use actual IP)
```
## WebSocket/Echtzeit funktioniert nicht
1. Prüfen Sie, ob `NEXT_PUBLIC_SOCKET_URL` mit Ihrer Domain übereinstimmt
2. Überprüfen Sie, ob der Echtzeit-Dienst läuft: `docker compose ps realtime`
3. Stellen Sie sicher, dass der Reverse-Proxy WebSocket-Upgrades weiterleitet (siehe [Docker-Anleitung](/self-hosting/docker))
## 502 Bad Gateway
```bash
# Check app is running
docker compose ps simstudio
docker compose logs simstudio
# Common causes: out of memory, database not ready
```
## Migrationsfehler
```bash
# View migration logs
docker compose logs migrations
# Run manually
docker compose exec simstudio bun run db:migrate
```
## pgvector nicht gefunden
Verwenden Sie das richtige PostgreSQL-Image:
```yaml
image: pgvector/pgvector:pg17 # NOT postgres:17
```
## Zertifikatsfehler (CERT_HAS_EXPIRED)
Wenn Sie SSL-Zertifikatsfehler beim Aufrufen externer APIs sehen:
```bash
# Update CA certificates in container
docker compose exec simstudio apt-get update && apt-get install -y ca-certificates
# Or set in environment (not recommended for production)
NODE_TLS_REJECT_UNAUTHORIZED=0
```
## Leere Seite nach dem Login
1. Überprüfen Sie die Browser-Konsole auf Fehler
2. Stellen Sie sicher, dass `NEXT_PUBLIC_APP_URL` mit Ihrer tatsächlichen Domain übereinstimmt
3. Löschen Sie Browser-Cookies und lokalen Speicher
4. Prüfen Sie, ob alle Dienste laufen: `docker compose ps`
## Windows-spezifische Probleme
**Turbopack-Fehler unter Windows:**
```bash
# Use WSL2 for better compatibility
wsl --install
# Or disable Turbopack in package.json
# Change "next dev --turbopack" to "next dev"
```
**Zeilenende-Probleme:**
```bash
# Configure git to use LF
git config --global core.autocrlf input
```
## Logs anzeigen
```bash
# All services
docker compose logs -f
# Specific service
docker compose logs -f simstudio
```
## Hilfe erhalten
- [GitHub Issues](https://github.com/simstudioai/sim/issues)
- [Discord](https://discord.gg/Hr4UWYEcTT)

View File

@@ -0,0 +1,200 @@
---
title: Ahrefs
description: SEO-Analyse mit Ahrefs
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="ahrefs"
color="#E0E0E0"
/>
{/* MANUAL-CONTENT-START:intro */}
[Ahrefs](https://ahrefs.com/) ist ein führendes SEO-Toolset zur Analyse von Websites, Verfolgung von Rankings, Überwachung von Backlinks und Keyword-Recherche. Es bietet detaillierte Einblicke in Ihre eigene Website sowie in die Ihrer Wettbewerber und hilft Ihnen, datengestützte Entscheidungen zur Verbesserung Ihrer Sichtbarkeit in Suchmaschinen zu treffen.
Mit der Ahrefs-Integration in Sim können Sie:
- **Domain Rating & Autorität analysieren**: Überprüfen Sie sofort die Domain Rating (DR) und den Ahrefs Rank jeder Website, um deren Autorität einzuschätzen.
- **Backlinks abrufen**: Rufen Sie eine Liste von Backlinks ab, die auf eine Website oder eine bestimmte URL verweisen, mit Details wie Ankertext, DR der verweisenden Seite und mehr.
- **Backlink-Statistiken erhalten**: Greifen Sie auf Metriken zu Backlink-Typen (dofollow, nofollow, Text, Bild, Weiterleitung usw.) für eine Domain oder URL zu.
- **Organische Keywords erkunden** *(geplant)*: Sehen Sie, für welche Keywords eine Domain rankt und welche Positionen sie in den Google-Suchergebnissen einnimmt.
- **Top-Seiten entdecken** *(geplant)*: Identifizieren Sie die leistungsstärksten Seiten nach organischem Traffic und Links.
Diese Tools ermöglichen es Ihren Agenten, SEO-Recherchen zu automatisieren, Wettbewerber zu überwachen und Berichte zu erstellen alles als Teil Ihrer Workflow-Automatisierungen. Um die Ahrefs-Integration zu nutzen, benötigen Sie ein Ahrefs Enterprise-Abonnement mit API-Zugang.
{/* MANUAL-CONTENT-END */}
## Nutzungsanleitung
Integrieren Sie Ahrefs SEO-Tools in Ihren Workflow. Analysieren Sie Domain-Ratings, Backlinks, organische Keywords, Top-Seiten und mehr. Erfordert einen Ahrefs Enterprise-Plan mit API-Zugang.
## Tools
### `ahrefs_domain_rating`
Erhalten Sie die Domain Rating (DR) und den Ahrefs Rank für eine Zieldomain. Die Domain Rating zeigt die Stärke einer Website
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `target` | string | Ja | Die zu analysierende Zieldomäne (z.B. example.com) |
| `date` | string | Nein | Datum für historische Daten im Format YYYY-MM-DD (standardmäßig heute) |
| `apiKey` | string | Ja | Ahrefs API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `domainRating` | number | Domain Rating Score (0-100) |
| `ahrefsRank` | number | Ahrefs Rank - globales Ranking basierend auf der Stärke des Backlink-Profils |
### `ahrefs_backlinks`
Erhalte eine Liste von Backlinks, die auf eine Zieldomäne oder URL verweisen. Liefert Details zu jedem Backlink, einschließlich Quell-URL, Ankertext und Domain Rating.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `target` | string | Ja | Die zu analysierende Zieldomäne oder URL |
| `mode` | string | Nein | Analysemodus: domain (gesamte Domäne), prefix (URL-Präfix), subdomains (alle Subdomänen einschließen), exact (exakte URL-Übereinstimmung) |
| `date` | string | Nein | Datum für historische Daten im Format YYYY-MM-DD (standardmäßig heute) |
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Ergebnisse (Standard: 100) |
| `offset` | number | Nein | Anzahl der zu überspringenden Ergebnisse für Paginierung |
| `apiKey` | string | Ja | Ahrefs API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `backlinks` | array | Liste der Backlinks, die auf das Ziel verweisen |
### `ahrefs_backlinks_stats`
Ruft Backlink-Statistiken für eine Zieldomäne oder URL ab. Gibt Gesamtwerte für verschiedene Backlink-Typen zurück, einschließlich Dofollow-, Nofollow-, Text-, Bild- und Weiterleitungslinks.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `target` | string | Ja | Die zu analysierende Zieldomäne oder URL |
| `mode` | string | Nein | Analysemodus: domain \(gesamte Domäne\), prefix \(URL-Präfix\), subdomains \(alle Subdomänen einschließen\), exact \(exakte URL-Übereinstimmung\) |
| `date` | string | Nein | Datum für historische Daten im Format JJJJ-MM-TT \(standardmäßig heute\) |
| `apiKey` | string | Ja | Ahrefs API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `stats` | object | Zusammenfassung der Backlink-Statistiken |
### `ahrefs_referring_domains`
Ruft eine Liste von Domänen ab, die auf eine Zieldomäne oder URL verlinken. Gibt eindeutige verweisende Domänen mit ihrem Domain-Rating, Backlink-Anzahl und Entdeckungsdaten zurück.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `target` | string | Ja | Die zu analysierende Zieldomäne oder URL |
| `mode` | string | Nein | Analysemodus: domain \(gesamte Domäne\), prefix \(URL-Präfix\), subdomains \(alle Subdomänen einschließen\), exact \(exakte URL-Übereinstimmung\) |
| `date` | string | Nein | Datum für historische Daten im Format JJJJ-MM-TT \(standardmäßig heute\) |
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Ergebnisse \(Standard: 100\) |
| `offset` | number | Nein | Anzahl der zu überspringenden Ergebnisse für die Paginierung |
| `apiKey` | string | Ja | Ahrefs API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `referringDomains` | array | Liste der Domains, die auf das Ziel verlinken |
### `ahrefs_organic_keywords`
Erhalte organische Keywords, für die eine Zieldomain oder URL in den Google-Suchergebnissen rankt. Liefert Keyword-Details einschließlich Suchvolumen, Ranking-Position und geschätztem Traffic.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `target` | string | Ja | Die zu analysierende Zieldomain oder URL |
| `country` | string | Nein | Ländercode für Suchergebnisse \(z.B. us, gb, de\). Standard: us |
| `mode` | string | Nein | Analysemodus: domain \(gesamte Domain\), prefix \(URL-Präfix\), subdomains \(alle Subdomains einschließen\), exact \(exakte URL-Übereinstimmung\) |
| `date` | string | Nein | Datum für historische Daten im Format JJJJ-MM-TT \(standardmäßig heute\) |
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Ergebnisse \(Standard: 100\) |
| `offset` | number | Nein | Anzahl der zu überspringenden Ergebnisse für Paginierung |
| `apiKey` | string | Ja | Ahrefs API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `keywords` | array | Liste der organischen Keywords, für die das Ziel rankt |
### `ahrefs_top_pages`
Erhalte die Top-Seiten einer Zieldomain, sortiert nach organischem Traffic. Liefert Seiten-URLs mit ihrem Traffic, Keyword-Anzahl und geschätztem Traffic-Wert.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `target` | string | Ja | Die zu analysierende Zieldomäne |
| `country` | string | Nein | Ländercode für Verkehrsdaten \(z.B. us, gb, de\). Standard: us |
| `mode` | string | Nein | Analysemodus: domain \(gesamte Domäne\), prefix \(URL-Präfix\), subdomains \(alle Subdomänen einschließen\) |
| `date` | string | Nein | Datum für historische Daten im Format JJJJ-MM-TT \(standardmäßig heute\) |
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Ergebnisse \(Standard: 100\) |
| `offset` | number | Nein | Anzahl der zu überspringenden Ergebnisse für Paginierung |
| `select` | string | Nein | Kommagetrennte Liste der zurückzugebenden Felder \(z.B. url,traffic,keywords,top_keyword,value\). Standard: url,traffic,keywords,top_keyword,value |
| `apiKey` | string | Ja | Ahrefs API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `pages` | array | Liste der Top-Seiten nach organischem Traffic |
### `ahrefs_keyword_overview`
Erhalten Sie detaillierte Metriken für ein Keyword, einschließlich Suchvolumen, Keyword-Schwierigkeit, CPC, Klicks und Traffic-Potenzial.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `keyword` | string | Ja | Das zu analysierende Keyword |
| `country` | string | Nein | Ländercode für Keyword-Daten \(z.B. us, gb, de\). Standard: us |
| `apiKey` | string | Ja | Ahrefs API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `overview` | object | Keyword-Metriken Übersicht |
### `ahrefs_broken_backlinks`
Erhalte eine Liste defekter Backlinks, die auf eine Zieldomäne oder URL verweisen. Nützlich zur Identifizierung von Möglichkeiten zur Link-Wiederherstellung.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `target` | string | Ja | Die zu analysierende Zieldomäne oder URL |
| `mode` | string | Nein | Analysemodus: domain \(gesamte Domäne\), prefix \(URL-Präfix\), subdomains \(alle Subdomänen einschließen\), exact \(exakte URL-Übereinstimmung\) |
| `date` | string | Nein | Datum für historische Daten im Format JJJJ-MM-TT \(standardmäßig heute\) |
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Ergebnisse \(Standard: 100\) |
| `offset` | number | Nein | Anzahl der zu überspringenden Ergebnisse für Paginierung |
| `apiKey` | string | Ja | Ahrefs API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `brokenBacklinks` | array | Liste defekter Backlinks |
## Hinweise
- Kategorie: `tools`
- Typ: `ahrefs`

View File

@@ -0,0 +1,182 @@
---
title: Cursor
description: Starten und verwalten Sie Cursor Cloud-Agenten zur Arbeit an
GitHub-Repositories
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="cursor"
color="#1E1E1E"
/>
{/* MANUAL-CONTENT-START:intro */}
[Cursor](https://www.cursor.so/) ist eine KI-IDE und cloudbasierte Plattform, mit der Sie leistungsstarke KI-Agenten starten und verwalten können, die direkt mit Ihren GitHub-Repositories arbeiten können. Cursor-Agenten können Entwicklungsaufgaben automatisieren, die Produktivität Ihres Teams steigern und mit Ihnen zusammenarbeiten, indem sie Codeänderungen vornehmen, auf natürlichsprachliche Anweisungen reagieren und einen Gesprächsverlauf über ihre Aktivitäten führen.
Mit Cursor können Sie:
- **Cloud-Agenten für Codebasen starten**: Erstellen Sie sofort neue KI-Agenten, die in der Cloud an Ihren Repositories arbeiten
- **Codierungsaufgaben mit natürlicher Sprache delegieren**: Leiten Sie Agenten mit schriftlichen Anweisungen, Änderungen und Klarstellungen an
- **Fortschritt und Ergebnisse überwachen**: Rufen Sie den Agentenstatus ab, sehen Sie detaillierte Ergebnisse und prüfen Sie aktuelle oder abgeschlossene Aufgaben
- **Zugriff auf den vollständigen Gesprächsverlauf**: Überprüfen Sie alle Eingabeaufforderungen und KI-Antworten für Transparenz und Nachvollziehbarkeit
- **Steuerung und Verwaltung des Agenten-Lebenszyklus**: Listen Sie aktive Agenten auf, beenden Sie Agenten und verwalten Sie API-basierte Agentenstarts und Nachverfolgungen
In Sim ermöglicht die Cursor-Integration Ihren Agenten und Workflows, programmatisch mit Cursor-Cloud-Agenten zu interagieren. Das bedeutet, Sie können Sim verwenden, um:
- Alle Cloud-Agenten auflisten und ihren aktuellen Status durchsuchen (`cursor_list_agents`)
- Aktuellen Status und Ausgaben für jeden Agenten abrufen (`cursor_get_agent`)
- Den vollständigen Gesprächsverlauf für jeden Codierungsagenten anzeigen (`cursor_get_conversation`)
- Nachfolgende Anweisungen oder neue Eingabeaufforderungen zu einem laufenden Agenten hinzufügen
- Agenten nach Bedarf verwalten und beenden
Diese Integration hilft Ihnen, die flexible Intelligenz von Sim-Agenten mit den leistungsstarken Automatisierungsfunktionen von Cursor zu kombinieren, wodurch es möglich wird, KI-gesteuerte Entwicklung über Ihre Projekte hinweg zu skalieren.
{/* MANUAL-CONTENT-END */}
## Gebrauchsanweisung
Interagieren Sie mit der Cursor Cloud Agents API, um KI-Agenten zu starten, die an Ihren GitHub-Repositories arbeiten können. Unterstützt das Starten von Agenten, das Hinzufügen von Folgeanweisungen, die Statusprüfung, die Anzeige von Konversationen und die Verwaltung des Agenten-Lebenszyklus.
## Tools
### `cursor_list_agents`
Listet alle Cloud-Agenten für den authentifizierten Benutzer mit optionaler Paginierung auf.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Cursor API-Schlüssel |
| `limit` | number | Nein | Anzahl der zurückzugebenden Agenten \(Standard: 20, max: 100\) |
| `cursor` | string | Nein | Paginierungscursor aus der vorherigen Antwort |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Menschenlesbare Liste der Agenten |
| `metadata` | object | Metadaten der Agentenliste |
### `cursor_get_agent`
Ruft den aktuellen Status und die Ergebnisse eines Cloud-Agenten ab.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Cursor API-Schlüssel |
| `agentId` | string | Ja | Eindeutige Kennung für den Cloud-Agenten \(z.B. bc_abc123\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Menschenlesbare Agentendetails |
| `metadata` | object | Agenten-Metadaten |
### `cursor_get_conversation`
Ruft den Konversationsverlauf eines Cloud-Agenten ab, einschließlich aller Benutzeraufforderungen und Assistentenantworten.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Cursor API-Schlüssel |
| `agentId` | string | Ja | Eindeutige Kennung für den Cloud-Agenten \(z.B. bc_abc123\) |
#### Output
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Menschenlesbarer Konversationsverlauf |
| `metadata` | object | Konversations-Metadaten |
### `cursor_launch_agent`
Starten Sie einen neuen Cloud-Agenten, um an einem GitHub-Repository mit den angegebenen Anweisungen zu arbeiten.
#### Input
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Cursor API-Schlüssel |
| `repository` | string | Ja | GitHub-Repository-URL \(z.B. https://github.com/your-org/your-repo\) |
| `ref` | string | Nein | Branch, Tag oder Commit, von dem aus gearbeitet werden soll \(standardmäßig der Hauptbranch\) |
| `promptText` | string | Ja | Der Anweisungstext für den Agenten |
| `promptImages` | string | Nein | JSON-Array von Bildobjekten mit Base64-Daten und Abmessungen |
| `model` | string | Nein | Zu verwendendes Modell \(leer lassen für automatische Auswahl\) |
| `branchName` | string | Nein | Benutzerdefinierter Branch-Name für den Agenten |
| `autoCreatePr` | boolean | Nein | Automatisches Erstellen eines PR, wenn der Agent fertig ist |
| `openAsCursorGithubApp` | boolean | Nein | Öffnen des PR als Cursor GitHub App |
| `skipReviewerRequest` | boolean | Nein | Überspringen der Anfrage nach Prüfern für den PR |
#### Output
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Erfolgsmeldung mit Agenten-Details |
| `metadata` | object | Metadaten zum Startergebnis |
### `cursor_add_followup`
Fügen Sie einem bestehenden Cloud-Agenten eine Folgeanweisung hinzu.
#### Input
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Cursor API-Schlüssel |
| `agentId` | string | Ja | Eindeutige Kennung für den Cloud-Agenten \(z.B. bc_abc123\) |
| `followupPromptText` | string | Ja | Der Folgeanweisungstext für den Agenten |
| `promptImages` | string | Nein | JSON-Array von Bildobjekten mit Base64-Daten und Abmessungen \(max. 5\) |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Erfolgsmeldung |
| `metadata` | object | Ergebnis-Metadaten |
### `cursor_stop_agent`
Stoppt einen laufenden Cloud-Agenten. Dies pausiert den Agenten, ohne ihn zu löschen.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Cursor API-Schlüssel |
| `agentId` | string | Ja | Eindeutige Kennung für den Cloud-Agenten \(z.B. bc_abc123\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Erfolgsmeldung |
| `metadata` | object | Ergebnis-Metadaten |
### `cursor_delete_agent`
Löscht einen Cloud-Agenten dauerhaft. Diese Aktion kann nicht rückgängig gemacht werden.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Cursor API-Schlüssel |
| `agentId` | string | Ja | Eindeutige Kennung für den Cloud-Agenten \(z.B. bc_abc123\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Erfolgsmeldung |
| `metadata` | object | Ergebnis-Metadaten |
## Hinweise
- Kategorie: `tools`
- Typ: `cursor`

View File

@@ -0,0 +1,302 @@
---
title: Datadog
description: Überwachen Sie Infrastruktur, Anwendungen und Logs mit Datadog
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="datadog"
color="#632CA6"
/>
{/* MANUAL-CONTENT-START:intro */}
[Datadog](https://datadoghq.com/) ist eine umfassende Überwachungs- und Analyseplattform für Infrastruktur, Anwendungen, Logs und mehr. Sie ermöglicht Organisationen Echtzeit-Einblicke in den Zustand und die Leistung von Systemen, erkennt Anomalien und automatisiert die Reaktion auf Vorfälle.
Mit Datadog können Sie:
- **Metriken überwachen**: Sammeln, visualisieren und analysieren Sie Metriken von Servern, Cloud-Diensten und benutzerdefinierten Anwendungen.
- **Zeitreihendaten abfragen**: Führen Sie erweiterte Abfragen zu Leistungsmetriken für Trendanalysen und Berichte durch.
- **Monitore und Ereignisse verwalten**: Richten Sie Monitore ein, um Probleme zu erkennen, Warnungen auszulösen und Ereignisse für die Beobachtbarkeit zu erstellen.
- **Ausfallzeiten verwalten**: Planen und programmieren Sie geplante Ausfallzeiten, um Warnungen während der Wartung zu unterdrücken.
- **Logs und Traces analysieren** *(mit zusätzlicher Einrichtung in Datadog)*: Zentralisieren und untersuchen Sie Logs oder verteilte Traces für eine tiefere Fehlerbehebung.
Die Datadog-Integration von Sim ermöglicht es Ihren Agenten, diese Vorgänge zu automatisieren und programmatisch mit Ihrem Datadog-Konto zu interagieren. Verwenden Sie sie, um benutzerdefinierte Metriken zu übermitteln, Zeitreihendaten abzufragen, Monitore zu verwalten, Ereignisse zu erstellen und Ihre Überwachungsabläufe direkt innerhalb von Sim-Automatisierungen zu optimieren.
{/* MANUAL-CONTENT-END */}
## Gebrauchsanweisung
Integrieren Sie Datadog-Überwachung in Workflows. Übermitteln Sie Metriken, verwalten Sie Monitore, fragen Sie Logs ab, erstellen Sie Ereignisse, handhaben Sie Ausfallzeiten und mehr.
## Tools
### `datadog_submit_metrics`
Übermitteln Sie benutzerdefinierte Metriken an Datadog. Verwenden Sie diese zur Verfolgung der Anwendungsleistung, Geschäftsmetriken oder benutzerdefinierten Überwachungsdaten.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `series` | string | Ja | JSON-Array von Metrikserien zur Übermittlung. Jede Serie sollte den Metriknamen, Typ \(gauge/rate/count\), Punkte \(Zeitstempel/Wert-Paare\) und optionale Tags enthalten. |
| `apiKey` | string | Ja | Datadog API-Schlüssel |
| `site` | string | Nein | Datadog-Site/Region \(Standard: datadoghq.com\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob die Metriken erfolgreich übermittelt wurden |
| `errors` | array | Alle Fehler, die während der Übermittlung aufgetreten sind |
### `datadog_query_timeseries`
Abfrage von Metrik-Zeitreihendaten aus Datadog. Verwenden Sie dies zur Analyse von Trends, zur Erstellung von Berichten oder zum Abrufen von Metrikwerten.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `query` | string | Ja | Datadog-Metrikabfrage (z.B. "avg:system.cpu.user\{*\}") |
| `from` | number | Ja | Startzeit als Unix-Zeitstempel in Sekunden |
| `to` | number | Ja | Endzeit als Unix-Zeitstempel in Sekunden |
| `apiKey` | string | Ja | Datadog API-Schlüssel |
| `applicationKey` | string | Ja | Datadog Anwendungsschlüssel |
| `site` | string | Nein | Datadog-Site/Region (Standard: datadoghq.com) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `series` | array | Array von Zeitreihendaten mit Metrikname, Tags und Datenpunkten |
| `status` | string | Abfragestatus |
### `datadog_create_event`
Veröffentlichen Sie ein Ereignis im Datadog-Ereignisstrom. Verwenden Sie dies für Deployment-Benachrichtigungen, Warnungen oder andere wichtige Vorkommnisse.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `title` | string | Ja | Ereignistitel |
| `text` | string | Ja | Ereignistext/Beschreibung. Unterstützt Markdown. |
| `alertType` | string | Nein | Warnungstyp: error, warning, info, success, user_update, recommendation oder snapshot |
| `priority` | string | Nein | Ereignispriorität: normal oder low |
| `host` | string | Nein | Hostname, der mit diesem Ereignis verknüpft werden soll |
| `tags` | string | Nein | Kommagetrennte Liste von Tags (z.B. "env:production,service:api") |
| `aggregationKey` | string | Nein | Schlüssel zum Zusammenfassen von Ereignissen |
| `sourceTypeName` | string | Nein | Quelltypname für das Ereignis |
| `dateHappened` | number | Nein | Unix-Zeitstempel, wann das Ereignis aufgetreten ist (standardmäßig jetzt) |
| `apiKey` | string | Ja | Datadog API-Schlüssel |
| `site` | string | Nein | Datadog-Site/Region (Standard: datadoghq.com) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `event` | object | Die Details des erstellten Events |
### `datadog_create_monitor`
Erstellen Sie einen neuen Monitor/Alert in Datadog. Monitore können Metriken, Service-Checks, Events und mehr überwachen.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `name` | string | Ja | Name des Monitors |
| `type` | string | Ja | Monitor-Typ: metric alert, service check, event alert, process alert, log alert, query alert, composite, synthetics alert, slo alert |
| `query` | string | Ja | Monitor-Abfrage (z.B. `avg(last_5m):avg:system.cpu.idle{*} < 20`) |
| `message` | string | Nein | Nachricht, die bei Benachrichtigungen enthalten sein soll. Kann @-Erwähnungen und Markdown enthalten. |
| `tags` | string | Nein | Kommagetrennte Liste von Tags |
| `priority` | number | Nein | Monitor-Priorität (1-5, wobei 1 die höchste ist) |
| `options` | string | Nein | JSON-String mit Monitor-Optionen (Schwellenwerte, notify_no_data, renotify_interval, usw.) |
| `apiKey` | string | Ja | Datadog API-Schlüssel |
| `applicationKey` | string | Ja | Datadog Anwendungsschlüssel |
| `site` | string | Nein | Datadog Site/Region (Standard: datadoghq.com) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `monitor` | object | Die Details des erstellten Monitors |
### `datadog_get_monitor`
Rufen Sie Details eines bestimmten Monitors anhand seiner ID ab.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `monitorId` | string | Ja | Die ID des abzurufenden Monitors |
| `groupStates` | string | Nein | Kommagetrennte Gruppenzustände, die einbezogen werden sollen: alert, warn, no data, ok |
| `withDowntimes` | boolean | Nein | Downtime-Daten mit dem Monitor einbeziehen |
| `apiKey` | string | Ja | Datadog API-Schlüssel |
| `applicationKey` | string | Ja | Datadog Anwendungsschlüssel |
| `site` | string | Nein | Datadog Site/Region (Standard: datadoghq.com) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `monitor` | object | Die Monitor-Details |
### `datadog_list_monitors`
Listet alle Monitore in Datadog auf, mit optionaler Filterung nach Namen, Tags oder Status.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `groupStates` | string | Nein | Kommagetrennte Gruppenstatus zur Filterung: alert, warn, no data, ok |
| `name` | string | Nein | Filtert Monitore nach Namen \(teilweise Übereinstimmung\) |
| `tags` | string | Nein | Kommagetrennte Liste von Tags zur Filterung |
| `monitorTags` | string | Nein | Kommagetrennte Liste von Monitor-Tags zur Filterung |
| `withDowntimes` | boolean | Nein | Downtime-Daten mit Monitoren einbeziehen |
| `page` | number | Nein | Seitennummer für Paginierung \(0-indiziert\) |
| `pageSize` | number | Nein | Anzahl der Monitore pro Seite \(max. 1000\) |
| `apiKey` | string | Ja | Datadog API-Schlüssel |
| `applicationKey` | string | Ja | Datadog Anwendungsschlüssel |
| `site` | string | Nein | Datadog Site/Region \(Standard: datadoghq.com\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `monitors` | array | Liste der Monitore |
### `datadog_mute_monitor`
Stummschalten eines Monitors, um Benachrichtigungen vorübergehend zu unterdrücken.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `monitorId` | string | Ja | Die ID des stummzuschaltenden Monitors |
| `scope` | string | Nein | Bereich zum Stummschalten \(z.B. "host:myhost"\). Wenn nicht angegeben, werden alle Bereiche stummgeschaltet. |
| `end` | number | Nein | Unix-Zeitstempel, wann die Stummschaltung enden soll. Wenn nicht angegeben, wird auf unbestimmte Zeit stummgeschaltet. |
| `apiKey` | string | Ja | Datadog API-Schlüssel |
| `applicationKey` | string | Ja | Datadog Anwendungsschlüssel |
| `site` | string | Nein | Datadog Site/Region \(Standard: datadoghq.com\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Gibt an, ob der Monitor erfolgreich stummgeschaltet wurde |
### `datadog_query_logs`
Suchen und abrufen von Logs aus Datadog. Verwenden Sie dies zur Fehlerbehebung, Analyse oder Überwachung.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `query` | string | Ja | Log-Suchabfrage (z.B. "service:web-app status:error") |
| `from` | string | Ja | Startzeit im ISO-8601-Format oder relativ (z.B. "now-1h") |
| `to` | string | Ja | Endzeit im ISO-8601-Format oder relativ (z.B. "now") |
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Logs (Standard: 50, max: 1000) |
| `sort` | string | Nein | Sortierreihenfolge: timestamp (älteste zuerst) oder -timestamp (neueste zuerst) |
| `indexes` | string | Nein | Kommagetrennte Liste der zu durchsuchenden Log-Indizes |
| `apiKey` | string | Ja | Datadog API-Schlüssel |
| `applicationKey` | string | Ja | Datadog Anwendungsschlüssel |
| `site` | string | Nein | Datadog Site/Region (Standard: datadoghq.com) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `logs` | array | Liste der Log-Einträge |
### `datadog_send_logs`
Senden von Log-Einträgen an Datadog für zentralisiertes Logging und Analyse.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `logs` | string | Ja | JSON-Array von Log-Einträgen. Jeder Eintrag sollte message und optional ddsource, ddtags, hostname, service enthalten. |
| `apiKey` | string | Ja | Datadog API-Schlüssel |
| `site` | string | Nein | Datadog Site/Region (Standard: datadoghq.com) |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob die Logs erfolgreich gesendet wurden |
### `datadog_create_downtime`
Planen Sie eine Ausfallzeit, um Monitor-Benachrichtigungen während Wartungsfenstern zu unterdrücken.
#### Input
| Parameter | Type | Required | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `scope` | string | Yes | Bereich, auf den die Ausfallzeit angewendet werden soll (z.B. "host:myhost", "env:production" oder "*" für alle) |
| `message` | string | No | Nachricht, die während der Ausfallzeit angezeigt werden soll |
| `start` | number | No | Unix-Zeitstempel für den Beginn der Ausfallzeit (standardmäßig jetzt) |
| `end` | number | No | Unix-Zeitstempel für das Ende der Ausfallzeit |
| `timezone` | string | No | Zeitzone für die Ausfallzeit (z.B. "America/New_York") |
| `monitorId` | string | No | Spezifische Monitor-ID, die stummgeschaltet werden soll |
| `monitorTags` | string | No | Kommagetrennte Monitor-Tags zur Übereinstimmung (z.B. "team:backend,priority:high") |
| `muteFirstRecoveryNotification` | boolean | No | Die erste Wiederherstellungsbenachrichtigung stummschalten |
| `apiKey` | string | Yes | Datadog API-Schlüssel |
| `applicationKey` | string | Yes | Datadog Anwendungsschlüssel |
| `site` | string | No | Datadog Site/Region (Standard: datadoghq.com) |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `downtime` | object | Die Details der erstellten Ausfallzeit |
### `datadog_list_downtimes`
Listet alle geplanten Ausfallzeiten in Datadog auf.
#### Input
| Parameter | Type | Required | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `currentOnly` | boolean | No | Nur aktuell aktive Ausfallzeiten zurückgeben |
| `monitorId` | string | No | Nach Monitor-ID filtern |
| `apiKey` | string | Yes | Datadog API-Schlüssel |
| `applicationKey` | string | Yes | Datadog Anwendungsschlüssel |
| `site` | string | No | Datadog Site/Region (Standard: datadoghq.com) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `downtimes` | array | Liste der Ausfallzeiten |
### `datadog_cancel_downtime`
Eine geplante Ausfallzeit abbrechen.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `downtimeId` | string | Ja | Die ID der abzubrechenden Ausfallzeit |
| `apiKey` | string | Ja | Datadog API-Schlüssel |
| `applicationKey` | string | Ja | Datadog Anwendungsschlüssel |
| `site` | string | Nein | Datadog Site/Region \(Standard: datadoghq.com\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob die Ausfallzeit erfolgreich abgebrochen wurde |
## Hinweise
- Kategorie: `tools`
- Typ: `datadog`

View File

@@ -0,0 +1,219 @@
---
title: Dropbox
description: Dateien in Dropbox hochladen, herunterladen, teilen und verwalten
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="dropbox"
color="#0061FF"
/>
{/* MANUAL-CONTENT-START:intro */}
[Dropbox](https://dropbox.com/) ist eine beliebte Cloud-Speicher- und Kollaborationsplattform, die es Einzelpersonen und Teams ermöglicht, Dateien sicher zu speichern, darauf zuzugreifen und sie von überall aus zu teilen. Dropbox ist für einfache Dateiverwaltung, Synchronisierung und leistungsstarke Zusammenarbeit konzipiert, egal ob Sie allein oder in einer Gruppe arbeiten.
Mit Dropbox in Sim können Sie:
- **Dateien hoch- und herunterladen**: Laden Sie jede Datei nahtlos in Ihre Dropbox hoch oder rufen Sie Inhalte bei Bedarf ab
- **Ordnerinhalte auflisten**: Durchsuchen Sie die Dateien und Ordner in jedem Dropbox-Verzeichnis
- **Neue Ordner erstellen**: Organisieren Sie Ihre Dateien, indem Sie programmgesteuert neue Ordner in Ihrer Dropbox erstellen
- **Dateien und Ordner suchen**: Finden Sie Dokumente, Bilder oder andere Elemente nach Namen oder Inhalt
- **Geteilte Links generieren**: Erstellen Sie schnell teilbare öffentliche oder private Links für Dateien und Ordner
- **Dateien verwalten**: Verschieben, löschen oder benennen Sie Dateien und Ordner im Rahmen automatisierter Workflows um
Diese Funktionen ermöglichen es Ihren Sim-Agenten, Dropbox-Operationen direkt in Ihren Workflows zu automatisieren vom Sichern wichtiger Dateien bis hin zur Verteilung von Inhalten und der Pflege organisierter Ordner. Verwenden Sie Dropbox sowohl als Quelle als auch als Ziel für Dateien und ermöglichen Sie so eine nahtlose Cloud-Speicherverwaltung als Teil Ihrer Geschäftsprozesse.
{/* MANUAL-CONTENT-END */}
## Nutzungsanweisungen
Integrieren Sie Dropbox in Ihren Workflow für Dateiverwaltung, Freigabe und Zusammenarbeit. Laden Sie Dateien hoch, laden Sie Inhalte herunter, erstellen Sie Ordner, verwalten Sie freigegebene Links und mehr.
## Tools
### `dropbox_upload`
Eine Datei zu Dropbox hochladen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `path` | string | Ja | Der Pfad in Dropbox, wo die Datei gespeichert werden soll \(z.B. /ordner/dokument.pdf\) |
| `fileContent` | string | Ja | Der base64-kodierte Inhalt der hochzuladenden Datei |
| `fileName` | string | Nein | Optionaler Dateiname \(wird verwendet, wenn der Pfad ein Ordner ist\) |
| `mode` | string | Nein | Schreibmodus: add \(Standard\) oder overwrite |
| `autorename` | boolean | Nein | Wenn true, wird die Datei umbenannt, falls ein Konflikt besteht |
| `mute` | boolean | Nein | Wenn true, wird der Benutzer nicht über diesen Upload benachrichtigt |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `file` | object | Die Metadaten der hochgeladenen Datei |
### `dropbox_download`
Eine Datei von Dropbox herunterladen und einen temporären Link erhalten
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `path` | string | Ja | Der Pfad der herunterzuladenden Datei (z.B. /ordner/dokument.pdf) |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `file` | object | Die Metadaten der Datei |
### `dropbox_list_folder`
Den Inhalt eines Ordners in Dropbox auflisten
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `path` | string | Ja | Der Pfad des aufzulistenden Ordners (verwende "" für das Stammverzeichnis) |
| `recursive` | boolean | Nein | Wenn true, Inhalte rekursiv auflisten |
| `includeDeleted` | boolean | Nein | Wenn true, gelöschte Dateien/Ordner einbeziehen |
| `includeMediaInfo` | boolean | Nein | Wenn true, Medieninfos für Fotos/Videos einbeziehen |
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Ergebnisse (Standard: 500) |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `entries` | array | Liste der Dateien und Ordner im Verzeichnis |
### `dropbox_create_folder`
Einen neuen Ordner in Dropbox erstellen
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `path` | string | Ja | Der Pfad, an dem der Ordner erstellt werden soll (z.B. /neuer-ordner) |
| `autorename` | boolean | Nein | Wenn true, den Ordner umbenennen, falls ein Konflikt besteht |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `folder` | object | Die Metadaten des erstellten Ordners |
### `dropbox_delete`
Eine Datei oder einen Ordner in Dropbox löschen (wird in den Papierkorb verschoben)
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `path` | string | Ja | Der Pfad der zu löschenden Datei oder des zu löschenden Ordners |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `metadata` | object | Metadaten des gelöschten Elements |
### `dropbox_copy`
Eine Datei oder einen Ordner in Dropbox kopieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `fromPath` | string | Ja | Der Quellpfad der zu kopierenden Datei oder des zu kopierenden Ordners |
| `toPath` | string | Ja | Der Zielpfad für die kopierte Datei oder den kopierten Ordner |
| `autorename` | boolean | Nein | Wenn true, wird die Datei umbenannt, falls am Zielort ein Konflikt besteht |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `metadata` | object | Metadaten des kopierten Elements |
### `dropbox_move`
Eine Datei oder einen Ordner in Dropbox verschieben oder umbenennen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `fromPath` | string | Ja | Der Quellpfad der zu verschiebenden Datei oder des zu verschiebenden Ordners |
| `toPath` | string | Ja | Der Zielpfad für die verschobene Datei oder den verschobenen Ordner |
| `autorename` | boolean | Nein | Wenn true, wird die Datei umbenannt, falls am Zielort ein Konflikt besteht |
#### Output
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `metadata` | object | Metadaten des verschobenen Elements |
### `dropbox_get_metadata`
Metadaten für eine Datei oder einen Ordner in Dropbox abrufen
#### Input
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `path` | string | Ja | Der Pfad der Datei oder des Ordners, für die/den Metadaten abgerufen werden sollen |
| `includeMediaInfo` | boolean | Nein | Wenn true, werden Medieninformationen für Fotos/Videos einbezogen |
| `includeDeleted` | boolean | Nein | Wenn true, werden gelöschte Dateien in den Ergebnissen einbezogen |
#### Output
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `metadata` | object | Metadaten für die Datei oder den Ordner |
### `dropbox_create_shared_link`
Einen teilbaren Link für eine Datei oder einen Ordner in Dropbox erstellen
#### Input
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `path` | string | Ja | Der Pfad der Datei oder des Ordners, der geteilt werden soll |
| `requestedVisibility` | string | Nein | Sichtbarkeit: public, team_only oder password |
| `linkPassword` | string | Nein | Passwort für den geteilten Link \(nur wenn die Sichtbarkeit password ist\) |
| `expires` | string | Nein | Ablaufdatum im ISO 8601-Format \(z.B. 2025-12-31T23:59:59Z\) |
#### Output
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `sharedLink` | object | Der erstellte geteilte Link |
### `dropbox_search`
Suche nach Dateien und Ordnern in Dropbox
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `query` | string | Ja | Die Suchanfrage |
| `path` | string | Nein | Suche auf einen bestimmten Ordnerpfad beschränken |
| `fileExtensions` | string | Nein | Kommagetrennte Liste von Dateierweiterungen zur Filterung \(z.B. pdf,xlsx\) |
| `maxResults` | number | Nein | Maximale Anzahl der zurückzugebenden Ergebnisse \(Standard: 100\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `matches` | array | Suchergebnisse |
## Hinweise
- Kategorie: `tools`
- Typ: `dropbox`

View File

@@ -0,0 +1,63 @@
---
title: DuckDuckGo
description: Suche mit DuckDuckGo
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="duckduckgo"
color="#FFFFFF"
/>
{/* MANUAL-CONTENT-START:intro */}
[DuckDuckGo](https://duckduckgo.com/) ist eine datenschutzorientierte Websuchmaschine, die sofortige Antworten, Zusammenfassungen, verwandte Themen und mehr liefert ohne dich oder deine Suchen zu verfolgen. DuckDuckGo macht es einfach, Informationen ohne Benutzerprofilierung oder zielgerichtete Werbung zu finden.
Mit DuckDuckGo in Sim kannst du:
- **Im Web suchen**: Finde sofort Antworten, Fakten und Übersichten für eine bestimmte Suchanfrage
- **Direkte Antworten erhalten**: Erhalte spezifische Antworten für Berechnungen, Umrechnungen oder Faktenfragen
- **Auf Zusammenfassungen zugreifen**: Erhalte kurze Zusammenfassungen oder Beschreibungen für deine Suchthemen
- **Verwandte Themen abrufen**: Entdecke Links und Referenzen, die für deine Suche relevant sind
- **Ausgabe filtern**: Optional HTML entfernen oder Begriffsklärungen überspringen für sauberere Ergebnisse
Diese Funktionen ermöglichen es deinen Sim-Agenten, den Zugriff auf aktuelles Webwissen zu automatisieren vom Auffinden von Fakten in einem Workflow bis hin zur Anreicherung von Dokumenten und Analysen mit aktuellen Informationen. Da DuckDuckGos Instant Answers API offen ist und keinen API-Schlüssel erfordert, lässt sie sich einfach und datenschutzsicher in deine automatisierten Geschäftsprozesse integrieren.
{/* MANUAL-CONTENT-END */}
## Nutzungsanleitung
Durchsuche das Web mit der DuckDuckGo Instant Answers API. Liefert sofortige Antworten, Zusammenfassungen, verwandte Themen und mehr. Kostenlos nutzbar ohne API-Schlüssel.
## Tools
### `duckduckgo_search`
Durchsuche das Web mit der DuckDuckGo Instant Answers API. Liefert sofortige Antworten, Zusammenfassungen und verwandte Themen für deine Anfrage. Kostenlos nutzbar ohne API-Schlüssel.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `query` | string | Ja | Die auszuführende Suchanfrage |
| `noHtml` | boolean | Nein | HTML aus Text in Ergebnissen entfernen \(Standard: true\) |
| `skipDisambig` | boolean | Nein | Begriffsklärungsergebnisse überspringen \(Standard: false\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `heading` | string | Die Überschrift/der Titel der Sofortantwort |
| `abstract` | string | Eine kurze Zusammenfassung des Themas |
| `abstractText` | string | Einfache Textversion der Zusammenfassung |
| `abstractSource` | string | Die Quelle der Zusammenfassung \(z.B. Wikipedia\) |
| `abstractURL` | string | URL zur Quelle der Zusammenfassung |
| `image` | string | URL zu einem Bild zum Thema |
| `answer` | string | Direkte Antwort, falls verfügbar \(z.B. für Berechnungen\) |
| `answerType` | string | Typ der Antwort \(z.B. calc, ip, usw.\) |
| `type` | string | Antworttyp: A \(Artikel\), D \(Begriffsklärung\), C \(Kategorie\), N \(Name\), E \(Exklusiv\) |
| `relatedTopics` | array | Array verwandter Themen mit URLs und Beschreibungen |
## Hinweise
- Kategorie: `tools`
- Typ: `duckduckgo`

View File

@@ -0,0 +1,365 @@
---
title: Elasticsearch
description: Suchen, indexieren und verwalten Sie Daten in Elasticsearch
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="elasticsearch"
color="#E0E0E0"
/>
{/* MANUAL-CONTENT-START:intro */}
[Elasticsearch](https://www.elastic.co/elasticsearch/) ist eine leistungsstarke verteilte Such- und Analysemaschine, die es Ihnen ermöglicht, große Datenmengen in Echtzeit zu indexieren, zu durchsuchen und zu analysieren. Sie wird häufig für Suchfunktionen, Log- und Ereignisdatenanalysen, Beobachtbarkeit und mehr eingesetzt.
Mit Elasticsearch in Sim erhalten Sie programmatischen Zugriff auf die Kernfunktionen von Elasticsearch, darunter:
- **Dokumente durchsuchen**: Führen Sie erweiterte Suchen in strukturiertem oder unstrukturiertem Text mit Query DSL durch, mit Unterstützung für Sortierung, Paginierung und Feldauswahl.
- **Dokumente indexieren**: Fügen Sie neue Dokumente hinzu oder aktualisieren Sie bestehende in jedem Elasticsearch-Index für sofortigen Abruf und Analyse.
- **Dokumente abrufen, aktualisieren oder löschen**: Rufen Sie bestimmte Dokumente nach ID ab, ändern oder entfernen Sie sie.
- **Massenoperationen**: Führen Sie mehrere Indexierungs- oder Aktualisierungsaktionen in einer einzigen Anfrage für Datenverarbeitung mit hohem Durchsatz aus.
- **Indizes verwalten**: Erstellen, löschen oder rufen Sie Details zu Indizes als Teil Ihrer Workflow-Automatisierung ab.
- **Cluster-Überwachung**: Überprüfen Sie den Zustand und die Statistiken Ihrer Elasticsearch-Bereitstellung.
Sims Elasticsearch-Tools funktionieren sowohl mit selbst gehosteten als auch mit Elastic Cloud-Umgebungen. Integrieren Sie Elasticsearch in Ihre Agent-Workflows, um die Datenaufnahme zu automatisieren, große Datensätze zu durchsuchen, Berichte zu erstellen oder benutzerdefinierte, suchgestützte Anwendungen zu erstellen alles ohne manuelle Eingriffe.
{/* MANUAL-CONTENT-END */}
## Nutzungsanweisungen
Integrieren Sie Elasticsearch in Workflows für leistungsstarke Suche, Indexierung und Datenverwaltung. Unterstützt CRUD-Operationen für Dokumente, erweiterte Suchabfragen, Massenoperationen, Indexverwaltung und Cluster-Überwachung. Funktioniert sowohl mit selbst gehosteten als auch mit Elastic Cloud-Bereitstellungen.
## Tools
### `elasticsearch_search`
Durchsuche Dokumente in Elasticsearch mit Query DSL. Gibt übereinstimmende Dokumente mit Scores und Metadaten zurück.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `deploymentType` | string | Ja | Bereitstellungstyp: self_hosted oder cloud |
| `host` | string | Nein | Elasticsearch-Host-URL (für self-hosted) |
| `cloudId` | string | Nein | Elastic Cloud ID (für Cloud-Bereitstellungen) |
| `authMethod` | string | Ja | Authentifizierungsmethode: api_key oder basic_auth |
| `apiKey` | string | Nein | Elasticsearch API-Schlüssel |
| `username` | string | Nein | Benutzername für Basic Auth |
| `password` | string | Nein | Passwort für Basic Auth |
| `index` | string | Ja | Indexname für die Suche |
| `query` | string | Nein | Query DSL als JSON-String |
| `from` | number | Nein | Startoffset für Paginierung (Standard: 0) |
| `size` | number | Nein | Anzahl der zurückzugebenden Ergebnisse (Standard: 10) |
| `sort` | string | Nein | Sortierungsspezifikation als JSON-String |
| `sourceIncludes` | string | Nein | Kommagetrennte Liste von Feldern, die in _source eingeschlossen werden sollen |
| `sourceExcludes` | string | Nein | Kommagetrennte Liste von Feldern, die aus _source ausgeschlossen werden sollen |
| `trackTotalHits` | boolean | Nein | Genaue Gesamttrefferanzahl verfolgen (Standard: true) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `took` | number | Zeit in Millisekunden, die die Suche gedauert hat |
| `timed_out` | boolean | Ob die Suche ein Timeout hatte |
| `hits` | object | Suchergebnisse mit Gesamtanzahl und übereinstimmenden Dokumenten |
| `aggregations` | json | Aggregationsergebnisse, falls vorhanden |
### `elasticsearch_index_document`
Dokument in Elasticsearch indexieren (erstellen oder aktualisieren).
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `deploymentType` | string | Ja | Bereitstellungstyp: self_hosted oder cloud |
| `host` | string | Nein | Elasticsearch-Host-URL \(für self-hosted\) |
| `cloudId` | string | Nein | Elastic Cloud ID \(für Cloud-Bereitstellungen\) |
| `authMethod` | string | Ja | Authentifizierungsmethode: api_key oder basic_auth |
| `apiKey` | string | Nein | Elasticsearch API-Schlüssel |
| `username` | string | Nein | Benutzername für Basic-Auth |
| `password` | string | Nein | Passwort für Basic-Auth |
| `index` | string | Ja | Zielindexname |
| `documentId` | string | Nein | Dokument-ID \(wird automatisch generiert, wenn nicht angegeben\) |
| `document` | string | Ja | Dokumentinhalt als JSON-String |
| `refresh` | string | Nein | Aktualisierungsrichtlinie: true, false oder wait_for |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `_index` | string | Index, in dem das Dokument gespeichert wurde |
| `_id` | string | Dokument-ID |
| `_version` | number | Dokumentversion |
| `result` | string | Operationsergebnis \(erstellt oder aktualisiert\) |
### `elasticsearch_get_document`
Dokument anhand der ID aus Elasticsearch abrufen.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `deploymentType` | string | Ja | Bereitstellungstyp: self_hosted oder cloud |
| `host` | string | Nein | Elasticsearch-Host-URL \(für self-hosted\) |
| `cloudId` | string | Nein | Elastic Cloud ID \(für Cloud-Bereitstellungen\) |
| `authMethod` | string | Ja | Authentifizierungsmethode: api_key oder basic_auth |
| `apiKey` | string | Nein | Elasticsearch API-Schlüssel |
| `username` | string | Nein | Benutzername für Basic-Auth |
| `password` | string | Nein | Passwort für Basic-Auth |
| `index` | string | Ja | Indexname |
| `documentId` | string | Ja | Abzurufende Dokument-ID |
| `sourceIncludes` | string | Nein | Kommagetrennte Liste der einzuschließenden Felder |
| `sourceExcludes` | string | Nein | Kommagetrennte Liste der auszuschließenden Felder |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `_index` | string | Indexname |
| `_id` | string | Dokument-ID |
| `_version` | number | Dokumentversion |
| `found` | boolean | Ob das Dokument gefunden wurde |
| `_source` | json | Dokumentinhalt |
### `elasticsearch_update_document`
Teilweise Aktualisierung eines Dokuments in Elasticsearch mittels Doc-Merge.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `deploymentType` | string | Ja | Bereitstellungstyp: self_hosted oder cloud |
| `host` | string | Nein | Elasticsearch-Host-URL (für self-hosted) |
| `cloudId` | string | Nein | Elastic Cloud ID (für Cloud-Bereitstellungen) |
| `authMethod` | string | Ja | Authentifizierungsmethode: api_key oder basic_auth |
| `apiKey` | string | Nein | Elasticsearch API-Schlüssel |
| `username` | string | Nein | Benutzername für Basic Auth |
| `password` | string | Nein | Passwort für Basic Auth |
| `index` | string | Ja | Indexname |
| `documentId` | string | Ja | Zu aktualisierende Dokument-ID |
| `document` | string | Ja | Teilweise Dokument zum Zusammenführen als JSON-String |
| `retryOnConflict` | number | Nein | Anzahl der Wiederholungen bei Versionskonflikten |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `_index` | string | Indexname |
| `_id` | string | Dokument-ID |
| `_version` | number | Neue Dokumentversion |
| `result` | string | Operationsergebnis (updated oder noop) |
### `elasticsearch_delete_document`
Löschen eines Dokuments aus Elasticsearch anhand der ID.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `deploymentType` | string | Ja | Bereitstellungstyp: self_hosted oder cloud |
| `host` | string | Nein | Elasticsearch-Host-URL \(für self-hosted\) |
| `cloudId` | string | Nein | Elastic Cloud ID \(für Cloud-Bereitstellungen\) |
| `authMethod` | string | Ja | Authentifizierungsmethode: api_key oder basic_auth |
| `apiKey` | string | Nein | Elasticsearch API-Schlüssel |
| `username` | string | Nein | Benutzername für Basic-Auth |
| `password` | string | Nein | Passwort für Basic-Auth |
| `index` | string | Ja | Index-Name |
| `documentId` | string | Ja | Dokument-ID zum Löschen |
| `refresh` | string | Nein | Aktualisierungsrichtlinie: true, false oder wait_for |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `_index` | string | Index-Name |
| `_id` | string | Dokument-ID |
| `_version` | number | Dokumentversion |
| `result` | string | Operationsergebnis \(deleted oder not_found\) |
### `elasticsearch_bulk`
Führen Sie mehrere Index-, Erstellungs-, Lösch- oder Aktualisierungsoperationen in einer einzigen Anfrage für hohe Leistung durch.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `deploymentType` | string | Ja | Bereitstellungstyp: self_hosted oder cloud |
| `host` | string | Nein | Elasticsearch-Host-URL \(für self-hosted\) |
| `cloudId` | string | Nein | Elastic Cloud ID \(für Cloud-Bereitstellungen\) |
| `authMethod` | string | Ja | Authentifizierungsmethode: api_key oder basic_auth |
| `apiKey` | string | Nein | Elasticsearch API-Schlüssel |
| `username` | string | Nein | Benutzername für Basic-Auth |
| `password` | string | Nein | Passwort für Basic-Auth |
| `index` | string | Nein | Standardindex für Operationen, die keinen angeben |
| `operations` | string | Ja | Massenoperationen als NDJSON-String \(zeilenweise abgegrenztes JSON\) |
| `refresh` | string | Nein | Aktualisierungsrichtlinie: true, false oder wait_for |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `took` | number | Zeit in Millisekunden, die der Massenvorgang gedauert hat |
| `errors` | boolean | Ob ein Vorgang einen Fehler hatte |
| `items` | array | Ergebnisse für jeden Vorgang |
### `elasticsearch_count`
Zählt Dokumente, die einer Abfrage in Elasticsearch entsprechen.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `deploymentType` | string | Ja | Bereitstellungstyp: self_hosted oder cloud |
| `host` | string | Nein | Elasticsearch-Host-URL \(für self-hosted\) |
| `cloudId` | string | Nein | Elastic Cloud ID \(für Cloud-Bereitstellungen\) |
| `authMethod` | string | Ja | Authentifizierungsmethode: api_key oder basic_auth |
| `apiKey` | string | Nein | Elasticsearch API-Schlüssel |
| `username` | string | Nein | Benutzername für Basic-Auth |
| `password` | string | Nein | Passwort für Basic-Auth |
| `index` | string | Ja | Indexname, in dem Dokumente gezählt werden sollen |
| `query` | string | Nein | Optionale Abfrage zum Filtern von Dokumenten \(JSON-String\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `count` | number | Anzahl der Dokumente, die der Abfrage entsprechen |
| `_shards` | object | Shard-Statistiken |
### `elasticsearch_create_index`
Erstellt einen neuen Index mit optionalen Einstellungen und Mappings.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `deploymentType` | string | Ja | Bereitstellungstyp: self_hosted oder cloud |
| `host` | string | Nein | Elasticsearch-Host-URL \(für self-hosted\) |
| `cloudId` | string | Nein | Elastic Cloud ID \(für Cloud-Bereitstellungen\) |
| `authMethod` | string | Ja | Authentifizierungsmethode: api_key oder basic_auth |
| `apiKey` | string | Nein | Elasticsearch API-Schlüssel |
| `username` | string | Nein | Benutzername für Basic-Auth |
| `password` | string | Nein | Passwort für Basic-Auth |
| `index` | string | Ja | Zu erstellender Indexname |
| `settings` | string | Nein | Indexeinstellungen als JSON-String |
| `mappings` | string | Nein | Index-Mappings als JSON-String |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `acknowledged` | boolean | Ob die Anfrage bestätigt wurde |
| `shards_acknowledged` | boolean | Ob die Shards bestätigt wurden |
| `index` | string | Name des erstellten Index |
### `elasticsearch_delete_index`
Löscht einen Index und alle seine Dokumente. Dieser Vorgang ist nicht rückgängig zu machen.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `deploymentType` | string | Ja | Bereitstellungstyp: self_hosted oder cloud |
| `host` | string | Nein | Elasticsearch-Host-URL \(für self-hosted\) |
| `cloudId` | string | Nein | Elastic Cloud ID \(für Cloud-Bereitstellungen\) |
| `authMethod` | string | Ja | Authentifizierungsmethode: api_key oder basic_auth |
| `apiKey` | string | Nein | Elasticsearch API-Schlüssel |
| `username` | string | Nein | Benutzername für Basic-Auth |
| `password` | string | Nein | Passwort für Basic-Auth |
| `index` | string | Ja | Name des zu löschenden Index |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `acknowledged` | boolean | Ob die Löschung bestätigt wurde |
### `elasticsearch_get_index`
Ruft Indexinformationen ab, einschließlich Einstellungen, Mappings und Aliase.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `deploymentType` | string | Ja | Bereitstellungstyp: self_hosted oder cloud |
| `host` | string | Nein | Elasticsearch-Host-URL \(für self-hosted\) |
| `cloudId` | string | Nein | Elastic Cloud ID \(für Cloud-Bereitstellungen\) |
| `authMethod` | string | Ja | Authentifizierungsmethode: api_key oder basic_auth |
| `apiKey` | string | Nein | Elasticsearch API-Schlüssel |
| `username` | string | Nein | Benutzername für Basic-Auth |
| `password` | string | Nein | Passwort für Basic-Auth |
| `index` | string | Ja | Name des Index, für den Informationen abgerufen werden sollen |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `index` | json | Indexinformationen einschließlich Aliase, Mappings und Einstellungen |
### `elasticsearch_cluster_health`
Ruft den Gesundheitsstatus des Elasticsearch-Clusters ab.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `deploymentType` | string | Ja | Bereitstellungstyp: self_hosted oder cloud |
| `host` | string | Nein | Elasticsearch-Host-URL \(für self-hosted\) |
| `cloudId` | string | Nein | Elastic Cloud ID \(für Cloud-Bereitstellungen\) |
| `authMethod` | string | Ja | Authentifizierungsmethode: api_key oder basic_auth |
| `apiKey` | string | Nein | Elasticsearch API-Schlüssel |
| `username` | string | Nein | Benutzername für Basic-Auth |
| `password` | string | Nein | Passwort für Basic-Auth |
| `waitForStatus` | string | Nein | Warten bis der Cluster diesen Status erreicht: green, yellow oder red |
| `timeout` | string | Nein | Timeout für den Wartevorgang \(z.B. 30s, 1m\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `cluster_name` | string | Name des Clusters |
| `status` | string | Cluster-Gesundheitsstatus: green, yellow oder red |
| `number_of_nodes` | number | Gesamtzahl der Knoten im Cluster |
| `number_of_data_nodes` | number | Anzahl der Datenknoten |
| `active_shards` | number | Anzahl der aktiven Shards |
| `unassigned_shards` | number | Anzahl der nicht zugewiesenen Shards |
### `elasticsearch_cluster_stats`
Erhalte umfassende Statistiken über den Elasticsearch-Cluster.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `deploymentType` | string | Ja | Bereitstellungstyp: self_hosted oder cloud |
| `host` | string | Nein | Elasticsearch-Host-URL \(für self-hosted\) |
| `cloudId` | string | Nein | Elastic Cloud ID \(für Cloud-Bereitstellungen\) |
| `authMethod` | string | Ja | Authentifizierungsmethode: api_key oder basic_auth |
| `apiKey` | string | Nein | Elasticsearch API-Schlüssel |
| `username` | string | Nein | Benutzername für Basic-Auth |
| `password` | string | Nein | Passwort für Basic-Auth |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `cluster_name` | string | Name des Clusters |
| `status` | string | Cluster-Gesundheitsstatus |
| `nodes` | object | Knotenstatistiken einschließlich Anzahl und Versionen |
| `indices` | object | Indexstatistiken einschließlich Dokumentanzahl und Speichergröße |
## Hinweise
- Kategorie: `tools`
- Typ: `elasticsearch`

View File

@@ -0,0 +1,429 @@
---
title: GitLab
description: Interagiere mit GitLab-Projekten, Issues, Merge Requests und Pipelines
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="gitlab"
color="#E0E0E0"
/>
{/* MANUAL-CONTENT-START:intro */}
[GitLab](https://gitlab.com/) ist eine umfassende DevOps-Plattform, die Teams ermöglicht, ihren Software-Entwicklungszyklus zu verwalten, zusammenzuarbeiten und zu automatisieren. Mit GitLab kannst du mühelos Quellcodeverwaltung, CI/CD, Reviews und Zusammenarbeit in einer einzigen Anwendung handhaben.
Mit GitLab in Sim kannst du:
- **Projekte und Repositories verwalten**: Liste und rufe deine GitLab-Projekte ab, greife auf Details zu und organisiere deine Repositories
- **Mit Issues arbeiten**: Issues auflisten, erstellen und kommentieren, um Arbeit zu verfolgen und effektiv zusammenzuarbeiten
- **Merge Requests bearbeiten**: Überprüfe, erstelle und verwalte Merge Requests für Codeänderungen und Peer-Reviews
- **CI/CD-Pipelines automatisieren**: Starte, überwache und interagiere mit GitLab-Pipelines als Teil deiner Automatisierungsabläufe
- **Mit Kommentaren zusammenarbeiten**: Füge Kommentare zu Issues oder Merge Requests hinzu für eine effiziente Kommunikation innerhalb deines Teams
Mit Sims GitLab-Integration können deine Agenten programmatisch mit deinen GitLab-Projekten interagieren. Automatisiere Projektverwaltung, Issue-Tracking, Code-Reviews und Pipeline-Operationen nahtlos in deinen Workflows, optimiere deinen Software-Entwicklungsprozess und verbessere die Zusammenarbeit in deinem Team.
{/* MANUAL-CONTENT-END */}
## Nutzungsanleitung
Integriere GitLab in den Workflow. Kann Projekte, Issues, Merge Requests, Pipelines verwalten und Kommentare hinzufügen. Unterstützt alle grundlegenden GitLab DevOps-Operationen.
## Tools
### `gitlab_list_projects`
GitLab-Projekte auflisten, auf die der authentifizierte Benutzer Zugriff hat
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `owned` | boolean | Nein | Beschränkung auf Projekte, die dem aktuellen Benutzer gehören |
| `membership` | boolean | Nein | Beschränkung auf Projekte, in denen der aktuelle Benutzer Mitglied ist |
| `search` | string | Nein | Projekte nach Namen durchsuchen |
| `visibility` | string | Nein | Nach Sichtbarkeit filtern \(public, internal, private\) |
| `orderBy` | string | Nein | Nach Feld sortieren \(id, name, path, created_at, updated_at, last_activity_at\) |
| `sort` | string | Nein | Sortierrichtung \(asc, desc\) |
| `perPage` | number | Nein | Anzahl der Ergebnisse pro Seite \(Standard 20, max 100\) |
| `page` | number | Nein | Seitennummer für Paginierung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `projects` | array | Liste der GitLab-Projekte |
| `total` | number | Gesamtanzahl der Projekte |
### `gitlab_get_project`
Details zu einem bestimmten GitLab-Projekt abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Projekt-ID oder URL-codierter Pfad \(z.B. "namespace/project"\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `project` | object | Die GitLab-Projektdetails |
### `gitlab_list_issues`
Issues in einem GitLab-Projekt auflisten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Projekt-ID oder URL-codierter Pfad |
| `state` | string | Nein | Nach Status filtern \(opened, closed, all\) |
| `labels` | string | Nein | Kommagetrennte Liste von Label-Namen |
| `assigneeId` | number | Nein | Nach Bearbeiter-Benutzer-ID filtern |
| `milestoneTitle` | string | Nein | Nach Meilenstein-Titel filtern |
| `search` | string | Nein | Issues nach Titel und Beschreibung durchsuchen |
| `orderBy` | string | Nein | Sortieren nach Feld \(created_at, updated_at\) |
| `sort` | string | Nein | Sortierrichtung \(asc, desc\) |
| `perPage` | number | Nein | Anzahl der Ergebnisse pro Seite \(Standard 20, max 100\) |
| `page` | number | Nein | Seitennummer für Paginierung |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `issues` | array | Liste der GitLab-Issues |
| `total` | number | Gesamtanzahl der Issues |
### `gitlab_get_issue`
Details zu einem bestimmten GitLab-Issue abrufen
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Projekt-ID oder URL-codierter Pfad |
| `issueIid` | number | Ja | Issue-Nummer innerhalb des Projekts \(die # in der GitLab-UI angezeigt\) |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `issue` | object | Die GitLab-Issue-Details |
### `gitlab_create_issue`
Ein neues Issue in einem GitLab-Projekt erstellen
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Projekt-ID oder URL-codierter Pfad |
| `title` | string | Ja | Issue-Titel |
| `description` | string | Nein | Issue-Beschreibung \(Markdown unterstützt\) |
| `labels` | string | Nein | Kommagetrennte Liste von Label-Namen |
| `assigneeIds` | array | Nein | Array von Benutzer-IDs für die Zuweisung |
| `milestoneId` | number | Nein | Meilenstein-ID für die Zuweisung |
| `dueDate` | string | Nein | Fälligkeitsdatum im Format JJJJ-MM-TT |
| `confidential` | boolean | Nein | Ob das Issue vertraulich ist |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `issue` | object | Das erstellte GitLab-Issue |
### `gitlab_update_issue`
Ein bestehendes Issue in einem GitLab-Projekt aktualisieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Projekt-ID oder URL-codierter Pfad |
| `issueIid` | number | Ja | Interne Issue-ID (IID) |
| `title` | string | Nein | Neuer Issue-Titel |
| `description` | string | Nein | Neue Issue-Beschreibung (Markdown unterstützt) |
| `stateEvent` | string | Nein | Status-Event (close oder reopen) |
| `labels` | string | Nein | Kommagetrennte Liste von Label-Namen |
| `assigneeIds` | array | Nein | Array von Benutzer-IDs für die Zuweisung |
| `milestoneId` | number | Nein | Meilenstein-ID für die Zuweisung |
| `dueDate` | string | Nein | Fälligkeitsdatum im Format JJJJ-MM-TT |
| `confidential` | boolean | Nein | Ob das Issue vertraulich ist |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `issue` | object | Das aktualisierte GitLab-Issue |
### `gitlab_delete_issue`
Ein Issue aus einem GitLab-Projekt löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Projekt-ID oder URL-codierter Pfad |
| `issueIid` | number | Ja | Interne Issue-ID (IID) |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob das Issue erfolgreich gelöscht wurde |
### `gitlab_create_issue_note`
Einen Kommentar zu einem GitLab-Issue hinzufügen
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Projekt-ID oder URL-codierter Pfad |
| `issueIid` | number | Ja | Interne Issue-ID (IID) |
| `body` | string | Ja | Kommentartext (Markdown unterstützt) |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `note` | object | Der erstellte Kommentar |
### `gitlab_list_merge_requests`
Merge-Requests in einem GitLab-Projekt auflisten
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Projekt-ID oder URL-codierter Pfad |
| `state` | string | Nein | Nach Status filtern (opened, closed, merged, all) |
| `labels` | string | Nein | Kommagetrennte Liste von Label-Namen |
| `sourceBranch` | string | Nein | Nach Quell-Branch filtern |
| `targetBranch` | string | Nein | Nach Ziel-Branch filtern |
| `orderBy` | string | Nein | Sortieren nach Feld (created_at, updated_at) |
| `sort` | string | Nein | Sortierrichtung (asc, desc) |
| `perPage` | number | Nein | Anzahl der Ergebnisse pro Seite (Standard 20, max 100) |
| `page` | number | Nein | Seitennummer für Paginierung |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `mergeRequests` | array | Liste der GitLab Merge-Requests |
| `total` | number | Gesamtanzahl der Merge-Requests |
### `gitlab_get_merge_request`
Details zu einem bestimmten GitLab Merge-Request abrufen
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Projekt-ID oder URL-codierter Pfad |
| `mergeRequestIid` | number | Ja | Interne ID des Merge-Requests \(IID\) |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `mergeRequest` | object | Die Details des GitLab Merge-Requests |
### `gitlab_create_merge_request`
Einen neuen Merge-Request in einem GitLab-Projekt erstellen
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Projekt-ID oder URL-codierter Pfad |
| `sourceBranch` | string | Ja | Name des Quellbranches |
| `targetBranch` | string | Ja | Name des Zielbranches |
| `title` | string | Ja | Titel des Merge-Requests |
| `description` | string | Nein | Beschreibung des Merge-Requests \(Markdown unterstützt\) |
| `labels` | string | Nein | Kommagetrennte Liste von Label-Namen |
| `assigneeIds` | array | Nein | Array von Benutzer-IDs für die Zuweisung |
| `milestoneId` | number | Nein | Meilenstein-ID für die Zuweisung |
| `removeSourceBranch` | boolean | Nein | Quellbranch nach dem Merge löschen |
| `squash` | boolean | Nein | Commits beim Merge zusammenfassen |
| `draft` | boolean | Nein | Als Entwurf markieren \(in Bearbeitung\) |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `mergeRequest` | object | Der erstellte GitLab Merge Request |
### `gitlab_update_merge_request`
Einen bestehenden Merge Request in einem GitLab-Projekt aktualisieren
#### Input
| Parameter | Type | Required | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Projekt-ID oder URL-kodierter Pfad |
| `mergeRequestIid` | number | Yes | Interne ID des Merge Requests \(IID\) |
| `title` | string | No | Neuer Titel des Merge Requests |
| `description` | string | No | Neue Beschreibung des Merge Requests |
| `stateEvent` | string | No | Status-Event \(close oder reopen\) |
| `labels` | string | No | Kommagetrennte Liste von Label-Namen |
| `assigneeIds` | array | No | Array von Benutzer-IDs für die Zuweisung |
| `milestoneId` | number | No | Meilenstein-ID für die Zuweisung |
| `targetBranch` | string | No | Neuer Ziel-Branch |
| `removeSourceBranch` | boolean | No | Quell-Branch nach dem Merge löschen |
| `squash` | boolean | No | Commits beim Merge zusammenfassen |
| `draft` | boolean | No | Als Entwurf markieren \(work in progress\) |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `mergeRequest` | object | Der aktualisierte GitLab Merge Request |
### `gitlab_merge_merge_request`
Einen Merge Request in einem GitLab-Projekt zusammenführen
#### Input
| Parameter | Type | Required | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Projekt-ID oder URL-kodierter Pfad |
| `mergeRequestIid` | number | Yes | Interne ID des Merge Requests \(IID\) |
| `mergeCommitMessage` | string | No | Benutzerdefinierte Merge-Commit-Nachricht |
| `squashCommitMessage` | string | No | Benutzerdefinierte Squash-Commit-Nachricht |
| `squash` | boolean | No | Commits vor dem Merge zusammenfassen |
| `shouldRemoveSourceBranch` | boolean | No | Quell-Branch nach dem Merge löschen |
| `mergeWhenPipelineSucceeds` | boolean | No | Merge durchführen, wenn Pipeline erfolgreich ist |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `mergeRequest` | object | Der zusammengeführte GitLab Merge Request |
### `gitlab_create_merge_request_note`
Einen Kommentar zu einem GitLab Merge Request hinzufügen
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Projekt-ID oder URL-kodierter Pfad |
| `mergeRequestIid` | number | Ja | Interne ID des Merge Requests \(IID\) |
| `body` | string | Ja | Kommentartext \(Markdown wird unterstützt\) |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `note` | object | Der erstellte Kommentar |
### `gitlab_list_pipelines`
Pipelines in einem GitLab-Projekt auflisten
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Projekt-ID oder URL-kodierter Pfad |
| `ref` | string | Nein | Nach Ref filtern \(Branch oder Tag\) |
| `status` | string | Nein | Nach Status filtern \(created, waiting_for_resource, preparing, pending, running, success, failed, canceled, skipped, manual, scheduled\) |
| `orderBy` | string | Nein | Sortieren nach Feld \(id, status, ref, updated_at, user_id\) |
| `sort` | string | Nein | Sortierrichtung \(asc, desc\) |
| `perPage` | number | Nein | Anzahl der Ergebnisse pro Seite \(Standard 20, max 100\) |
| `page` | number | Nein | Seitennummer für Paginierung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `pipelines` | array | Liste der GitLab-Pipelines |
| `total` | number | Gesamtanzahl der Pipelines |
### `gitlab_get_pipeline`
Details zu einer bestimmten GitLab-Pipeline abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Projekt-ID oder URL-codierter Pfad |
| `pipelineId` | number | Ja | Pipeline-ID |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `pipeline` | object | Die GitLab-Pipeline-Details |
### `gitlab_create_pipeline`
Eine neue Pipeline in einem GitLab-Projekt auslösen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Projekt-ID oder URL-codierter Pfad |
| `ref` | string | Ja | Branch oder Tag, auf dem die Pipeline ausgeführt werden soll |
| `variables` | array | Nein | Array von Variablen für die Pipeline \(jede mit key, value und optionalem variable_type\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `pipeline` | object | Die erstellte GitLab-Pipeline |
### `gitlab_retry_pipeline`
Eine fehlgeschlagene GitLab-Pipeline wiederholen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Projekt-ID oder URL-codierter Pfad |
| `pipelineId` | number | Ja | Pipeline-ID |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `pipeline` | object | Die wiederholte GitLab-Pipeline |
### `gitlab_cancel_pipeline`
Eine laufende GitLab-Pipeline abbrechen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Projekt-ID oder URL-codierter Pfad |
| `pipelineId` | number | Ja | Pipeline-ID |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `pipeline` | object | Die abgebrochene GitLab-Pipeline |
## Hinweise
- Kategorie: `tools`
- Typ: `gitlab`

View File

@@ -38,14 +38,14 @@ Erstellt ein neues Ereignis in Google Kalender
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `calendarId` | string | Nein | Kalender-ID \(standardmäßig primary\) |
| `calendarId` | string | Nein | Kalender-ID (standardmäßig primary) |
| `summary` | string | Ja | Ereignistitel/Zusammenfassung |
| `description` | string | Nein | Ereignisbeschreibung |
| `location` | string | Nein | Ereignisort |
| `startDateTime` | string | Ja | Startdatum und -uhrzeit \(RFC3339-Format, z.B. 2025-06-03T10:00:00-08:00\) |
| `endDateTime` | string | Ja | Enddatum und -uhrzeit \(RFC3339-Format, z.B. 2025-06-03T11:00:00-08:00\) |
| `timeZone` | string | Nein | Zeitzone \(z.B. America/Los_Angeles\) |
| `attendees` | array | Nein | Array mit E-Mail-Adressen der Teilnehmer |
| `startDateTime` | string | Ja | Startdatum und -uhrzeit. MUSS Zeitzonen-Offset enthalten (z.B. 2025-06-03T10:00:00-08:00) ODER timeZone-Parameter bereitstellen |
| `endDateTime` | string | Ja | Enddatum und -uhrzeit. MUSS Zeitzonen-Offset enthalten (z.B. 2025-06-03T11:00:00-08:00) ODER timeZone-Parameter bereitstellen |
| `timeZone` | string | Nein | Zeitzone (z.B. America/Los_Angeles). Erforderlich, wenn datetime keinen Offset enthält. Standardmäßig America/Los_Angeles, wenn nicht angegeben. |
| `attendees` | array | Nein | Array von E-Mail-Adressen der Teilnehmer |
| `sendUpdates` | string | Nein | Wie Updates an Teilnehmer gesendet werden: all, externalOnly oder none |
#### Ausgabe

View File

@@ -108,10 +108,10 @@ Dateien und Ordner in Google Drive auflisten
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `folderSelector` | string | Nein | Den Ordner auswählen, aus dem Dateien aufgelistet werden sollen |
| `folderSelector` | string | Nein | Wählen Sie den Ordner aus, aus dem Dateien aufgelistet werden sollen |
| `folderId` | string | Nein | Die ID des Ordners, aus dem Dateien aufgelistet werden sollen (interne Verwendung) |
| `query` | string | Nein | Eine Abfrage zum Filtern der Dateien |
| `pageSize` | number | Nein | Die Anzahl der zurückzugebenden Dateien |
| `query` | string | Nein | Suchbegriff, um Dateien nach Namen zu filtern (z.B. "budget" findet Dateien mit "budget" im Namen). Verwenden Sie hier KEINE Google Drive-Abfragesyntax - geben Sie einfach einen einfachen Suchbegriff ein. |
| `pageSize` | number | Nein | Die maximale Anzahl der zurückzugebenden Dateien (Standard: 100) |
| `pageToken` | string | Nein | Das Seitentoken für die Paginierung |
#### Ausgabe

View File

@@ -0,0 +1,217 @@
---
title: Google Groups
description: Google Workspace-Gruppen und deren Mitglieder verwalten
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="google_groups"
color="#E8F0FE"
/>
## Gebrauchsanweisung
Verbinden Sie sich mit Google Workspace, um Gruppen und deren Mitglieder mit der Admin SDK Directory API zu erstellen, zu aktualisieren und zu verwalten.
## Tools
### `google_groups_list_groups`
Alle Gruppen in einer Google Workspace-Domain auflisten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `customer` | string | Nein | Kunden-ID oder "my_customer" für die Domain des authentifizierten Benutzers |
| `domain` | string | Nein | Domainname zum Filtern von Gruppen |
| `maxResults` | number | Nein | Maximale Anzahl der zurückzugebenden Ergebnisse \(1-200\) |
| `pageToken` | string | Nein | Token für Paginierung |
| `query` | string | Nein | Suchabfrage zum Filtern von Gruppen \(z.B. "email:admin*"\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `output` | json | Google Groups API-Antwortdaten |
### `google_groups_get_group`
Details einer bestimmten Google-Gruppe nach E-Mail oder Gruppen-ID abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `groupKey` | string | Ja | E-Mail-Adresse der Gruppe oder eindeutige Gruppen-ID |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `output` | json | Google Groups API-Antwortdaten |
### `google_groups_create_group`
Eine neue Google-Gruppe in der Domain erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `email` | string | Ja | E-Mail-Adresse für die neue Gruppe (z.B. team@yourdomain.com) |
| `name` | string | Ja | Anzeigename für die Gruppe |
| `description` | string | Nein | Beschreibung der Gruppe |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `output` | json | Google Groups API-Antwortdaten |
### `google_groups_update_group`
Eine bestehende Google-Gruppe aktualisieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `groupKey` | string | Ja | E-Mail-Adresse der Gruppe oder eindeutige Gruppen-ID |
| `name` | string | Nein | Neuer Anzeigename für die Gruppe |
| `description` | string | Nein | Neue Beschreibung für die Gruppe |
| `email` | string | Nein | Neue E-Mail-Adresse für die Gruppe |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `output` | json | Google Groups API-Antwortdaten |
### `google_groups_delete_group`
Eine Google-Gruppe löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `groupKey` | string | Ja | E-Mail-Adresse der Gruppe oder eindeutige Gruppen-ID zum Löschen |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `output` | json | Google Groups API-Antwortdaten |
### `google_groups_list_members`
Alle Mitglieder einer Google-Gruppe auflisten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `groupKey` | string | Ja | E-Mail-Adresse der Gruppe oder eindeutige Gruppen-ID |
| `maxResults` | number | Nein | Maximale Anzahl der zurückzugebenden Ergebnisse \(1-200\) |
| `pageToken` | string | Nein | Token für Seitenumbruch |
| `roles` | string | Nein | Nach Rollen filtern \(durch Komma getrennt: OWNER, MANAGER, MEMBER\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `output` | json | Google Groups API-Antwortdaten |
### `google_groups_get_member`
Details eines bestimmten Mitglieds in einer Google-Gruppe abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `groupKey` | string | Ja | E-Mail-Adresse der Gruppe oder eindeutige Gruppen-ID |
| `memberKey` | string | Ja | E-Mail-Adresse des Mitglieds oder eindeutige Mitglieds-ID |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `output` | json | Google Groups API-Antwortdaten |
### `google_groups_add_member`
Ein neues Mitglied zu einer Google-Gruppe hinzufügen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `groupKey` | string | Ja | E-Mail-Adresse der Gruppe oder eindeutige Gruppen-ID |
| `email` | string | Ja | E-Mail-Adresse des hinzuzufügenden Mitglieds |
| `role` | string | Nein | Rolle für das Mitglied \(MEMBER, MANAGER oder OWNER\). Standardmäßig MEMBER. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `output` | json | Google Groups API-Antwortdaten |
### `google_groups_remove_member`
Ein Mitglied aus einer Google-Gruppe entfernen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `groupKey` | string | Ja | E-Mail-Adresse der Gruppe oder eindeutige Gruppen-ID |
| `memberKey` | string | Ja | E-Mail-Adresse oder eindeutige ID des zu entfernenden Mitglieds |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `output` | json | Google Groups API-Antwortdaten |
### `google_groups_update_member`
Ein Mitglied aktualisieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `groupKey` | string | Ja | E-Mail-Adresse der Gruppe oder eindeutige Gruppen-ID |
| `memberKey` | string | Ja | E-Mail-Adresse des Mitglieds oder eindeutige Mitglieds-ID |
| `role` | string | Ja | Neue Rolle für das Mitglied \(MEMBER, MANAGER oder OWNER\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `output` | json | Google Groups API-Antwortdaten |
### `google_groups_has_member`
Prüfen, ob ein Benutzer Mitglied einer Google-Gruppe ist
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `groupKey` | string | Ja | E-Mail-Adresse der Gruppe oder eindeutige Gruppen-ID |
| `memberKey` | string | Ja | Zu prüfende E-Mail-Adresse des Mitglieds oder eindeutige Mitglieds-ID |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `output` | json | Google Groups API-Antwortdaten |
## Hinweise
- Kategorie: `tools`
- Typ: `google_groups`

View File

@@ -88,8 +88,8 @@ Daten aus einer Google Sheets-Tabelle lesen
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `spreadsheetId` | string | Ja | Die ID der Tabelle, aus der gelesen werden soll |
| `range` | string | Nein | Der Zellbereich, aus dem gelesen werden soll |
| `spreadsheetId` | string | Ja | Die ID der Tabelle \(zu finden in der URL: docs.google.com/spreadsheets/d/\{SPREADSHEET_ID\}/edit\). |
| `range` | string | Nein | Der A1-Notationsbereich zum Lesen \(z.B. "Sheet1!A1:D10", "A1:B5"\). Standardmäßig wird das erste Tabellenblatt A1:Z1000 verwendet, wenn nicht angegeben. |
#### Ausgabe
@@ -106,9 +106,9 @@ Daten in eine Google Sheets-Tabelle schreiben
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `spreadsheetId` | string | Ja | Die ID der Tabelle, in die geschrieben werden soll |
| `range` | string | Nein | Der Zellbereich, in den geschrieben werden soll |
| `values` | array | Ja | Die Daten, die in die Tabelle geschrieben werden sollen |
| `spreadsheetId` | string | Ja | Die ID der Tabelle |
| `range` | string | Nein | Der A1-Notationsbereich, in den geschrieben werden soll \(z.B. "Sheet1!A1:D10", "A1:B5"\) |
| `values` | array | Ja | Die zu schreibenden Daten als 2D-Array \(z.B. \[\["Name", "Alter"\], \["Alice", 30\], \["Bob", 25\]\]\) oder Array von Objekten. |
| `valueInputOption` | string | Nein | Das Format der zu schreibenden Daten |
| `includeValuesInResponse` | boolean | Nein | Ob die geschriebenen Werte in der Antwort enthalten sein sollen |
@@ -131,8 +131,8 @@ Daten in einer Google Sheets-Tabelle aktualisieren
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `spreadsheetId` | string | Ja | Die ID der zu aktualisierenden Tabelle |
| `range` | string | Nein | Der Bereich der zu aktualisierenden Zellen |
| `values` | array | Ja | Die Daten, die in der Tabelle aktualisiert werden sollen |
| `range` | string | Nein | Der A1-Notationsbereich, der aktualisiert werden soll \(z.B. "Sheet1!A1:D10", "A1:B5"\) |
| `values` | array | Ja | Die zu aktualisierenden Daten als 2D-Array \(z.B. \[\["Name", "Alter"\], \["Alice", 30\]\]\) oder Array von Objekten. |
| `valueInputOption` | string | Nein | Das Format der zu aktualisierenden Daten |
| `includeValuesInResponse` | boolean | Nein | Ob die aktualisierten Werte in der Antwort enthalten sein sollen |
@@ -155,10 +155,10 @@ Daten am Ende einer Google Sheets-Tabelle anhängen
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `spreadsheetId` | string | Ja | Die ID der Tabelle, an die angehängt werden soll |
| `range` | string | Nein | Der Bereich der Zellen, nach dem angehängt werden soll |
| `values` | array | Ja | Die Daten, die an die Tabelle angehängt werden sollen |
| `range` | string | Nein | Der A1-Notationsbereich, an den angehängt werden soll (z.B. "Sheet1", "Sheet1!A:D") |
| `values` | array | Ja | Die anzuhängenden Daten als 2D-Array (z.B. [["Alice", 30], ["Bob", 25]]) oder Array von Objekten |
| `valueInputOption` | string | Nein | Das Format der anzuhängenden Daten |
| `insertDataOption` | string | Nein | Wie die Daten eingefügt werden sollen \(OVERWRITE oder INSERT_ROWS\) |
| `insertDataOption` | string | Nein | Wie die Daten eingefügt werden sollen (OVERWRITE oder INSERT_ROWS) |
| `includeValuesInResponse` | boolean | Nein | Ob die angehängten Werte in der Antwort enthalten sein sollen |
#### Ausgabe

View File

@@ -0,0 +1,180 @@
---
title: Google Slides
description: Präsentationen lesen, schreiben und erstellen
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="google_slides"
color="#E0E0E0"
/>
{/* MANUAL-CONTENT-START:intro */}
[Google Slides](https://slides.google.com) ist eine dynamische cloudbasierte Präsentationsanwendung, mit der Benutzer in Echtzeit Präsentationen erstellen, bearbeiten, gemeinsam daran arbeiten und präsentieren können. Als Teil der Google-Produktivitätssuite bietet Google Slides eine flexible Plattform zum Gestalten ansprechender Präsentationen, zur Zusammenarbeit mit anderen und zum nahtlosen Teilen von Inhalten über die Cloud.
Erfahren Sie, wie Sie die Google Slides-Tools in Sim integrieren können, um Präsentationen mühelos als Teil Ihrer automatisierten Workflows zu verwalten. Mit Sim können Sie Google Slides-Präsentationen direkt über Ihre Agenten und automatisierten Prozesse lesen, schreiben, erstellen und aktualisieren, wodurch es einfach wird, aktuelle Informationen zu liefern, benutzerdefinierte Berichte zu generieren oder Marken-Präsentationen programmatisch zu erstellen.
Mit Google Slides können Sie:
- **Präsentationen erstellen und bearbeiten**: Gestalten Sie visuell ansprechende Folien mit Designs, Layouts und Multimedia-Inhalten
- **In Echtzeit zusammenarbeiten**: Arbeiten Sie gleichzeitig mit Teammitgliedern, kommentieren Sie, weisen Sie Aufgaben zu und erhalten Sie Live-Feedback zu Präsentationen
- **Überall präsentieren**: Zeigen Sie Präsentationen online oder offline an, teilen Sie Links oder veröffentlichen Sie im Web
- **Bilder und umfangreiche Inhalte hinzufügen**: Fügen Sie Bilder, Grafiken, Diagramme und Videos ein, um Ihre Präsentationen ansprechend zu gestalten
- **Mit anderen Diensten integrieren**: Verbinden Sie sich nahtlos mit Google Drive, Docs, Sheets und anderen Drittanbieter-Tools
- **Von jedem Gerät aus zugreifen**: Nutzen Sie Google Slides auf Desktop-Computern, Laptops, Tablets und mobilen Geräten für maximale Flexibilität
In Sim ermöglicht die Google Slides-Integration Ihren Agenten, direkt programmatisch mit Präsentationsdateien zu interagieren. Automatisieren Sie Aufgaben wie das Lesen von Folieninhalten, das Einfügen neuer Folien oder Bilder, das Ersetzen von Text in einer gesamten Präsentation, das Erstellen neuer Präsentationen und das Abrufen von Folien-Miniaturansichten. Dies ermöglicht Ihnen, die Inhaltserstellung zu skalieren, Präsentationen aktuell zu halten und sie in automatisierte Dokumenten-Workflows einzubetten. Durch die Verbindung von Sim mit Google Slides ermöglichen Sie KI-gestütztes Präsentationsmanagement so wird es einfach, Präsentationen ohne manuellen Aufwand zu generieren, zu aktualisieren oder Informationen daraus zu extrahieren.
{/* MANUAL-CONTENT-END */}
## Nutzungsanleitung
Integrieren Sie Google Slides in den Workflow. Kann Präsentationen lesen, schreiben, erstellen, Text ersetzen, Folien hinzufügen, Bilder einfügen und Vorschaubilder abrufen.
## Tools
### `google_slides_read`
Inhalte aus einer Google Slides-Präsentation lesen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `presentationId` | string | Ja | Die ID der zu lesenden Präsentation |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `slides` | json | Array von Folien mit ihren Inhalten |
| `metadata` | json | Präsentationsmetadaten einschließlich ID, Titel und URL |
### `google_slides_write`
Inhalte in einer Google Slides-Präsentation schreiben oder aktualisieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `presentationId` | string | Ja | Die ID der Präsentation, in die geschrieben werden soll |
| `content` | string | Ja | Der Inhalt, der in die Folie geschrieben werden soll |
| `slideIndex` | number | Nein | Der Index der Folie, in die geschrieben werden soll \(standardmäßig die erste Folie\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `updatedContent` | boolean | Gibt an, ob der Präsentationsinhalt erfolgreich aktualisiert wurde |
| `metadata` | json | Aktualisierte Präsentationsmetadaten einschließlich ID, Titel und URL |
### `google_slides_create`
Eine neue Google Slides-Präsentation erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `title` | string | Ja | Der Titel der zu erstellenden Präsentation |
| `content` | string | Nein | Der Inhalt, der zur ersten Folie hinzugefügt werden soll |
| `folderSelector` | string | Nein | Wählen Sie den Ordner aus, in dem die Präsentation erstellt werden soll |
| `folderId` | string | Nein | Die ID des Ordners, in dem die Präsentation erstellt werden soll \(interne Verwendung\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `metadata` | json | Metadaten der erstellten Präsentation einschließlich ID, Titel und URL |
### `google_slides_replace_all_text`
Suchen und ersetzen aller Textvorkommen in einer Google Slides-Präsentation
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `presentationId` | string | Ja | Die ID der Präsentation |
| `findText` | string | Ja | Der zu suchende Text (z.B. \{\{placeholder\}\}) |
| `replaceText` | string | Ja | Der Text, durch den ersetzt werden soll |
| `matchCase` | boolean | Nein | Ob die Suche Groß-/Kleinschreibung berücksichtigen soll (Standard: true) |
| `pageObjectIds` | string | Nein | Kommagetrennte Liste von Folienobjekt-IDs, um Ersetzungen auf bestimmte Folien zu beschränken (leer lassen für alle Folien) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `occurrencesChanged` | number | Anzahl der Textvorkommen, die ersetzt wurden |
| `metadata` | json | Operationsmetadaten einschließlich Präsentations-ID und URL |
### `google_slides_add_slide`
Eine neue Folie mit einem bestimmten Layout zu einer Google Slides-Präsentation hinzufügen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `presentationId` | string | Ja | Die ID der Präsentation |
| `layout` | string | Nein | Das vordefinierte Layout für die Folie (BLANK, TITLE, TITLE_AND_BODY, TITLE_ONLY, SECTION_HEADER, usw.). Standard ist BLANK. |
| `insertionIndex` | number | Nein | Der optionale nullbasierte Index, der angibt, wo die Folie eingefügt werden soll. Wenn nicht angegeben, wird die Folie am Ende hinzugefügt. |
| `placeholderIdMappings` | string | Nein | JSON-Array von Platzhalter-Zuordnungen, um Platzhaltern benutzerdefinierte Objekt-IDs zuzuweisen. Format: \[\{"layoutPlaceholder":\{"type":"TITLE"\},"objectId":"custom_title_id"\}\] |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `slideId` | string | Die Objekt-ID der neu erstellten Folie |
| `metadata` | json | Operationsmetadaten einschließlich Präsentations-ID, Layout und URL |
### `google_slides_add_image`
Ein Bild in eine bestimmte Folie einer Google Slides-Präsentation einfügen
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `presentationId` | string | Ja | Die ID der Präsentation |
| `pageObjectId` | string | Ja | Die Objekt-ID der Folie/Seite, zu der das Bild hinzugefügt werden soll |
| `imageUrl` | string | Ja | Die öffentlich zugängliche URL des Bildes \(muss PNG, JPEG oder GIF sein, max. 50MB\) |
| `width` | number | Nein | Breite des Bildes in Punkten \(Standard: 300\) |
| `height` | number | Nein | Höhe des Bildes in Punkten \(Standard: 200\) |
| `positionX` | number | Nein | X-Position vom linken Rand in Punkten \(Standard: 100\) |
| `positionY` | number | Nein | Y-Position vom oberen Rand in Punkten \(Standard: 100\) |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `imageId` | string | Die Objekt-ID des neu erstellten Bildes |
| `metadata` | json | Operationsmetadaten einschließlich Präsentations-ID und Bild-URL |
### `google_slides_get_thumbnail`
Ein Vorschaubild einer bestimmten Folie in einer Google Slides-Präsentation generieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `presentationId` | string | Ja | Die ID der Präsentation |
| `pageObjectId` | string | Ja | Die Objekt-ID der Folie/Seite, für die ein Thumbnail erstellt werden soll |
| `thumbnailSize` | string | Nein | Die Größe des Thumbnails: SMALL \(200px\), MEDIUM \(800px\) oder LARGE \(1600px\). Standardmäßig MEDIUM. |
| `mimeType` | string | Nein | Der MIME-Typ des Thumbnail-Bildes: PNG oder GIF. Standardmäßig PNG. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `contentUrl` | string | URL zum Thumbnail-Bild \(gültig für 30 Minuten\) |
| `width` | number | Breite des Thumbnails in Pixeln |
| `height` | number | Höhe des Thumbnails in Pixeln |
| `metadata` | json | Operationsmetadaten einschließlich Präsentations-ID und Seitenobjekt-ID |
## Hinweise
- Kategorie: `tools`
- Typ: `google_slides`

View File

@@ -0,0 +1,494 @@
---
title: Grafana
description: Interagiere mit Grafana-Dashboards, Alarmen und Anmerkungen
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="grafana"
color="#E0E0E0"
/>
{/* MANUAL-CONTENT-START:intro */}
[Grafana](https://grafana.com/) ist eine führende Open-Source-Plattform für Monitoring, Observability und Visualisierung. Sie ermöglicht Benutzern, Daten aus verschiedenen Quellen abzufragen, zu visualisieren, zu überwachen und zu analysieren, was sie zu einem wesentlichen Werkzeug für Infrastruktur- und Anwendungsmonitoring macht.
Mit Grafana kannst du:
- **Daten visualisieren**: Dashboards erstellen und anpassen, um Metriken, Logs und Traces in Echtzeit anzuzeigen
- **Gesundheit und Status überwachen**: Den Zustand deiner Grafana-Instanz und verbundener Datenquellen überprüfen
- **Alarme und Anmerkungen verwalten**: Alarmregeln einrichten, Benachrichtigungen verwalten und Dashboards mit wichtigen Ereignissen versehen
- **Inhalte organisieren**: Dashboards und Datenquellen in Ordnern organisieren für besseres Zugriffsmanagement
In Sim ermöglicht die Grafana-Integration deinen Agenten, direkt über die API mit deiner Grafana-Instanz zu interagieren, was Aktionen wie folgende ermöglicht:
- Überprüfung des Gesundheitsstatus von Grafana-Server, Datenbank und Datenquellen
- Abrufen, Auflisten und Verwalten von Dashboards, Alarmregeln, Anmerkungen, Datenquellen und Ordnern
- Automatisierung der Überwachung deiner Infrastruktur durch Integration von Grafana-Daten und Alarmen in deine Workflow-Automatisierungen
Diese Fähigkeiten ermöglichen es Sim-Agenten, Systeme zu überwachen, proaktiv auf Alarme zu reagieren und die Zuverlässigkeit und Sichtbarkeit deiner Dienste zu gewährleisten alles als Teil deiner automatisierten Workflows.
{/* MANUAL-CONTENT-END */}
## Nutzungsanleitung
Integriere Grafana in Workflows. Verwalte Dashboards, Alarme, Anmerkungen, Datenquellen, Ordner und überwache den Gesundheitsstatus.
## Tools
### `grafana_get_dashboard`
Ein Dashboard anhand seiner UID abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Grafana Service Account Token |
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
| `dashboardUid` | string | Ja | Die UID des abzurufenden Dashboards |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `dashboard` | json | Das vollständige Dashboard-JSON-Objekt |
| `meta` | json | Dashboard-Metadaten \(Version, Berechtigungen usw.\) |
### `grafana_list_dashboards`
Suchen und auflisten aller Dashboards
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Grafana Service Account Token |
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
| `query` | string | Nein | Suchanfrage zum Filtern von Dashboards nach Titel |
| `tag` | string | Nein | Nach Tag filtern \(kommagetrennt für mehrere Tags\) |
| `folderIds` | string | Nein | Nach Ordner-IDs filtern \(kommagetrennt\) |
| `starred` | boolean | Nein | Nur mit Stern markierte Dashboards zurückgeben |
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Dashboards |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `dashboards` | array | Liste der Dashboard-Suchergebnisse |
### `grafana_create_dashboard`
Ein neues Dashboard erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Grafana Service Account Token |
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
| `title` | string | Ja | Der Titel des neuen Dashboards |
| `folderUid` | string | Nein | Die UID des Ordners, in dem das Dashboard erstellt werden soll |
| `tags` | string | Nein | Kommagetrennte Liste von Tags |
| `timezone` | string | Nein | Dashboard-Zeitzone \(z.B. browser, utc\) |
| `refresh` | string | Nein | Auto-Aktualisierungsintervall \(z.B. 5s, 1m, 5m\) |
| `panels` | string | Nein | JSON-Array von Panel-Konfigurationen |
| `overwrite` | boolean | Nein | Vorhandenes Dashboard mit gleichem Titel überschreiben |
| `message` | string | Nein | Commit-Nachricht für die Dashboard-Version |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `id` | number | Die numerische ID des erstellten Dashboards |
| `uid` | string | Die UID des erstellten Dashboards |
| `url` | string | Der URL-Pfad zum Dashboard |
| `status` | string | Status der Operation \(success\) |
| `version` | number | Die Versionsnummer des Dashboards |
| `slug` | string | URL-freundlicher Slug des Dashboards |
### `grafana_update_dashboard`
Aktualisiert ein bestehendes Dashboard. Ruft das aktuelle Dashboard ab und führt Ihre Änderungen zusammen.
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Grafana Service Account Token |
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
| `dashboardUid` | string | Ja | Die UID des zu aktualisierenden Dashboards |
| `title` | string | Nein | Neuer Titel für das Dashboard |
| `folderUid` | string | Nein | Neue Ordner-UID, um das Dashboard zu verschieben |
| `tags` | string | Nein | Kommagetrennte Liste neuer Tags |
| `timezone` | string | Nein | Dashboard-Zeitzone \(z.B. browser, utc\) |
| `refresh` | string | Nein | Auto-Refresh-Intervall \(z.B. 5s, 1m, 5m\) |
| `panels` | string | Nein | JSON-Array von Panel-Konfigurationen |
| `overwrite` | boolean | Nein | Überschreiben auch bei Versionskonflikten |
| `message` | string | Nein | Commit-Nachricht für diese Version |
#### Output
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `id` | number | Die numerische ID des aktualisierten Dashboards |
| `uid` | string | Die UID des aktualisierten Dashboards |
| `url` | string | Der URL-Pfad zum Dashboard |
| `status` | string | Status der Operation \(success\) |
| `version` | number | Die neue Versionsnummer des Dashboards |
| `slug` | string | URL-freundlicher Slug des Dashboards |
### `grafana_delete_dashboard`
Löschen eines Dashboards anhand seiner UID
#### Input
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Grafana Service Account Token |
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
| `dashboardUid` | string | Ja | Die UID des zu löschenden Dashboards |
#### Output
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `title` | string | Der Titel des gelöschten Dashboards |
| `message` | string | Bestätigungsnachricht |
| `id` | number | Die ID des gelöschten Dashboards |
### `grafana_list_alert_rules`
Alle Alarmregeln in der Grafana-Instanz auflisten
#### Input
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Grafana Service Account Token |
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `rules` | array | Liste der Alarmregeln |
### `grafana_get_alert_rule`
Eine bestimmte Alarmregel anhand ihrer UID abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Grafana Service Account Token |
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
| `alertRuleUid` | string | Ja | Die UID der abzurufenden Alarmregel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `uid` | string | Alarmregel-UID |
| `title` | string | Alarmregel-Titel |
| `condition` | string | Alarmbedingung |
| `data` | json | Alarmregel-Abfragedaten |
| `folderUID` | string | Übergeordnete Ordner-UID |
| `ruleGroup` | string | Regelgruppenname |
| `noDataState` | string | Status, wenn keine Daten zurückgegeben werden |
| `execErrState` | string | Status bei Ausführungsfehler |
| `annotations` | json | Alarmanmerkungen |
| `labels` | json | Alarmlabels |
### `grafana_create_alert_rule`
Eine neue Alarmregel erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Grafana Service Account Token |
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
| `title` | string | Ja | Der Titel der Alarmregel |
| `folderUid` | string | Ja | Die UID des Ordners, in dem der Alarm erstellt werden soll |
| `ruleGroup` | string | Ja | Der Name der Regelgruppe |
| `condition` | string | Ja | Die refId der Abfrage oder des Ausdrucks, der als Alarmbedingung verwendet werden soll |
| `data` | string | Ja | JSON-Array von Abfrage-/Ausdrucksdatenobjekten |
| `forDuration` | string | Nein | Wartezeit vor dem Auslösen \(z.B. 5m, 1h\) |
| `noDataState` | string | Nein | Status, wenn keine Daten zurückgegeben werden \(NoData, Alerting, OK\) |
| `execErrState` | string | Nein | Status bei Ausführungsfehler \(Alerting, OK\) |
| `annotations` | string | Nein | JSON-Objekt von Anmerkungen |
| `labels` | string | Nein | JSON-Objekt von Labels |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `uid` | string | Die UID der erstellten Alarmregel |
| `title` | string | Titel der Alarmregel |
| `folderUID` | string | UID des übergeordneten Ordners |
| `ruleGroup` | string | Name der Regelgruppe |
### `grafana_update_alert_rule`
Aktualisiert eine bestehende Alarmregel. Ruft die aktuelle Regel ab und führt Ihre Änderungen zusammen.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Grafana Service-Account-Token |
| `baseUrl` | string | Ja | Grafana-Instanz-URL (z.B. https://your-grafana.com) |
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
| `alertRuleUid` | string | Ja | Die UID der zu aktualisierenden Alarmregel |
| `title` | string | Nein | Neuer Titel für die Alarmregel |
| `folderUid` | string | Nein | Neue Ordner-UID, um den Alarm zu verschieben |
| `ruleGroup` | string | Nein | Neuer Name der Regelgruppe |
| `condition` | string | Nein | Neue Bedingung refId |
| `data` | string | Nein | Neues JSON-Array von Abfrage-/Ausdrucksdatenobjekten |
| `forDuration` | string | Nein | Wartezeit vor dem Auslösen (z.B. 5m, 1h) |
| `noDataState` | string | Nein | Status, wenn keine Daten zurückgegeben werden (NoData, Alerting, OK) |
| `execErrState` | string | Nein | Status bei Ausführungsfehler (Alerting, OK) |
| `annotations` | string | Nein | JSON-Objekt von Anmerkungen |
| `labels` | string | Nein | JSON-Objekt von Labels |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `uid` | string | Die UID der aktualisierten Alarmregel |
| `title` | string | Titel der Alarmregel |
| `folderUID` | string | UID des übergeordneten Ordners |
| `ruleGroup` | string | Name der Regelgruppe |
### `grafana_delete_alert_rule`
Löschen einer Alarmregel anhand ihrer UID
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Grafana Service-Account-Token |
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
| `alertRuleUid` | string | Ja | Die UID der zu löschenden Alarmregel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Bestätigungsnachricht |
### `grafana_list_contact_points`
Alle Alarmbenachrichtigungs-Kontaktpunkte auflisten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Grafana Service-Account-Token |
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `contactPoints` | array | Liste der Kontaktpunkte |
### `grafana_create_annotation`
Eine Anmerkung auf einem Dashboard oder als globale Anmerkung erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Grafana Service Account Token |
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
| `text` | string | Ja | Der Textinhalt der Anmerkung |
| `tags` | string | Nein | Kommagetrennte Liste von Tags |
| `dashboardUid` | string | Nein | UID des Dashboards, zu dem die Anmerkung hinzugefügt werden soll \(optional für globale Anmerkungen\) |
| `panelId` | number | Nein | ID des Panels, zu dem die Anmerkung hinzugefügt werden soll |
| `time` | number | Nein | Startzeit in Epochenmillisekunden \(standardmäßig jetzt\) |
| `timeEnd` | number | Nein | Endzeit in Epochenmillisekunden \(für Bereichsanmerkungen\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `id` | number | Die ID der erstellten Anmerkung |
| `message` | string | Bestätigungsnachricht |
### `grafana_list_annotations`
Anmerkungen nach Zeitraum, Dashboard oder Tags abfragen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Grafana Service Account Token |
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
| `from` | number | Nein | Startzeit in Epochenmillisekunden |
| `to` | number | Nein | Endzeit in Epochenmillisekunden |
| `dashboardUid` | string | Nein | Nach Dashboard-UID filtern |
| `panelId` | number | Nein | Nach Panel-ID filtern |
| `tags` | string | Nein | Kommagetrennte Liste von Tags, nach denen gefiltert werden soll |
| `type` | string | Nein | Nach Typ filtern \(alert oder annotation\) |
| `limit` | number | Nein | Maximale Anzahl von zurückzugebenden Anmerkungen |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `annotations` | array | Liste der Anmerkungen |
### `grafana_update_annotation`
Eine vorhandene Anmerkung aktualisieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Grafana Service-Account-Token |
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
| `annotationId` | number | Ja | Die ID der zu aktualisierenden Anmerkung |
| `text` | string | Ja | Neuer Textinhalt für die Anmerkung |
| `tags` | string | Nein | Kommagetrennte Liste neuer Tags |
| `time` | number | Nein | Neue Startzeit in Epochenmillisekunden |
| `timeEnd` | number | Nein | Neue Endzeit in Epochenmillisekunden |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `id` | number | Die ID der aktualisierten Anmerkung |
| `message` | string | Bestätigungsnachricht |
### `grafana_delete_annotation`
Eine Anmerkung anhand ihrer ID löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Grafana Service-Account-Token |
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
| `annotationId` | number | Ja | Die ID der zu löschenden Anmerkung |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Bestätigungsnachricht |
### `grafana_list_data_sources`
Alle in Grafana konfigurierten Datenquellen auflisten
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Grafana Service Account Token |
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `dataSources` | array | Liste der Datenquellen |
### `grafana_get_data_source`
Eine Datenquelle anhand ihrer ID oder UID abrufen
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Grafana Service Account Token |
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
| `dataSourceId` | string | Ja | Die ID oder UID der abzurufenden Datenquelle |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `id` | number | Datenquellen-ID |
| `uid` | string | Datenquellen-UID |
| `name` | string | Name der Datenquelle |
| `type` | string | Typ der Datenquelle |
| `url` | string | Verbindungs-URL der Datenquelle |
| `database` | string | Datenbankname \(falls zutreffend\) |
| `isDefault` | boolean | Ob dies die Standard-Datenquelle ist |
| `jsonData` | json | Zusätzliche Konfiguration der Datenquelle |
### `grafana_list_folders`
Alle Ordner in Grafana auflisten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Grafana Service Account Token |
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
| `organizationId` | string | Nein | Organisations-ID für Grafana-Instanzen mit mehreren Organisationen |
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Ordner |
| `page` | number | Nein | Seitennummer für Paginierung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `folders` | array | Liste der Ordner |
### `grafana_create_folder`
Einen neuen Ordner in Grafana erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Ja | Grafana Service Account Token |
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
| `organizationId` | string | Nein | Organisations-ID für Grafana-Instanzen mit mehreren Organisationen |
| `title` | string | Ja | Der Titel des neuen Ordners |
| `uid` | string | Nein | Optionale UID für den Ordner \(wird automatisch generiert, wenn nicht angegeben\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `id` | number | Die numerische ID des erstellten Ordners |
| `uid` | string | Die UID des erstellten Ordners |
| `title` | string | Der Titel des erstellten Ordners |
| `url` | string | Der URL-Pfad zum Ordner |
## Notizen
- Kategorie: `tools`
- Typ: `grafana`

View File

@@ -361,6 +361,8 @@ Einen bestehenden Zeitplan in incident.io aktualisieren
| `id` | string | Ja | Die ID des zu aktualisierenden Zeitplans |
| `name` | string | Nein | Neuer Name für den Zeitplan |
| `timezone` | string | Nein | Neue Zeitzone für den Zeitplan \(z.B. America/New_York\) |
| `config` | string | Nein | Zeitplankonfiguration als JSON-String mit Rotationen. Beispiel: \{"rotations": \[\{"name": "Primary", "users": \[\{"id": "user_id"\}\], "handover_start_at": "2024-01-01T09:00:00Z", "handovers": \[\{"interval": 1, "interval_type": "weekly"\}\]\}\]\} |
| `Example` | string | Nein | Keine Beschreibung |
#### Ausgabe

View File

@@ -167,7 +167,7 @@ Ein Unternehmen in Intercom erstellen oder aktualisieren
| `plan` | string | Nein | Der Unternehmensplan |
| `size` | number | Nein | Die Anzahl der Mitarbeiter im Unternehmen |
| `industry` | string | Nein | Die Branche, in der das Unternehmen tätig ist |
| `monthly_spend` | number | Nein | Wie viel Umsatz das Unternehmen für Ihr Geschäft generiert |
| `monthly_spend` | number | Nein | Wie viel Umsatz das Unternehmen für Ihr Geschäft generiert. Hinweis: Dieses Feld kürzt Dezimalzahlen auf ganze Zahlen \(z.B. wird aus 155,98 die Zahl 155\) |
| `custom_attributes` | string | Nein | Benutzerdefinierte Attribute als JSON-Objekt |
#### Ausgabe
@@ -196,7 +196,7 @@ Ein einzelnes Unternehmen anhand der ID von Intercom abrufen
### `intercom_list_companies`
Alle Unternehmen von Intercom mit Paginierungsunterstützung auflisten
Listet alle Unternehmen von Intercom mit Paginierungsunterstützung auf. Hinweis: Dieser Endpunkt hat ein Limit von 10.000 Unternehmen, die über Paginierung zurückgegeben werden können. Für Datensätze mit mehr als 10.000 Unternehmen verwenden Sie stattdessen die Scroll-API.
#### Eingabe
@@ -259,8 +259,8 @@ Als Administrator auf eine Konversation in Intercom antworten
| `conversationId` | string | Ja | Konversations-ID, auf die geantwortet werden soll |
| `message_type` | string | Ja | Nachrichtentyp: "comment" oder "note" |
| `body` | string | Ja | Der Textinhalt der Antwort |
| `admin_id` | string | Ja | Die ID des Administrators, der die Antwort verfasst |
| `attachment_urls` | string | Nein | Kommagetrennte Liste von Bild-URLs (max. 10) |
| `admin_id` | string | Nein | Die ID des Administrators, der die Antwort verfasst. Wenn nicht angegeben, wird ein Standard-Administrator \(Operator/Fin\) verwendet. |
| `attachment_urls` | string | Nein | Kommagetrennte Liste von Bild-URLs \(max. 10\) |
#### Ausgabe

View File

@@ -0,0 +1,393 @@
---
title: Kalshi
description: Zugriff auf Prognosemärkte und Handel auf Kalshi
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="kalshi"
color="#09C285"
/>
{/* MANUAL-CONTENT-START:intro */}
[Kalshi](https://kalshi.com) ist eine bundesweit regulierte Börse, an der Nutzer direkt mit den Ergebnissen zukünftiger Ereignisse handeln können Prognosemärkte. Kalshis robuste API und Sim-Integration ermöglichen es Agenten und Workflows, programmatisch auf alle Aspekte der Plattform zuzugreifen und unterstützen alles von Forschung und Analyse bis hin zu automatisiertem Handel und Überwachung.
Mit Kalshis Integration in Sim können Sie:
- **Markt- & Ereignisdaten:** Echtzeit- und historische Daten für Märkte und Ereignisse suchen, filtern und abrufen; detaillierte Informationen zum Marktstatus, Serien, Ereignisgruppierungen und mehr abrufen.
- **Konto- & Guthaben-Management:** Zugriff auf Kontostände, verfügbare Mittel und Überwachung von Echtzeit-Positionen.
- **Auftrags- & Handelsmanagement:** Neue Aufträge platzieren, bestehende stornieren, offene Aufträge einsehen, ein Live-Orderbuch abrufen und auf vollständige Handelshistorien zugreifen.
- **Ausführungsanalyse:** Abruf von aktuellen Trades, historischen Ausführungen und Candlestick-Daten für Backtesting oder Marktstrukturforschung.
- **Überwachung:** Börsenweiten oder serienspezifischen Status prüfen, Echtzeit-Updates über Marktänderungen oder Handelsunterbrechungen erhalten und Reaktionen automatisieren.
- **Automatisierungsbereit:** Entwicklung von End-to-End automatisierten Agenten und Dashboards, die Wahrscheinlichkeiten von Ereignissen in der realen Welt konsumieren, analysieren und damit handeln.
Durch die Nutzung dieser einheitlichen Tools und Endpunkte können Sie Kalshis Prognosemärkte, Live-Handelsfunktionen und umfangreiche Ereignisdaten nahtlos in Ihre KI-gestützten Anwendungen, Dashboards und Workflows integrieren und so eine anspruchsvolle, automatisierte Entscheidungsfindung ermöglichen, die an reale Ergebnisse gekoppelt ist.
{/* MANUAL-CONTENT-END */}
## Nutzungsanleitung
Integrieren Sie Kalshi-Prognosemärkte in den Workflow. Kann Märkte, Markt, Ereignisse, Ereignis, Kontostand, Positionen, Aufträge, Orderbuch, Trades, Candlesticks, Ausführungen, Serien, Börsenstatus abrufen und Trades platzieren/stornieren/ändern.
## Tools
### `kalshi_get_markets`
Rufe eine Liste von Prognosemärkten von Kalshi mit optionaler Filterung ab
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `status` | string | Nein | Nach Status filtern \(unopened, open, closed, settled\) |
| `seriesTicker` | string | Nein | Nach Serien-Ticker filtern |
| `eventTicker` | string | Nein | Nach Event-Ticker filtern |
| `limit` | string | Nein | Anzahl der Ergebnisse \(1-1000, standard: 100\) |
| `cursor` | string | Nein | Paginierungscursor für die nächste Seite |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Marktdaten und Metadaten |
### `kalshi_get_market`
Rufe Details eines bestimmten Prognosemarkts nach Ticker ab
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `ticker` | string | Ja | Der Markt-Ticker \(z.B. "KXBTC-24DEC31"\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Marktdaten und Metadaten |
### `kalshi_get_events`
Rufe eine Liste von Events von Kalshi mit optionaler Filterung ab
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `status` | string | Nein | Nach Status filtern \(open, closed, settled\) |
| `seriesTicker` | string | Nein | Nach Serien-Ticker filtern |
| `withNestedMarkets` | string | Nein | Verschachtelte Märkte in der Antwort einschließen \(true/false\) |
| `limit` | string | Nein | Anzahl der Ergebnisse \(1-200, standard: 200\) |
| `cursor` | string | Nein | Paginierungscursor für die nächste Seite |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Ereignisdaten und Metadaten |
### `kalshi_get_event`
Details eines bestimmten Ereignisses anhand des Tickers abrufen
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `eventTicker` | string | Ja | Der Ereignis-Ticker |
| `withNestedMarkets` | string | Nein | Verschachtelte Märkte in die Antwort einbeziehen \(true/false\) |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Ereignisdaten und Metadaten |
### `kalshi_get_balance`
Kontostand und Portfoliowert von Kalshi abrufen
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `keyId` | string | Ja | Ihre Kalshi API-Schlüssel-ID |
| `privateKey` | string | Ja | Ihr RSA Private Key \(PEM-Format\) |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Kontostandsdaten und Metadaten |
### `kalshi_get_positions`
Offene Positionen von Kalshi abrufen
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `keyId` | string | Ja | Ihre Kalshi API-Schlüssel-ID |
| `privateKey` | string | Ja | Ihr RSA Private Key \(PEM-Format\) |
| `ticker` | string | Nein | Nach Markt-Ticker filtern |
| `eventTicker` | string | Nein | Nach Ereignis-Ticker filtern \(max. 10 durch Komma getrennt\) |
| `settlementStatus` | string | Nein | Nach Abrechnungsstatus filtern \(all, unsettled, settled\). Standard: unsettled |
| `limit` | string | Nein | Anzahl der Ergebnisse \(1-1000, Standard: 100\) |
| `cursor` | string | Nein | Paginierungscursor für die nächste Seite |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Positionsdaten und Metadaten |
### `kalshi_get_orders`
Rufen Sie Ihre Bestellungen von Kalshi mit optionaler Filterung ab
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `keyId` | string | Ja | Ihre Kalshi API-Schlüssel-ID |
| `privateKey` | string | Ja | Ihr RSA Private Key \(PEM-Format\) |
| `ticker` | string | Nein | Nach Markt-Ticker filtern |
| `eventTicker` | string | Nein | Nach Event-Ticker filtern \(maximal 10 durch Komma getrennt\) |
| `status` | string | Nein | Nach Status filtern \(resting, canceled, executed\) |
| `limit` | string | Nein | Anzahl der Ergebnisse \(1-200, Standard: 100\) |
| `cursor` | string | Nein | Paginierungscursor für die nächste Seite |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Bestelldaten und Metadaten |
### `kalshi_get_order`
Rufen Sie Details zu einem bestimmten Auftrag anhand der ID von Kalshi ab
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `keyId` | string | Ja | Ihre Kalshi API-Schlüssel-ID |
| `privateKey` | string | Ja | Ihr RSA Private Key \(PEM-Format\) |
| `orderId` | string | Ja | Die abzurufende Auftrags-ID |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Auftragsdaten |
### `kalshi_get_orderbook`
Rufen Sie das Orderbuch (Ja- und Nein-Gebote) für einen bestimmten Markt ab
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `ticker` | string | Ja | Markt-Ticker \(z.B. KXBTC-24DEC31\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Orderbuch-Daten und Metadaten |
### `kalshi_get_trades`
Rufen Sie aktuelle Trades über alle Märkte hinweg ab
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `limit` | string | Nein | Anzahl der Ergebnisse \(1-1000, Standard: 100\) |
| `cursor` | string | Nein | Paginierungscursor für die nächste Seite |
#### Output
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Handelsdaten und Metadaten |
### `kalshi_get_candlesticks`
OHLC-Kerzendaten für einen bestimmten Markt abrufen
#### Input
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `seriesTicker` | string | Ja | Serien-Ticker |
| `ticker` | string | Ja | Markt-Ticker \(z.B. KXBTC-24DEC31\) |
| `startTs` | number | Ja | Startzeitstempel \(Unix-Sekunden\) |
| `endTs` | number | Ja | Endzeitstempel \(Unix-Sekunden\) |
| `periodInterval` | number | Ja | Periodenintervall: 1 \(1min\), 60 \(1Stunde\) oder 1440 \(1Tag\) |
#### Output
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Kerzendaten und Metadaten |
### `kalshi_get_fills`
Ihr Portfolio abrufen
#### Input
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `keyId` | string | Ja | Ihre Kalshi API-Schlüssel-ID |
| `privateKey` | string | Ja | Ihr RSA Private Key \(PEM-Format\) |
| `ticker` | string | Nein | Nach Markt-Ticker filtern |
| `orderId` | string | Nein | Nach Bestell-ID filtern |
| `minTs` | number | Nein | Minimaler Zeitstempel \(Unix-Millisekunden\) |
| `maxTs` | number | Nein | Maximaler Zeitstempel \(Unix-Millisekunden\) |
| `limit` | string | Nein | Anzahl der Ergebnisse \(1-1000, Standard: 100\) |
| `cursor` | string | Nein | Paginierungscursor für die nächste Seite |
#### Output
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Ausführungsdaten und Metadaten |
### `kalshi_get_series_by_ticker`
Details einer bestimmten Marktserie nach Ticker abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `seriesTicker` | string | Ja | Serien-Ticker |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Seriendaten und Metadaten |
### `kalshi_get_exchange_status`
Den aktuellen Status der Kalshi-Börse abrufen (Handel und Börsenaktivität)
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Börsenstatus-Daten und Metadaten |
### `kalshi_create_order`
Eine neue Order auf einem Kalshi-Prognosemarkt erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `keyId` | string | Ja | Ihre Kalshi API-Schlüssel-ID |
| `privateKey` | string | Ja | Ihr RSA Private Key \(PEM-Format\) |
| `ticker` | string | Ja | Markt-Ticker \(z.B. KXBTC-24DEC31\) |
| `side` | string | Ja | Seite der Order: 'yes' oder 'no' |
| `action` | string | Ja | Aktionstyp: 'buy' oder 'sell' |
| `count` | string | Ja | Anzahl der Kontrakte \(mindestens 1\) |
| `type` | string | Nein | Ordertyp: 'limit' oder 'market' \(Standard: limit\) |
| `yesPrice` | string | Nein | Yes-Preis in Cent \(1-99\) |
| `noPrice` | string | Nein | No-Preis in Cent \(1-99\) |
| `yesPriceDollars` | string | Nein | Yes-Preis in Dollar \(z.B. "0.56"\) |
| `noPriceDollars` | string | Nein | No-Preis in Dollar \(z.B. "0.56"\) |
| `clientOrderId` | string | Nein | Benutzerdefinierte Order-ID |
| `expirationTs` | string | Nein | Unix-Zeitstempel für Order-Ablauf |
| `timeInForce` | string | Nein | Gültigkeitsdauer: 'fill_or_kill', 'good_till_canceled', 'immediate_or_cancel' |
| `buyMaxCost` | string | Nein | Maximale Kosten in Cent \(aktiviert automatisch fill_or_kill\) |
| `postOnly` | string | Nein | Auf 'true' setzen für Maker-Only-Orders |
| `reduceOnly` | string | Nein | Auf 'true' setzen für ausschließliche Positionsreduzierung |
| `selfTradePreventionType` | string | Nein | Selbsthandel-Prävention: 'taker_at_cross' oder 'maker' |
| `orderGroupId` | string | Nein | Zugehörige Ordergruppen-ID |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Erstellte Auftragsdaten |
### `kalshi_cancel_order`
Einen bestehenden Auftrag auf Kalshi stornieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `keyId` | string | Ja | Ihre Kalshi API-Schlüssel-ID |
| `privateKey` | string | Ja | Ihr RSA Private Key \(PEM-Format\) |
| `orderId` | string | Ja | Die zu stornierende Auftrags-ID |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Stornierte Auftragsdaten |
### `kalshi_amend_order`
Preis oder Menge eines bestehenden Auftrags auf Kalshi ändern
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `keyId` | string | Ja | Ihre Kalshi API-Schlüssel-ID |
| `privateKey` | string | Ja | Ihr RSA Private Key \(PEM-Format\) |
| `orderId` | string | Ja | Die zu ändernde Auftrags-ID |
| `ticker` | string | Ja | Markt-Ticker |
| `side` | string | Ja | Seite des Auftrags: 'yes' oder 'no' |
| `action` | string | Ja | Aktionstyp: 'buy' oder 'sell' |
| `clientOrderId` | string | Ja | Die ursprüngliche vom Kunden angegebene Auftrags-ID |
| `updatedClientOrderId` | string | Ja | Die neue vom Kunden angegebene Auftrags-ID nach der Änderung |
| `count` | string | Nein | Aktualisierte Menge für den Auftrag |
| `yesPrice` | string | Nein | Aktualisierter Ja-Preis in Cent \(1-99\) |
| `noPrice` | string | Nein | Aktualisierter Nein-Preis in Cent \(1-99\) |
| `yesPriceDollars` | string | Nein | Aktualisierter Ja-Preis in Dollar \(z.B. "0.56"\) |
| `noPriceDollars` | string | Nein | Aktualisierter Nein-Preis in Dollar \(z.B. "0.56"\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Geänderte Auftragsdaten |
## Hinweise
- Kategorie: `tools`
- Typ: `kalshi`

View File

@@ -7,7 +7,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="mailgun"
color="#F06248"
color="#E0E0E0"
/>
{/* MANUAL-CONTENT-START:intro */}

View File

@@ -0,0 +1,352 @@
---
title: Polymarket
description: Zugriff auf Prognosemarktdaten von Polymarket
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="polymarket"
color="#4C82FB"
/>
{/* MANUAL-CONTENT-START:intro */}
[Polymarket](https://polymarket.com) ist eine dezentralisierte Plattform für Prognosemärkte, auf der Nutzer mit Blockchain-Technologie auf den Ausgang zukünftiger Ereignisse handeln können. Polymarket bietet eine umfassende API, die Entwicklern und Agenten den Zugriff auf Live-Marktdaten, Ereignislisten, Preisinformationen und Orderbuch-Statistiken ermöglicht, um datengesteuerte Workflows und KI-Automatisierungen zu unterstützen.
Mit der API von Polymarket und der Sim-Integration können Sie Agenten befähigen, programmatisch Informationen zu Prognosemärkten abzurufen, offene Märkte und zugehörige Ereignisse zu erkunden, historische Preisdaten zu analysieren und auf Orderbücher und Markt-Mittelwerte zuzugreifen. Dies schafft neue Möglichkeiten für Recherchen, automatisierte Analysen und die Entwicklung intelligenter Agenten, die auf Echtzeit-Ereigniswahrscheinlichkeiten reagieren, die aus Marktpreisen abgeleitet werden.
Zu den wichtigsten Funktionen der Polymarket-Integration gehören:
- **Marktlisting & Filterung:** Auflistung aller aktuellen oder historischen Prognosemärkte, Filterung nach Tags, Sortierung und Seitenweise Durchblättern der Ergebnisse.
- **Marktdetails:** Abrufen von Details für einen einzelnen Markt anhand der Markt-ID oder des Slugs, einschließlich seiner Ergebnisse und Status.
- **Ereignislisten:** Zugriff auf Listen von Polymarket-Ereignissen und detaillierte Ereignisinformationen.
- **Orderbuch- & Preisdaten:** Analyse des Orderbuchs, Abruf der aktuellen Marktpreise, Einsicht in den Mittelwert oder Erhalt historischer Preisinformationen für jeden Markt.
- **Automatisierungsbereit:** Erstellen von Agenten oder Tools, die programmatisch auf Marktentwicklungen, sich ändernde Quoten oder bestimmte Ereignisausgänge reagieren.
Durch die Nutzung dieser dokumentierten API-Endpunkte können Sie die umfangreichen On-Chain-Prognosemarktdaten von Polymarket nahtlos in Ihre eigenen KI-Workflows, Dashboards, Recherchetools und Handelsautomatisierungen integrieren.
{/* MANUAL-CONTENT-END */}
## Nutzungsanweisungen
Integrieren Sie Polymarket-Prognosemärkte in den Workflow. Kann Märkte, Markt, Ereignisse, Ereignis, Tags, Serien, Orderbuch, Preis, Mittelpunkt, Preisverlauf, letzten Handelspreis, Spread, Tick-Größe, Positionen, Trades und Suche abrufen.
## Tools
### `polymarket_get_markets`
Rufen Sie eine Liste von Prognosemärkten von Polymarket mit optionaler Filterung ab
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `closed` | string | Nein | Nach geschlossenem Status filtern \(true/false\). Verwenden Sie false für nur aktive Märkte. |
| `order` | string | Nein | Sortierfeld \(z.B. volumeNum, liquidityNum, startDate, endDate, createdAt\) |
| `ascending` | string | Nein | Sortierrichtung \(true für aufsteigend, false für absteigend\) |
| `tagId` | string | Nein | Nach Tag-ID filtern |
| `limit` | string | Nein | Anzahl der Ergebnisse pro Seite \(empfohlen: 25-50\) |
| `offset` | string | Nein | Paginierungsoffset \(überspringe diese Anzahl an Ergebnissen\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Marktdaten und Metadaten |
### `polymarket_get_market`
Rufen Sie Details eines bestimmten Prognosemarktes nach ID oder Slug ab
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `marketId` | string | Nein | Die Markt-ID. Erforderlich, wenn Slug nicht angegeben wird. |
| `slug` | string | Nein | Der Markt-Slug \(z.B. "will-trump-win"\). Erforderlich, wenn marketId nicht angegeben wird. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Marktdaten und Metadaten |
### `polymarket_get_events`
Ruft eine Liste von Events von Polymarket mit optionaler Filterung ab
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `closed` | string | Nein | Nach geschlossenem Status filtern \(true/false\). Verwenden Sie false für nur aktive Events. |
| `order` | string | Nein | Sortierfeld \(z.B. volume, liquidity, startDate, endDate, createdAt\) |
| `ascending` | string | Nein | Sortierrichtung \(true für aufsteigend, false für absteigend\) |
| `tagId` | string | Nein | Nach Tag-ID filtern |
| `limit` | string | Nein | Anzahl der Ergebnisse pro Seite \(empfohlen: 25-50\) |
| `offset` | string | Nein | Paginierungsoffset \(überspringe diese Anzahl an Ergebnissen\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Event-Daten und Metadaten |
### `polymarket_get_event`
Ruft Details eines bestimmten Events nach ID oder Slug ab
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `eventId` | string | Nein | Die Event-ID. Erforderlich, wenn kein Slug angegeben wird. |
| `slug` | string | Nein | Der Event-Slug \(z.B. "2024-presidential-election"\). Erforderlich, wenn keine eventId angegeben wird. |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Ereignisdaten und Metadaten |
### `polymarket_get_tags`
Verfügbare Tags zum Filtern von Märkten von Polymarket abrufen
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `limit` | string | Nein | Anzahl der Ergebnisse pro Seite \(empfohlen: 25-50\) |
| `offset` | string | Nein | Paginierungsoffset \(überspringe diese Anzahl an Ergebnissen\) |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Tag-Daten und Metadaten |
### `polymarket_search`
Nach Märkten, Ereignissen und Profilen auf Polymarket suchen
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `query` | string | Ja | Suchbegriff |
| `limit` | string | Nein | Anzahl der Ergebnisse pro Seite \(empfohlen: 25-50\) |
| `offset` | string | Nein | Paginierungsoffset \(überspringe diese Anzahl an Ergebnissen\) |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Suchergebnisse und Metadaten |
### `polymarket_get_series`
Serien (verwandte Marktgruppen) von Polymarket abrufen
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `limit` | string | Nein | Anzahl der Ergebnisse pro Seite \(empfohlen: 25-50\) |
| `offset` | string | Nein | Paginierungsoffset \(überspringe diese Anzahl an Ergebnissen\) |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Seriendaten und Metadaten |
### `polymarket_get_series_by_id`
Eine bestimmte Serie (zugehörige Marktgruppe) anhand der ID von Polymarket abrufen
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `seriesId` | string | Ja | Die Serien-ID |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Seriendaten und Metadaten |
### `polymarket_get_orderbook`
Die Orderbuch-Zusammenfassung für einen bestimmten Token abrufen
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `tokenId` | string | Ja | Die CLOB-Token-ID (aus den clobTokenIds des Marktes) |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Orderbuch-Daten und Metadaten |
### `polymarket_get_price`
Den Marktpreis für einen bestimmten Token und eine bestimmte Seite abrufen
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `tokenId` | string | Ja | Die CLOB-Token-ID (aus den clobTokenIds des Marktes) |
| `side` | string | Ja | Orderseite: buy oder sell |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Preisdaten und Metadaten |
### `polymarket_get_midpoint`
Abrufen des Mittelpreises für einen bestimmten Token
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `tokenId` | string | Ja | Die CLOB-Token-ID (aus market clobTokenIds) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Mittelpreisdaten und Metadaten |
### `polymarket_get_price_history`
Abrufen historischer Preisdaten für einen bestimmten Markttoken
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `tokenId` | string | Ja | Die CLOB-Token-ID (aus market clobTokenIds) |
| `interval` | string | Nein | Zeitraum, der zum aktuellen Zeitpunkt endet (1m, 1h, 6h, 1d, 1w, max). Schließt sich gegenseitig mit startTs/endTs aus. |
| `fidelity` | number | Nein | Datenauflösung in Minuten (z.B. 60 für stündlich) |
| `startTs` | number | Nein | Startzeitstempel (Unix-Sekunden UTC) |
| `endTs` | number | Nein | Endzeitstempel (Unix-Sekunden UTC) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Preisverlaufsdaten und Metadaten |
### `polymarket_get_last_trade_price`
Den letzten Handelspreis für einen bestimmten Token abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `tokenId` | string | Ja | Die CLOB-Token-ID \(aus market clobTokenIds\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Letzter Handelspreis und Metadaten |
### `polymarket_get_spread`
Die Geld-Brief-Spanne für einen bestimmten Token abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `tokenId` | string | Ja | Die CLOB-Token-ID \(aus market clobTokenIds\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Spread-Daten und Metadaten |
### `polymarket_get_tick_size`
Die minimale Tickgröße für einen bestimmten Token abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `tokenId` | string | Ja | Die CLOB-Token-ID \(aus market clobTokenIds\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Tickgröße und Metadaten |
### `polymarket_get_positions`
Benutzerpositionen von Polymarket abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `user` | string | Ja | Wallet-Adresse des Benutzers |
| `market` | string | Nein | Optionale Markt-ID zum Filtern von Positionen |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Positionsdaten und Metadaten |
### `polymarket_get_trades`
Handelshistorie von Polymarket abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `user` | string | Nein | Wallet-Adresse des Benutzers zum Filtern von Trades |
| `market` | string | Nein | Markt-ID zum Filtern von Trades |
| `limit` | string | Nein | Anzahl der Ergebnisse pro Seite \(empfohlen: 25-50\) |
| `offset` | string | Nein | Paginierungsoffset \(überspringe so viele Ergebnisse\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Handelsdaten und Metadaten |
## Hinweise
- Kategorie: `tools`
- Typ: `polymarket`

View File

@@ -83,10 +83,17 @@ Ein neues Anliegen mit bestimmten Eigenschaften erstellen
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiToken` | string | Ja | Pylon API-Token |
| `title` | string | Ja | Titel des Anliegens |
| `bodyHtml` | string | Ja | Inhalt des Anliegens im HTML-Format |
| `accountId` | string | Nein | Konto-ID, die mit dem Anliegen verknüpft werden soll |
| `assigneeId` | string | Nein | Benutzer-ID, der das Anliegen zugewiesen werden soll |
| `title` | string | Ja | Titel des Problems |
| `bodyHtml` | string | Ja | Inhalt des Problems im HTML-Format |
| `accountId` | string | Nein | Konto-ID, die mit dem Problem verknüpft werden soll |
| `assigneeId` | string | Nein | Benutzer-ID, der das Problem zugewiesen werden soll |
| `teamId` | string | Nein | Team-ID, dem das Problem zugewiesen werden soll |
| `requesterId` | string | Nein | Anforderer-Benutzer-ID \(Alternative zu requester_email\) |
| `requesterEmail` | string | Nein | E-Mail-Adresse des Anforderers \(Alternative zu requester_id\) |
| `priority` | string | Nein | Priorität des Problems |
| `tags` | string | Nein | Durch Komma getrennte Tag-IDs |
| `customFields` | string | Nein | Benutzerdefinierte Felder als JSON-Objekt |
| `attachmentUrls` | string | Nein | Durch Komma getrennte Anhang-URLs |
#### Output
@@ -119,15 +126,18 @@ Aktualisiert ein bestehendes Issue
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `apiToken` | string | Ja | Pylon API-Token |
| `issueId` | string | Ja | Die ID des zu aktualisierenden Issues |
| `state` | string | Nein | Issue-Status |
| `assigneeId` | string | Nein | Benutzer-ID, der das Issue zugewiesen werden soll |
| `teamId` | string | Nein | Team-ID, dem das Issue zugewiesen werden soll |
| `tags` | string | Nein | Kommagetrennte Tag-IDs |
| `issueId` | string | Ja | Die ID des zu aktualisierenden Problems |
| `state` | string | Nein | Status des Problems |
| `assigneeId` | string | Nein | Benutzer-ID, der das Problem zugewiesen werden soll |
| `teamId` | string | Nein | Team-ID, dem das Problem zugewiesen werden soll |
| `tags` | string | Nein | Durch Komma getrennte Tag-IDs |
| `customFields` | string | Nein | Benutzerdefinierte Felder als JSON-Objekt |
| `customerPortalVisible` | boolean | Nein | Ob das Problem im Kundenportal sichtbar ist |
| `requesterId` | string | Nein | Anforderer-Benutzer-ID |
| `accountId` | string | Nein | Konto-ID, die mit dem Problem verknüpft werden soll |
#### Output

View File

@@ -135,283 +135,684 @@ Löschen eines Kontos aus Salesforce CRM
### `salesforce_get_contacts`
Kontakt(e) aus Salesforce abrufen - einzelner Kontakt, wenn ID angegeben, oder Liste, wenn nicht
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | Nein | Keine Beschreibung |
| `instanceUrl` | string | Nein | Keine Beschreibung |
| `contactId` | string | Nein | Kontakt-ID \(wenn angegeben, wird ein einzelner Kontakt zurückgegeben\) |
| `limit` | string | Nein | Anzahl der Ergebnisse \(Standard: 100, max: 2000\). Nur für Listenabfrage. |
| `fields` | string | Nein | Kommagetrennte Felder \(z.B. "Id,FirstName,LastName,Email,Phone"\) |
| `orderBy` | string | Nein | Sortierfeld \(z.B. "LastName ASC"\). Nur für Listenabfrage. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | json | Ergebnisdaten der Operation |
| `output` | object | Kontaktdaten |
### `salesforce_create_contact`
Einen neuen Kontakt im Salesforce CRM erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | Nein | Keine Beschreibung |
| `instanceUrl` | string | Nein | Keine Beschreibung |
| `lastName` | string | Ja | Nachname \(erforderlich\) |
| `firstName` | string | Nein | Vorname |
| `email` | string | Nein | E-Mail-Adresse |
| `phone` | string | Nein | Telefonnummer |
| `accountId` | string | Nein | Konto-ID, mit der der Kontakt verknüpft werden soll |
| `title` | string | Nein | Keine Beschreibung |
| `department` | string | Nein | Abteilung |
| `mailingStreet` | string | Nein | Postanschrift \(Straße\) |
| `mailingCity` | string | Nein | Postanschrift \(Stadt\) |
| `mailingState` | string | Nein | Postanschrift \(Bundesland\) |
| `mailingPostalCode` | string | Nein | Postanschrift \(Postleitzahl\) |
| `mailingCountry` | string | Nein | Postanschrift \(Land\) |
| `description` | string | Nein | Kontaktbeschreibung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | json | Ergebnisdaten der Operation |
| `output` | object | Daten des erstellten Kontakts |
### `salesforce_update_contact`
Aktualisieren eines bestehenden Kontakts in Salesforce CRM
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | Nein | Keine Beschreibung |
| `instanceUrl` | string | Nein | Keine Beschreibung |
| `contactId` | string | Ja | Zu aktualisierende Kontakt-ID \(erforderlich\) |
| `lastName` | string | Nein | Nachname |
| `firstName` | string | Nein | Vorname |
| `email` | string | Nein | E-Mail-Adresse |
| `phone` | string | Nein | Telefonnummer |
| `accountId` | string | Nein | Zu verknüpfende Konto-ID |
| `title` | string | Nein | Keine Beschreibung |
| `department` | string | Nein | Abteilung |
| `mailingStreet` | string | Nein | Postanschrift (Straße) |
| `mailingCity` | string | Nein | Postanschrift (Stadt) |
| `mailingState` | string | Nein | Postanschrift (Bundesland) |
| `mailingPostalCode` | string | Nein | Postanschrift (Postleitzahl) |
| `mailingCountry` | string | Nein | Postanschrift (Land) |
| `description` | string | Nein | Beschreibung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | json | Ergebnisdaten der Operation |
| `output` | object | Daten des aktualisierten Kontakts |
### `salesforce_delete_contact`
Löschen eines Kontakts aus Salesforce CRM
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | Nein | Keine Beschreibung |
| `instanceUrl` | string | Nein | Keine Beschreibung |
| `contactId` | string | Ja | Zu löschende Kontakt-ID \(erforderlich\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | json | Ergebnisdaten der Operation |
| `output` | object | Daten des gelöschten Kontakts |
### `salesforce_get_leads`
Lead(s) aus Salesforce abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | Nein | Keine Beschreibung |
| `instanceUrl` | string | Nein | Keine Beschreibung |
| `leadId` | string | Nein | Lead-ID \(optional\) |
| `limit` | string | Nein | Maximale Ergebnisse \(Standard: 100\) |
| `fields` | string | Nein | Kommagetrennte Felder |
| `orderBy` | string | Nein | Sortierfeld |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | json | Ergebnisdaten der Operation |
| `success` | boolean | Erfolgsstatus |
| `output` | object | Lead-Daten |
### `salesforce_create_lead`
Einen neuen Lead erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | Nein | Keine Beschreibung |
| `instanceUrl` | string | Nein | Keine Beschreibung |
| `lastName` | string | Ja | Nachname \(erforderlich\) |
| `company` | string | Ja | Unternehmen \(erforderlich\) |
| `firstName` | string | Nein | Vorname |
| `email` | string | Nein | Keine Beschreibung |
| `phone` | string | Nein | Keine Beschreibung |
| `status` | string | Nein | Lead-Status |
| `leadSource` | string | Nein | Lead-Quelle |
| `title` | string | Nein | Keine Beschreibung |
| `description` | string | Nein | Beschreibung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | json | Ergebnisdaten der Operation |
| `success` | boolean | Erfolg |
| `output` | object | Erstellter Lead |
### `salesforce_update_lead`
Aktualisieren eines vorhandenen Leads
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | Nein | Keine Beschreibung |
| `instanceUrl` | string | Nein | Keine Beschreibung |
| `leadId` | string | Ja | Lead-ID (erforderlich) |
| `lastName` | string | Nein | Nachname |
| `company` | string | Nein | Keine Beschreibung |
| `firstName` | string | Nein | Vorname |
| `email` | string | Nein | Keine Beschreibung |
| `phone` | string | Nein | Keine Beschreibung |
| `status` | string | Nein | Lead-Status |
| `leadSource` | string | Nein | Lead-Quelle |
| `title` | string | Nein | Keine Beschreibung |
| `description` | string | Nein | Beschreibung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | json | Ergebnisdaten der Operation |
| `success` | boolean | Erfolg |
| `output` | object | Aktualisierter Lead |
### `salesforce_delete_lead`
Löschen eines Leads
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | Nein | Keine Beschreibung |
| `instanceUrl` | string | Nein | Keine Beschreibung |
| `leadId` | string | Ja | Lead-ID (erforderlich) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | json | Ergebnisdaten der Operation |
| `success` | boolean | Erfolg |
| `output` | object | Gelöschter Lead |
### `salesforce_get_opportunities`
Verkaufschance(n) aus Salesforce abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | Nein | Keine Beschreibung |
| `instanceUrl` | string | Nein | Keine Beschreibung |
| `opportunityId` | string | Nein | Verkaufschancen-ID \(optional\) |
| `limit` | string | Nein | Maximale Ergebnisse \(Standard: 100\) |
| `fields` | string | Nein | Kommagetrennte Felder |
| `orderBy` | string | Nein | Sortierfeld |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | json | Ergebnisdaten der Operation |
| `success` | boolean | Erfolg |
| `output` | object | Verkaufschancendaten |
### `salesforce_create_opportunity`
Eine neue Verkaufschance erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | Nein | Keine Beschreibung |
| `instanceUrl` | string | Nein | Keine Beschreibung |
| `name` | string | Ja | Name der Verkaufschance \(erforderlich\) |
| `stageName` | string | Ja | Phasenname \(erforderlich\) |
| `closeDate` | string | Ja | Abschlussdatum JJJJ-MM-TT \(erforderlich\) |
| `accountId` | string | Nein | Konto-ID |
| `amount` | string | Nein | Betrag \(Zahl\) |
| `probability` | string | Nein | Wahrscheinlichkeit \(0-100\) |
| `description` | string | Nein | Beschreibung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | json | Ergebnisdaten der Operation |
| `success` | boolean | Erfolg |
| `output` | object | Erstellte Verkaufschance |
### `salesforce_update_opportunity`
Aktualisieren einer bestehenden Verkaufschance
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | Nein | Keine Beschreibung |
| `instanceUrl` | string | Nein | Keine Beschreibung |
| `opportunityId` | string | Ja | Verkaufschancen-ID (erforderlich) |
| `name` | string | Nein | Name der Verkaufschance |
| `stageName` | string | Nein | Phasenname |
| `closeDate` | string | Nein | Abschlussdatum JJJJ-MM-TT |
| `accountId` | string | Nein | Konto-ID |
| `amount` | string | Nein | Keine Beschreibung |
| `probability` | string | Nein | Wahrscheinlichkeit (0-100) |
| `description` | string | Nein | Beschreibung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | json | Ergebnisdaten der Operation |
| `success` | boolean | Erfolg |
| `output` | object | Aktualisierte Verkaufschance |
### `salesforce_delete_opportunity`
Löschen einer Verkaufschance
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | Nein | Keine Beschreibung |
| `instanceUrl` | string | Nein | Keine Beschreibung |
| `opportunityId` | string | Ja | Verkaufschancen-ID (erforderlich) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | json | Ergebnisdaten der Operation |
| `success` | boolean | Erfolg |
| `output` | object | Gelöschte Verkaufschance |
### `salesforce_get_cases`
Fall/Fälle aus Salesforce abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | Nein | Keine Beschreibung |
| `instanceUrl` | string | Nein | Keine Beschreibung |
| `caseId` | string | Nein | Fall-ID \(optional\) |
| `limit` | string | Nein | Maximale Ergebnisse \(Standard: 100\) |
| `fields` | string | Nein | Kommagetrennte Felder |
| `orderBy` | string | Nein | Sortierfeld |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | json | Ergebnisdaten der Operation |
| `success` | boolean | Erfolg |
| `output` | object | Falldaten |
### `salesforce_create_case`
Einen neuen Fall erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | Nein | Keine Beschreibung |
| `instanceUrl` | string | Nein | Keine Beschreibung |
| `subject` | string | Ja | Fallbetreff \(erforderlich\) |
| `status` | string | Nein | Status \(z.B. Neu, In Bearbeitung, Eskaliert\) |
| `priority` | string | Nein | Priorität \(z.B. Niedrig, Mittel, Hoch\) |
| `origin` | string | Nein | Ursprung \(z.B. Telefon, E-Mail, Web\) |
| `contactId` | string | Nein | Kontakt-ID |
| `accountId` | string | Nein | Konto-ID |
| `description` | string | Nein | Beschreibung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | json | Ergebnisdaten der Operation |
| `success` | boolean | Erfolg |
| `output` | object | Erstellter Fall |
### `salesforce_update_case`
Aktualisieren eines vorhandenen Falls
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | Nein | Keine Beschreibung |
| `instanceUrl` | string | Nein | Keine Beschreibung |
| `caseId` | string | Ja | Fall-ID \(erforderlich\) |
| `subject` | string | Nein | Fallbetreff |
| `status` | string | Nein | Status |
| `priority` | string | Nein | Priorität |
| `description` | string | Nein | Beschreibung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | json | Ergebnisdaten der Operation |
| `success` | boolean | Erfolg |
| `output` | object | Aktualisierter Fall |
### `salesforce_delete_case`
Löschen eines Falls
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | Nein | Keine Beschreibung |
| `instanceUrl` | string | Nein | Keine Beschreibung |
| `caseId` | string | Ja | Fall-ID \(erforderlich\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | json | Ergebnisdaten der Operation |
| `success` | boolean | Erfolg |
| `output` | object | Gelöschter Fall |
### `salesforce_get_tasks`
Aufgabe(n) von Salesforce abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | Nein | Keine Beschreibung |
| `instanceUrl` | string | Nein | Keine Beschreibung |
| `taskId` | string | Nein | Aufgaben-ID \(optional\) |
| `limit` | string | Nein | Maximale Ergebnisse \(Standard: 100\) |
| `fields` | string | Nein | Kommagetrennte Felder |
| `orderBy` | string | Nein | Sortierfeld |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | json | Ergebnisdaten der Operation |
| `success` | boolean | Erfolgsstatus |
| `output` | object | Aufgabendaten |
### `salesforce_create_task`
Neue Aufgabe erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | Nein | Keine Beschreibung |
| `instanceUrl` | string | Nein | Keine Beschreibung |
| `subject` | string | Ja | Aufgabenbetreff \(erforderlich\) |
| `status` | string | Nein | Status \(z.B. Nicht begonnen, In Bearbeitung, Abgeschlossen\) |
| `priority` | string | Nein | Priorität \(z.B. Niedrig, Normal, Hoch\) |
| `activityDate` | string | Nein | Fälligkeitsdatum JJJJ-MM-TT |
| `whoId` | string | Nein | Zugehörige Kontakt-/Lead-ID |
| `whatId` | string | Nein | Zugehörige Konto-/Opportunity-ID |
| `description` | string | Nein | Beschreibung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | json | Ergebnisdaten der Operation |
| `success` | boolean | Erfolgsstatus |
| `output` | object | Erstellte Aufgabe |
### `salesforce_update_task`
Bestehende Aufgabe aktualisieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | Nein | Keine Beschreibung |
| `instanceUrl` | string | Nein | Keine Beschreibung |
| `taskId` | string | Ja | Aufgaben-ID \(erforderlich\) |
| `subject` | string | Nein | Aufgabenbetreff |
| `status` | string | Nein | Status |
| `priority` | string | Nein | Priorität |
| `activityDate` | string | Nein | Fälligkeitsdatum JJJJ-MM-TT |
| `description` | string | Nein | Beschreibung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | json | Ergebnisdaten der Operation |
| `success` | boolean | Erfolg |
| `output` | object | Aktualisierte Aufgabe |
### `salesforce_delete_task`
Aufgabe löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | Nein | Keine Beschreibung |
| `instanceUrl` | string | Nein | Keine Beschreibung |
| `taskId` | string | Ja | Aufgaben-ID \(erforderlich\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | json | Ergebnisdaten der Operation |
| `success` | boolean | Erfolg |
| `output` | object | Gelöschte Aufgabe |
### `salesforce_list_reports`
Liste der für den aktuellen Benutzer zugänglichen Berichte abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | Nein | Keine Beschreibung |
| `instanceUrl` | string | Nein | Keine Beschreibung |
| `folderName` | string | Nein | Nach Ordnernamen filtern |
| `searchTerm` | string | Nein | Suchbegriff zum Filtern von Berichten nach Namen |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus |
| `output` | object | Berichtsdaten |
### `salesforce_get_report`
Metadaten und Beschreibungsinformationen für einen bestimmten Bericht abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | Nein | Keine Beschreibung |
| `instanceUrl` | string | Nein | Keine Beschreibung |
| `reportId` | string | Ja | Berichts-ID \(erforderlich\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus |
| `output` | object | Berichtsmetadaten |
### `salesforce_run_report`
Einen Bericht ausführen und die Ergebnisse abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | Nein | Keine Beschreibung |
| `instanceUrl` | string | Nein | Keine Beschreibung |
| `reportId` | string | Ja | Berichts-ID \(erforderlich\) |
| `includeDetails` | string | Nein | Detailzeilen einschließen \(true/false, Standard: true\) |
| `filters` | string | Nein | JSON-String der anzuwendenden Berichtsfilter |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus |
| `output` | object | Berichtsergebnisse |
### `salesforce_list_report_types`
Eine Liste der verfügbaren Berichtstypen abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | Nein | Keine Beschreibung |
| `instanceUrl` | string | Nein | Keine Beschreibung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus |
| `output` | object | Daten zu Berichtstypen |
### `salesforce_list_dashboards`
Eine Liste der für den aktuellen Benutzer zugänglichen Dashboards abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | Nein | Keine Beschreibung |
| `instanceUrl` | string | Nein | Keine Beschreibung |
| `folderName` | string | Nein | Nach Ordnernamen filtern |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus |
| `output` | object | Dashboard-Daten |
### `salesforce_get_dashboard`
Details und Ergebnisse für ein bestimmtes Dashboard abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | Nein | Keine Beschreibung |
| `instanceUrl` | string | Nein | Keine Beschreibung |
| `dashboardId` | string | Ja | Dashboard-ID \(erforderlich\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus |
| `output` | object | Dashboard-Daten |
### `salesforce_refresh_dashboard`
Ein Dashboard aktualisieren, um die neuesten Daten zu erhalten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | Nein | Keine Beschreibung |
| `instanceUrl` | string | Nein | Keine Beschreibung |
| `dashboardId` | string | Ja | Dashboard-ID \(erforderlich\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus |
| `output` | object | Aktualisierte Dashboard-Daten |
### `salesforce_query`
Eine benutzerdefinierte SOQL-Abfrage ausführen, um Daten aus Salesforce abzurufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | Nein | Keine Beschreibung |
| `instanceUrl` | string | Nein | Keine Beschreibung |
| `query` | string | Ja | SOQL-Abfrage zur Ausführung \(z.B. SELECT Id, Name FROM Account LIMIT 10\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus |
| `output` | object | Abfrageergebnisse |
### `salesforce_query_more`
Abrufen zusätzlicher Abfrageergebnisse mit der nextRecordsUrl aus einer vorherigen Abfrage
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | Nein | Keine Beschreibung |
| `instanceUrl` | string | Nein | Keine Beschreibung |
| `nextRecordsUrl` | string | Ja | Die nextRecordsUrl aus einer vorherigen Abfrageantwort |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus |
| `output` | object | Abfrageergebnisse |
### `salesforce_describe_object`
Metadaten und Feldinformationen für ein Salesforce-Objekt abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | Nein | Keine Beschreibung |
| `instanceUrl` | string | Nein | Keine Beschreibung |
| `objectName` | string | Ja | API-Name des Objekts \(z.B. Account, Contact, Lead, Custom_Object__c\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus |
| `output` | object | Objekt-Metadaten |
### `salesforce_list_objects`
Liste aller verfügbaren Salesforce-Objekte abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | Nein | Keine Beschreibung |
| `instanceUrl` | string | Nein | Keine Beschreibung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus |
| `output` | object | Objektliste |
## Hinweise

View File

@@ -0,0 +1,183 @@
---
title: SFTP
description: Übertragen Sie Dateien über SFTP (SSH File Transfer Protocol)
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="sftp"
color="#2D3748"
/>
{/* MANUAL-CONTENT-START:intro */}
[SFTP (SSH File Transfer Protocol)](https://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol) ist ein sicheres Netzwerkprotokoll, das es Ihnen ermöglicht, Dateien auf entfernten Servern hochzuladen, herunterzuladen und zu verwalten. SFTP arbeitet über SSH und ist damit ideal für automatisierte, verschlüsselte Dateiübertragungen und die Fernverwaltung von Dateien in modernen Arbeitsabläufen.
Mit den in Sim integrierten SFTP-Tools können Sie die Übertragung von Dateien zwischen Ihren KI-Agenten und externen Systemen oder Servern einfach automatisieren. Dies ermöglicht Ihren Agenten, kritische Datenaustausche, Backups, Dokumentenerstellung und die Orchestrierung entfernter Systeme alles mit robuster Sicherheit zu verwalten.
**Wichtige Funktionen, die über SFTP-Tools verfügbar sind:**
- **Dateien hochladen:** Übertragen Sie nahtlos Dateien jeder Art von Ihrem Workflow auf einen entfernten Server, mit Unterstützung für Passwort- und SSH-Private-Key-Authentifizierung.
- **Dateien herunterladen:** Rufen Sie Dateien von entfernten SFTP-Servern direkt zur Verarbeitung, Archivierung oder weiteren Automatisierung ab.
- **Dateien auflisten & verwalten:** Verzeichnisse auflisten, Dateien und Ordner löschen oder erstellen und Dateisystemberechtigungen ferngesteuert verwalten.
- **Flexible Authentifizierung:** Verbinden Sie sich entweder mit herkömmlichen Passwörtern oder SSH-Schlüsseln, mit Unterstützung für Passphrasen und Berechtigungskontrolle.
- **Unterstützung großer Dateien:** Verwalten Sie programmatisch große Datei-Uploads und -Downloads, mit integrierten Größenbeschränkungen für die Sicherheit.
Durch die Integration von SFTP in Sim können Sie sichere Dateioperationen als Teil jedes Workflows automatisieren, sei es Datenerfassung, Berichterstattung, Wartung entfernter Systeme oder dynamischer Inhaltsaustausch zwischen Plattformen.
Die folgenden Abschnitte beschreiben die wichtigsten verfügbaren SFTP-Tools:
- **sftp_upload:** Laden Sie eine oder mehrere Dateien auf einen entfernten Server hoch.
- **sftp_download:** Laden Sie Dateien von einem entfernten Server in Ihren Workflow herunter.
- **sftp_list:** Listen Sie Verzeichnisinhalte auf einem entfernten SFTP-Server auf.
- **sftp_delete:** Löschen Sie Dateien oder Verzeichnisse von einem entfernten Server.
- **sftp_create:** Erstellen Sie neue Dateien auf einem entfernten SFTP-Server.
- **sftp_mkdir:** Erstellen Sie neue Verzeichnisse aus der Ferne.
Siehe die Werkzeugdokumentation unten für detaillierte Ein- und Ausgabeparameter für jede Operation.
{/* MANUAL-CONTENT-END */}
## Nutzungsanweisungen
Dateien auf Remote-Servern über SFTP hochladen, herunterladen, auflisten und verwalten. Unterstützt sowohl Passwort- als auch Private-Key-Authentifizierung für sichere Dateiübertragungen.
## Werkzeuge
### `sftp_upload`
Dateien auf einen Remote-SFTP-Server hochladen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `host` | string | Ja | SFTP-Server-Hostname oder IP-Adresse |
| `port` | number | Ja | SFTP-Server-Port \(Standard: 22\) |
| `username` | string | Ja | SFTP-Benutzername |
| `password` | string | Nein | Passwort für die Authentifizierung \(wenn kein Private Key verwendet wird\) |
| `privateKey` | string | Nein | Private Key für die Authentifizierung \(OpenSSH-Format\) |
| `passphrase` | string | Nein | Passphrase für verschlüsselten Private Key |
| `remotePath` | string | Ja | Zielverzeichnis auf dem Remote-Server |
| `files` | file[] | Nein | Hochzuladende Dateien |
| `fileContent` | string | Nein | Direkter Dateiinhalt zum Hochladen \(für Textdateien\) |
| `fileName` | string | Nein | Dateiname bei Verwendung von direktem Inhalt |
| `overwrite` | boolean | Nein | Ob bestehende Dateien überschrieben werden sollen \(Standard: true\) |
| `permissions` | string | Nein | Dateiberechtigungen \(z.B. 0644\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob der Upload erfolgreich war |
| `uploadedFiles` | json | Array mit Details zu hochgeladenen Dateien \(Name, remotePath, Größe\) |
| `message` | string | Statusmeldung des Vorgangs |
### `sftp_download`
Datei von einem entfernten SFTP-Server herunterladen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `host` | string | Ja | SFTP-Server-Hostname oder IP-Adresse |
| `port` | number | Ja | SFTP-Server-Port \(Standard: 22\) |
| `username` | string | Ja | SFTP-Benutzername |
| `password` | string | Nein | Passwort für die Authentifizierung \(wenn kein privater Schlüssel verwendet wird\) |
| `privateKey` | string | Nein | Privater Schlüssel für die Authentifizierung \(OpenSSH-Format\) |
| `passphrase` | string | Nein | Passphrase für verschlüsselten privaten Schlüssel |
| `remotePath` | string | Ja | Pfad zur Datei auf dem entfernten Server |
| `encoding` | string | Nein | Ausgabe-Kodierung: utf-8 für Text, base64 für Binärdaten \(Standard: utf-8\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob der Download erfolgreich war |
| `fileName` | string | Name der heruntergeladenen Datei |
| `content` | string | Dateiinhalt \(Text oder base64-kodiert\) |
| `size` | number | Dateigröße in Bytes |
| `encoding` | string | Inhaltskodierung \(utf-8 oder base64\) |
| `message` | string | Statusmeldung des Vorgangs |
### `sftp_list`
Dateien und Verzeichnisse auf einem entfernten SFTP-Server auflisten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `host` | string | Ja | SFTP-Server-Hostname oder IP-Adresse |
| `port` | number | Ja | SFTP-Server-Port \(Standard: 22\) |
| `username` | string | Ja | SFTP-Benutzername |
| `password` | string | Nein | Passwort für die Authentifizierung \(wenn kein privater Schlüssel verwendet wird\) |
| `privateKey` | string | Nein | Privater Schlüssel für die Authentifizierung \(OpenSSH-Format\) |
| `passphrase` | string | Nein | Passphrase für verschlüsselten privaten Schlüssel |
| `remotePath` | string | Ja | Verzeichnispfad auf dem entfernten Server |
| `detailed` | boolean | Nein | Detaillierte Dateiinformationen einschließen \(Größe, Berechtigungen, Änderungsdatum\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob der Vorgang erfolgreich war |
| `path` | string | Verzeichnispfad, der aufgelistet wurde |
| `entries` | json | Array von Verzeichniseinträgen mit Name, Typ, Größe, Berechtigungen, modifiedAt |
| `count` | number | Anzahl der Einträge im Verzeichnis |
| `message` | string | Statusmeldung des Vorgangs |
### `sftp_delete`
Löschen einer Datei oder eines Verzeichnisses auf einem entfernten SFTP-Server
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `host` | string | Ja | SFTP-Server-Hostname oder IP-Adresse |
| `port` | number | Ja | SFTP-Server-Port \(Standard: 22\) |
| `username` | string | Ja | SFTP-Benutzername |
| `password` | string | Nein | Passwort für die Authentifizierung \(wenn kein privater Schlüssel verwendet wird\) |
| `privateKey` | string | Nein | Privater Schlüssel für die Authentifizierung \(OpenSSH-Format\) |
| `passphrase` | string | Nein | Passphrase für verschlüsselten privaten Schlüssel |
| `remotePath` | string | Ja | Pfad zur Datei oder zum Verzeichnis, das gelöscht werden soll |
| `recursive` | boolean | Nein | Verzeichnisse rekursiv löschen |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob das Löschen erfolgreich war |
| `deletedPath` | string | Pfad, der gelöscht wurde |
| `message` | string | Statusmeldung des Vorgangs |
### `sftp_mkdir`
Ein Verzeichnis auf einem entfernten SFTP-Server erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `host` | string | Ja | SFTP-Server-Hostname oder IP-Adresse |
| `port` | number | Ja | SFTP-Server-Port \(Standard: 22\) |
| `username` | string | Ja | SFTP-Benutzername |
| `password` | string | Nein | Passwort für die Authentifizierung \(wenn kein privater Schlüssel verwendet wird\) |
| `privateKey` | string | Nein | Privater Schlüssel für die Authentifizierung \(OpenSSH-Format\) |
| `passphrase` | string | Nein | Passphrase für verschlüsselten privaten Schlüssel |
| `remotePath` | string | Ja | Pfad für das neue Verzeichnis |
| `recursive` | boolean | Nein | Übergeordnete Verzeichnisse erstellen, falls sie nicht existieren |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob das Verzeichnis erfolgreich erstellt wurde |
| `createdPath` | string | Pfad des erstellten Verzeichnisses |
| `message` | string | Statusmeldung des Vorgangs |
## Hinweise
- Kategorie: `tools`
- Typ: `sftp`

View File

@@ -0,0 +1,444 @@
---
title: Shopify
description: Verwalte Produkte, Bestellungen, Kunden und Lagerbestand in deinem Shopify-Shop
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="shopify"
color="#FFFFFF"
/>
{/* MANUAL-CONTENT-START:intro */}
[Shopify](https://www.shopify.com/) ist eine führende E-Commerce-Plattform, die entwickelt wurde, um Händlern beim Aufbau, Betrieb und Wachstum ihrer Online-Shops zu helfen. Shopify macht es einfach, jeden Aspekt deines Shops zu verwalten, von Produkten und Lagerbestand bis hin zu Bestellungen und Kunden.
Mit Shopify in Sim können deine Agenten:
- **Produkte erstellen und verwalten**: Neue Produkte hinzufügen, Produktdetails aktualisieren und Produkte aus deinem Shop entfernen.
- **Bestellungen auflisten und abrufen**: Informationen über Kundenbestellungen erhalten, einschließlich Filterung und Bestellverwaltung.
- **Kunden verwalten**: Auf Kundendetails zugreifen und diese aktualisieren oder neue Kunden zu deinem Shop hinzufügen.
- **Lagerbestände anpassen**: Produktbestände programmatisch ändern, um deinen Lagerbestand genau zu halten.
Nutze Sims Shopify-Integration, um gängige Shop-Management-Workflows zu automatisieren wie Lagerbestandssynchronisierung, Auftragsabwicklung oder Angebotsverwaltung direkt aus deinen Automatisierungen heraus. Ermögliche deinen Agenten, auf alle deine Shop-Daten zuzugreifen, sie zu aktualisieren und zu organisieren, mit einfachen, programmatischen Tools.
{/* MANUAL-CONTENT-END */}
## Nutzungsanleitung
Integriere Shopify in deinen Workflow. Verwalte Produkte, Bestellungen, Kunden und Lagerbestand. Erstelle, lese, aktualisiere und lösche Produkte. Liste und verwalte Bestellungen. Bearbeite Kundendaten und passe Lagerbestände an.
## Tools
### `shopify_create_product`
Erstelle ein neues Produkt in deinem Shopify-Shop
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Ja | Deine Shopify-Shop-Domain \(z.B. meinshop.myshopify.com\) |
| `title` | string | Ja | Produkttitel |
| `descriptionHtml` | string | Nein | Produktbeschreibung \(HTML\) |
| `vendor` | string | Nein | Produktanbieter/Marke |
| `productType` | string | Nein | Produkttyp/Kategorie |
| `tags` | array | Nein | Produkt-Tags |
| `status` | string | Nein | Produktstatus \(ACTIVE, DRAFT, ARCHIVED\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `product` | object | Das erstellte Produkt |
### `shopify_get_product`
Ein einzelnes Produkt anhand der ID aus Ihrem Shopify-Shop abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Ja | Ihre Shopify-Shop-Domain \(z.B. mystore.myshopify.com\) |
| `productId` | string | Ja | Produkt-ID \(gid://shopify/Product/123456789\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `product` | object | Die Produktdetails |
### `shopify_list_products`
Produkte aus Ihrem Shopify-Shop mit optionaler Filterung auflisten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Ja | Ihre Shopify-Shop-Domain \(z.B. mystore.myshopify.com\) |
| `first` | number | Nein | Anzahl der zurückzugebenden Produkte \(Standard: 50, max: 250\) |
| `query` | string | Nein | Suchanfrage zum Filtern von Produkten \(z.B. "title:shirt" oder "vendor:Nike" oder "status:active"\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `products` | array | Liste der Produkte |
| `pageInfo` | object | Paginierungsinformationen |
### `shopify_update_product`
Ein bestehendes Produkt in Ihrem Shopify-Shop aktualisieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Ja | Ihre Shopify-Shop-Domain \(z.B. mystore.myshopify.com\) |
| `productId` | string | Ja | Zu aktualisierende Produkt-ID \(gid://shopify/Product/123456789\) |
| `title` | string | Nein | Neuer Produkttitel |
| `descriptionHtml` | string | Nein | Neue Produktbeschreibung \(HTML\) |
| `vendor` | string | Nein | Neuer Produktanbieter/Marke |
| `productType` | string | Nein | Neuer Produkttyp/Kategorie |
| `tags` | array | Nein | Neue Produkt-Tags |
| `status` | string | Nein | Neuer Produktstatus \(ACTIVE, DRAFT, ARCHIVED\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `product` | object | Das aktualisierte Produkt |
### `shopify_delete_product`
Ein Produkt aus Ihrem Shopify-Shop löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Ja | Ihre Shopify-Shop-Domain \(z.B. mystore.myshopify.com\) |
| `productId` | string | Ja | Produkt-ID zum Löschen \(gid://shopify/Product/123456789\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `deletedId` | string | Die ID des gelöschten Produkts |
### `shopify_get_order`
Eine einzelne Bestellung anhand der ID aus Ihrem Shopify-Shop abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Ja | Ihre Shopify-Shop-Domain \(z.B. mystore.myshopify.com\) |
| `orderId` | string | Ja | Bestell-ID \(gid://shopify/Order/123456789\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `order` | object | Die Bestelldetails |
### `shopify_list_orders`
Bestellungen aus Ihrem Shopify-Shop mit optionaler Filterung auflisten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Ja | Ihre Shopify-Shop-Domain \(z.B. mystore.myshopify.com\) |
| `first` | number | Nein | Anzahl der zurückzugebenden Bestellungen \(Standard: 50, max: 250\) |
| `status` | string | Nein | Nach Bestellstatus filtern \(open, closed, cancelled, any\) |
| `query` | string | Nein | Suchanfrage zum Filtern von Bestellungen \(z.B. "financial_status:paid" oder "fulfillment_status:unfulfilled" oder "email:customer@example.com"\) |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `orders` | array | Liste der Bestellungen |
| `pageInfo` | object | Paginierungsinformationen |
### `shopify_update_order`
Aktualisieren einer bestehenden Bestellung in Ihrem Shopify-Shop (Hinweis, Tags, E-Mail)
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Ja | Ihre Shopify-Shop-Domain \(z.B. mystore.myshopify.com\) |
| `orderId` | string | Ja | Zu aktualisierende Bestell-ID \(gid://shopify/Order/123456789\) |
| `note` | string | Nein | Neuer Bestellhinweis |
| `tags` | array | Nein | Neue Bestell-Tags |
| `email` | string | Nein | Neue Kunden-E-Mail für die Bestellung |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `order` | object | Die aktualisierte Bestellung |
### `shopify_cancel_order`
Stornieren einer Bestellung in Ihrem Shopify-Shop
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Ja | Ihre Shopify-Shop-Domain \(z.B. mystore.myshopify.com\) |
| `orderId` | string | Ja | Zu stornierende Bestell-ID \(gid://shopify/Order/123456789\) |
| `reason` | string | Ja | Stornierungsgrund \(CUSTOMER, DECLINED, FRAUD, INVENTORY, STAFF, OTHER\) |
| `notifyCustomer` | boolean | Nein | Ob der Kunde über die Stornierung benachrichtigt werden soll |
| `refund` | boolean | Nein | Ob die Bestellung erstattet werden soll |
| `restock` | boolean | Nein | Ob der Bestand wieder aufgefüllt werden soll |
| `staffNote` | string | Nein | Ein Hinweis zur Stornierung für Mitarbeiter |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `order` | object | Das Stornierungsergebnis |
### `shopify_create_customer`
Einen neuen Kunden in Ihrem Shopify-Shop erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Ja | Ihre Shopify-Shop-Domain \(z.B. mystore.myshopify.com\) |
| `email` | string | Nein | E-Mail-Adresse des Kunden |
| `firstName` | string | Nein | Vorname des Kunden |
| `lastName` | string | Nein | Nachname des Kunden |
| `phone` | string | Nein | Telefonnummer des Kunden |
| `note` | string | Nein | Notiz zum Kunden |
| `tags` | array | Nein | Kundentags |
| `addresses` | array | Nein | Kundenanschriften |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `customer` | object | Der erstellte Kunde |
### `shopify_get_customer`
Einen einzelnen Kunden anhand der ID aus Ihrem Shopify-Shop abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Ja | Ihre Shopify-Shop-Domain \(z.B. mystore.myshopify.com\) |
| `customerId` | string | Ja | Kunden-ID \(gid://shopify/Customer/123456789\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `customer` | object | Die Kundendetails |
### `shopify_list_customers`
Kunden aus deinem Shopify-Shop mit optionaler Filterung auflisten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Ja | Deine Shopify-Shop-Domain \(z.B. meinshop.myshopify.com\) |
| `first` | number | Nein | Anzahl der zurückzugebenden Kunden \(Standard: 50, max: 250\) |
| `query` | string | Nein | Suchanfrage zum Filtern von Kunden \(z.B. "first_name:John" oder "last_name:Smith" oder "email:*@gmail.com" oder "tag:vip"\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `customers` | array | Liste der Kunden |
| `pageInfo` | object | Paginierungsinformationen |
### `shopify_update_customer`
Einen bestehenden Kunden in deinem Shopify-Shop aktualisieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Ja | Deine Shopify-Shop-Domain \(z.B. meinshop.myshopify.com\) |
| `customerId` | string | Ja | Kunden-ID zum Aktualisieren \(gid://shopify/Customer/123456789\) |
| `email` | string | Nein | Neue E-Mail-Adresse des Kunden |
| `firstName` | string | Nein | Neuer Vorname des Kunden |
| `lastName` | string | Nein | Neuer Nachname des Kunden |
| `phone` | string | Nein | Neue Telefonnummer des Kunden |
| `note` | string | Nein | Neue Notiz über den Kunden |
| `tags` | array | Nein | Neue Kunden-Tags |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `customer` | object | Der aktualisierte Kunde |
### `shopify_delete_customer`
Einen Kunden aus Ihrem Shopify-Shop löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Ja | Ihre Shopify-Shop-Domain (z.B. meinshop.myshopify.com) |
| `customerId` | string | Ja | Kunden-ID zum Löschen (gid://shopify/Customer/123456789) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `deletedId` | string | Die ID des gelöschten Kunden |
### `shopify_list_inventory_items`
Bestandsartikel aus Ihrem Shopify-Shop auflisten. Verwenden Sie dies, um Bestandsartikel-IDs anhand der SKU zu finden.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Ja | Ihre Shopify-Shop-Domain (z.B. meinshop.myshopify.com) |
| `first` | number | Nein | Anzahl der zurückzugebenden Bestandsartikel (Standard: 50, max: 250) |
| `query` | string | Nein | Suchanfrage zum Filtern von Bestandsartikeln (z.B. "sku:ABC123") |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `inventoryItems` | array | Liste der Bestandsartikel mit ihren IDs, SKUs und Lagerbeständen |
| `pageInfo` | object | Paginierungsinformationen |
### `shopify_get_inventory_level`
Bestandsmenge für eine Produktvariante an einem bestimmten Standort abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Ja | Ihre Shopify-Shop-Domain (z.B. meinshop.myshopify.com) |
| `inventoryItemId` | string | Ja | Bestandsartikel-ID (gid://shopify/InventoryItem/123456789) |
| `locationId` | string | Nein | Standort-ID zum Filtern (optional) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `inventoryLevel` | object | Die Details zum Bestandsniveau |
### `shopify_adjust_inventory`
Bestandsmenge für eine Produktvariante an einem bestimmten Standort anpassen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Ja | Ihre Shopify-Store-Domain (z.B. mystore.myshopify.com) |
| `inventoryItemId` | string | Ja | Inventar-Element-ID (gid://shopify/InventoryItem/123456789) |
| `locationId` | string | Ja | Standort-ID (gid://shopify/Location/123456789) |
| `delta` | number | Ja | Anzahl der Anpassung (positiv für Erhöhung, negativ für Verringerung) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `inventoryLevel` | object | Das Ergebnis der Bestandsanpassung |
### `shopify_list_locations`
Listet Bestandsstandorte aus Ihrem Shopify-Store auf. Verwenden Sie dies, um Standort-IDs zu finden, die für Bestandsoperationen benötigt werden.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Ja | Ihre Shopify-Store-Domain (z.B. mystore.myshopify.com) |
| `first` | number | Nein | Anzahl der zurückzugebenden Standorte (Standard: 50, max: 250) |
| `includeInactive` | boolean | Nein | Ob deaktivierte Standorte einbezogen werden sollen (Standard: false) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `locations` | array | Liste der Standorte mit ihren IDs, Namen und Adressen |
| `pageInfo` | object | Paginierungsinformationen |
### `shopify_create_fulfillment`
Erstelle eine Fulfillment-Anfrage, um Bestellartikel als versendet zu markieren. Erfordert eine Fulfillment-Auftrags-ID (diese findest du in den Bestelldetails).
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Ja | Deine Shopify-Store-Domain \(z.B. meinshop.myshopify.com\) |
| `fulfillmentOrderId` | string | Ja | Die Fulfillment-Auftrags-ID \(z.B. gid://shopify/FulfillmentOrder/123456789\) |
| `trackingNumber` | string | Nein | Sendungsverfolgungsnummer |
| `trackingCompany` | string | Nein | Name des Versanddienstleisters \(z.B. UPS, FedEx, USPS, DHL\) |
| `trackingUrl` | string | Nein | URL zur Sendungsverfolgung |
| `notifyCustomer` | boolean | Nein | Ob eine Versandbestätigungs-E-Mail an den Kunden gesendet werden soll \(Standard: true\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `fulfillment` | object | Das erstellte Fulfillment mit Tracking-Informationen und erfüllten Artikeln |
### `shopify_list_collections`
Liste Produktkollektionen aus deinem Shopify-Shop auf. Filtere nach Titel, Typ (benutzerdefiniert/smart) oder Handle.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Ja | Deine Shopify-Store-Domain \(z.B. meinshop.myshopify.com\) |
| `first` | number | Nein | Anzahl der zurückzugebenden Kollektionen \(Standard: 50, max: 250\) |
| `query` | string | Nein | Suchanfrage zum Filtern von Kollektionen \(z.B. "title:Sommer" oder "collection_type:smart"\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `collections` | array | Liste der Kollektionen mit ihren IDs, Titeln und Produktanzahlen |
| `pageInfo` | object | Paginierungsinformationen |
### `shopify_get_collection`
Rufen Sie eine bestimmte Kollektion anhand ihrer ID ab, einschließlich ihrer Produkte. Verwenden Sie dies, um Produkte innerhalb einer Kollektion abzurufen.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Ja | Ihre Shopify-Store-Domain \(z.B. mystore.myshopify.com\) |
| `collectionId` | string | Ja | Die Kollektions-ID \(z.B. gid://shopify/Collection/123456789\) |
| `productsFirst` | number | Nein | Anzahl der Produkte, die aus dieser Kollektion zurückgegeben werden sollen \(Standard: 50, max: 250\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `collection` | object | Die Kollektionsdetails einschließlich ihrer Produkte |
## Hinweise
- Kategorie: `tools`
- Typ: `shopify`

View File

@@ -120,6 +120,82 @@ Lesen Sie die neuesten Nachrichten aus Slack-Kanälen. Rufen Sie den Konversatio
| --------- | ---- | ----------- |
| `messages` | array | Array von Nachrichtenobjekten aus dem Kanal |
### `slack_list_channels`
Listet alle Kanäle in einem Slack-Workspace auf. Gibt öffentliche und private Kanäle zurück, auf die der Bot Zugriff hat.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `authMethod` | string | Nein | Authentifizierungsmethode: oauth oder bot_token |
| `botToken` | string | Nein | Bot-Token für benutzerdefinierten Bot |
| `includePrivate` | boolean | Nein | Private Kanäle einschließen, in denen der Bot Mitglied ist \(Standard: true\) |
| `excludeArchived` | boolean | Nein | Archivierte Kanäle ausschließen \(Standard: true\) |
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Kanäle \(Standard: 100, max: 200\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `channels` | array | Array von Kanalobjekten aus dem Workspace |
### `slack_list_members`
Listet alle Mitglieder (Benutzer-IDs) in einem Slack-Kanal auf. Verwenden Sie diese Funktion mit Get User Info, um IDs in Namen aufzulösen.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `authMethod` | string | Nein | Authentifizierungsmethode: oauth oder bot_token |
| `botToken` | string | Nein | Bot-Token für benutzerdefinierten Bot |
| `channel` | string | Ja | Kanal-ID, aus der Mitglieder aufgelistet werden sollen |
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Mitglieder \(Standard: 100, max: 200\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `members` | array | Array von Benutzer-IDs, die Mitglieder des Kanals sind \(z.B. U1234567890\) |
### `slack_list_users`
Listet alle Benutzer in einem Slack-Workspace auf. Gibt Benutzerprofile mit Namen und Avataren zurück.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `authMethod` | string | Nein | Authentifizierungsmethode: oauth oder bot_token |
| `botToken` | string | Nein | Bot-Token für benutzerdefinierten Bot |
| `includeDeleted` | boolean | Nein | Deaktivierte/gelöschte Benutzer einbeziehen \(Standard: false\) |
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Benutzer \(Standard: 100, max: 200\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `users` | array | Array von Benutzerobjekten aus dem Workspace |
### `slack_get_user`
Ruft detaillierte Informationen über einen bestimmten Slack-Benutzer anhand seiner Benutzer-ID ab.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `authMethod` | string | Nein | Authentifizierungsmethode: oauth oder bot_token |
| `botToken` | string | Nein | Bot-Token für benutzerdefinierten Bot |
| `userId` | string | Ja | Zu suchende Benutzer-ID \(z.B. U1234567890\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `user` | object | Detaillierte Benutzerinformationen |
### `slack_download`
Eine Datei von Slack herunterladen
@@ -148,7 +224,7 @@ Eine zuvor vom Bot in Slack gesendete Nachricht aktualisieren
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `authMethod` | string | Nein | Authentifizierungsmethode: oauth oder bot_token |
| `botToken` | string | Nein | Bot-Token für Custom Bot |
| `botToken` | string | Nein | Bot-Token für benutzerdefinierten Bot |
| `channel` | string | Ja | Kanal-ID, in dem die Nachricht gepostet wurde \(z.B. C1234567890\) |
| `timestamp` | string | Ja | Zeitstempel der zu aktualisierenden Nachricht \(z.B. 1405894322.002768\) |
| `text` | string | Ja | Neuer Nachrichtentext \(unterstützt Slack mrkdwn-Formatierung\) |
@@ -159,7 +235,7 @@ Eine zuvor vom Bot in Slack gesendete Nachricht aktualisieren
| --------- | ---- | ----------- |
| `message` | object | Vollständiges aktualisiertes Nachrichtenobjekt mit allen von Slack zurückgegebenen Eigenschaften |
| `content` | string | Erfolgsmeldung |
| `metadata` | object | Metadaten der aktualisierten Nachricht |
| `metadata` | object | Aktualisierte Nachrichtenmetadaten |
### `slack_delete_message`
@@ -170,7 +246,7 @@ Eine zuvor vom Bot in Slack gesendete Nachricht löschen
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `authMethod` | string | Nein | Authentifizierungsmethode: oauth oder bot_token |
| `botToken` | string | Nein | Bot-Token für Custom Bot |
| `botToken` | string | Nein | Bot-Token für benutzerdefinierten Bot |
| `channel` | string | Ja | Kanal-ID, in dem die Nachricht gepostet wurde \(z.B. C1234567890\) |
| `timestamp` | string | Ja | Zeitstempel der zu löschenden Nachricht \(z.B. 1405894322.002768\) |
@@ -183,7 +259,7 @@ Eine zuvor vom Bot in Slack gesendete Nachricht löschen
### `slack_add_reaction`
Emoji-Reaktion zu einer Slack-Nachricht hinzufügen
Eine Emoji-Reaktion zu einer Slack-Nachricht hinzufügen
#### Eingabe

View File

@@ -7,7 +7,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="smtp"
color="#4A5568"
color="#2D3748"
/>
{/* MANUAL-CONTENT-START:intro */}

View File

@@ -0,0 +1,394 @@
---
title: SSH
description: Verbindung zu Remote-Servern über SSH herstellen
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="ssh"
color="#000000"
/>
{/* MANUAL-CONTENT-START:intro */}
[SSH (Secure Shell)](https://en.wikipedia.org/wiki/Secure_Shell) ist ein weit verbreitetes Protokoll für die sichere Verbindung zu Remote-Servern, das es ermöglicht, Befehle auszuführen, Dateien zu übertragen und Systeme über verschlüsselte Kanäle zu verwalten.
Mit SSH-Unterstützung in Sim können Ihre Agenten:
- **Remote-Befehle ausführen**: Shell-Befehle auf jedem SSH-zugänglichen Server ausführen
- **Skripte hochladen und ausführen**: Einfaches Übertragen und Ausführen von mehrzeiligen Skripten für erweiterte Automatisierung
- **Dateien sicher übertragen**: Hoch- und Herunterladen von Dateien als Teil Ihrer Workflows (demnächst oder per Befehl)
- **Serververwaltung automatisieren**: Programmatische Durchführung von Updates, Wartung, Überwachung, Bereitstellungen und Konfigurationsaufgaben
- **Flexible Authentifizierung nutzen**: Verbindung mit Passwort- oder Private-Key-Authentifizierung, einschließlich Unterstützung für verschlüsselte Schlüssel
Die folgenden Sim SSH-Tools ermöglichen es Ihren Agenten, mit Servern als Teil größerer Automatisierungen zu interagieren:
- `ssh_execute_command`: Führt einen einzelnen Shell-Befehl remote aus und erfasst Ausgabe, Status und Fehler.
- `ssh_execute_script`: Lädt ein vollständiges mehrzeiliges Skript hoch und führt es auf dem Remote-System aus.
- (Weitere Tools wie Dateiübertragung kommen in Kürze.)
Durch die Integration von SSH in Ihre Agenten-Workflows können Sie sicheren Zugriff, Remote-Operationen und Server-Orchestrierung automatisieren und so DevOps, IT-Automatisierung und benutzerdefinierte Remote-Verwaltung rationalisieren, alles innerhalb von Sim.
{/* MANUAL-CONTENT-END */}
## Nutzungsanleitung
Führen Sie Befehle aus, übertragen Sie Dateien und verwalten Sie Remote-Server über SSH. Unterstützt Passwort- und Private-Key-Authentifizierung für sicheren Serverzugriff.
## Tools
### `ssh_execute_command`
Einen Shell-Befehl auf einem Remote-SSH-Server ausführen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `host` | string | Ja | SSH-Server-Hostname oder IP-Adresse |
| `port` | number | Ja | SSH-Server-Port \(Standard: 22\) |
| `username` | string | Ja | SSH-Benutzername |
| `password` | string | Nein | Passwort für die Authentifizierung \(wenn kein Private Key verwendet wird\) |
| `privateKey` | string | Nein | Private Key für die Authentifizierung \(OpenSSH-Format\) |
| `passphrase` | string | Nein | Passphrase für verschlüsselten Private Key |
| `command` | string | Ja | Shell-Befehl, der auf dem Remote-Server ausgeführt werden soll |
| `workingDirectory` | string | Nein | Arbeitsverzeichnis für die Befehlsausführung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `stdout` | string | Standardausgabe des Befehls |
| `stderr` | string | Standardfehlerausgabe |
| `exitCode` | number | Exit-Code des Befehls |
| `success` | boolean | Ob der Befehl erfolgreich war (Exit-Code 0) |
| `message` | string | Statusmeldung des Vorgangs |
### `ssh_execute_script`
Ein mehrzeiliges Skript auf einem entfernten SSH-Server hochladen und ausführen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `host` | string | Ja | SSH-Server-Hostname oder IP-Adresse |
| `port` | number | Ja | SSH-Server-Port (Standard: 22) |
| `username` | string | Ja | SSH-Benutzername |
| `password` | string | Nein | Passwort für die Authentifizierung (falls kein privater Schlüssel verwendet wird) |
| `privateKey` | string | Nein | Privater Schlüssel für die Authentifizierung (OpenSSH-Format) |
| `passphrase` | string | Nein | Passphrase für verschlüsselten privaten Schlüssel |
| `script` | string | Ja | Skriptinhalt zur Ausführung (bash, python, etc.) |
| `interpreter` | string | Nein | Skript-Interpreter (Standard: /bin/bash) |
| `workingDirectory` | string | Nein | Arbeitsverzeichnis für die Skriptausführung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `stdout` | string | Standardausgabe des Skripts |
| `stderr` | string | Standardfehlerausgabe |
| `exitCode` | number | Exit-Code des Skripts |
| `success` | boolean | Ob das Skript erfolgreich war (Exit-Code 0) |
| `scriptPath` | string | Temporärer Pfad, wohin das Skript hochgeladen wurde |
| `message` | string | Statusmeldung des Vorgangs |
### `ssh_check_command_exists`
Überprüfen, ob ein Befehl/Programm auf dem entfernten SSH-Server existiert
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `host` | string | Ja | SSH-Server-Hostname oder IP-Adresse |
| `port` | number | Ja | SSH-Server-Port \(Standard: 22\) |
| `username` | string | Ja | SSH-Benutzername |
| `password` | string | Nein | Passwort für die Authentifizierung \(wenn kein privater Schlüssel verwendet wird\) |
| `privateKey` | string | Nein | Privater Schlüssel für die Authentifizierung \(OpenSSH-Format\) |
| `passphrase` | string | Nein | Passphrase für verschlüsselten privaten Schlüssel |
| `commandName` | string | Ja | Zu überprüfender Befehlsname \(z.B. docker, git, python3\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `commandExists` | boolean | Ob der Befehl existiert |
| `commandPath` | string | Vollständiger Pfad zum Befehl \(falls gefunden\) |
| `version` | string | Versionsinformation des Befehls \(falls zutreffend\) |
| `message` | string | Statusmeldung der Operation |
### `ssh_upload_file`
Eine Datei auf einen entfernten SSH-Server hochladen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `host` | string | Ja | SSH-Server-Hostname oder IP-Adresse |
| `port` | number | Ja | SSH-Server-Port \(Standard: 22\) |
| `username` | string | Ja | SSH-Benutzername |
| `password` | string | Nein | Passwort für die Authentifizierung \(wenn kein privater Schlüssel verwendet wird\) |
| `privateKey` | string | Nein | Privater Schlüssel für die Authentifizierung \(OpenSSH-Format\) |
| `passphrase` | string | Nein | Passphrase für verschlüsselten privaten Schlüssel |
| `fileContent` | string | Ja | Hochzuladender Dateiinhalt \(base64-kodiert für Binärdateien\) |
| `fileName` | string | Ja | Name der hochzuladenden Datei |
| `remotePath` | string | Ja | Zielpfad auf dem entfernten Server |
| `permissions` | string | Nein | Dateiberechtigungen \(z.B. 0644\) |
| `overwrite` | boolean | Nein | Ob bestehende Dateien überschrieben werden sollen \(Standard: true\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `uploaded` | boolean | Ob die Datei erfolgreich hochgeladen wurde |
| `remotePath` | string | Endgültiger Pfad auf dem Remote-Server |
| `size` | number | Dateigröße in Bytes |
| `message` | string | Statusmeldung des Vorgangs |
### `ssh_download_file`
Eine Datei von einem Remote-SSH-Server herunterladen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `host` | string | Ja | SSH-Server-Hostname oder IP-Adresse |
| `port` | number | Ja | SSH-Server-Port \(Standard: 22\) |
| `username` | string | Ja | SSH-Benutzername |
| `password` | string | Nein | Passwort für die Authentifizierung \(wenn kein privater Schlüssel verwendet wird\) |
| `privateKey` | string | Nein | Privater Schlüssel für die Authentifizierung \(OpenSSH-Format\) |
| `passphrase` | string | Nein | Passphrase für verschlüsselten privaten Schlüssel |
| `remotePath` | string | Ja | Pfad der Datei auf dem Remote-Server |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `downloaded` | boolean | Ob die Datei erfolgreich heruntergeladen wurde |
| `fileContent` | string | Dateiinhalt \(base64-kodiert für Binärdateien\) |
| `fileName` | string | Name der heruntergeladenen Datei |
| `remotePath` | string | Quellpfad auf dem Remote-Server |
| `size` | number | Dateigröße in Bytes |
| `message` | string | Statusmeldung des Vorgangs |
### `ssh_list_directory`
Dateien und Verzeichnisse in einem Remote-Verzeichnis auflisten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `host` | string | Ja | SSH-Server-Hostname oder IP-Adresse |
| `port` | number | Ja | SSH-Server-Port \(Standard: 22\) |
| `username` | string | Ja | SSH-Benutzername |
| `password` | string | Nein | Passwort für die Authentifizierung \(wenn kein privater Schlüssel verwendet wird\) |
| `privateKey` | string | Nein | Privater Schlüssel für die Authentifizierung \(OpenSSH-Format\) |
| `passphrase` | string | Nein | Passphrase für verschlüsselten privaten Schlüssel |
| `path` | string | Ja | Remote-Verzeichnispfad zum Auflisten |
| `detailed` | boolean | Nein | Dateidetails einschließen \(Größe, Berechtigungen, Änderungsdatum\) |
| `recursive` | boolean | Nein | Unterverzeichnisse rekursiv auflisten \(Standard: false\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `entries` | array | Array von Datei- und Verzeichniseinträgen |
### `ssh_check_file_exists`
Überprüfen, ob eine Datei oder ein Verzeichnis auf dem Remote-SSH-Server existiert
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `host` | string | Ja | SSH-Server-Hostname oder IP-Adresse |
| `port` | number | Ja | SSH-Server-Port \(Standard: 22\) |
| `username` | string | Ja | SSH-Benutzername |
| `password` | string | Nein | Passwort für die Authentifizierung \(wenn kein privater Schlüssel verwendet wird\) |
| `privateKey` | string | Nein | Privater Schlüssel für die Authentifizierung \(OpenSSH-Format\) |
| `passphrase` | string | Nein | Passphrase für verschlüsselten privaten Schlüssel |
| `path` | string | Ja | Remote-Datei- oder Verzeichnispfad zur Überprüfung |
| `type` | string | Nein | Erwarteter Typ: Datei, Verzeichnis oder beliebig \(Standard: beliebig\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `exists` | boolean | Ob der Pfad existiert |
| `type` | string | Typ des Pfads (Datei, Verzeichnis, Symlink, nicht_gefunden) |
| `size` | number | Dateigröße, wenn es eine Datei ist |
| `permissions` | string | Dateiberechtigungen (z.B. 0755) |
| `modified` | string | Zeitstempel der letzten Änderung |
| `message` | string | Statusmeldung des Vorgangs |
### `ssh_create_directory`
Erstellt ein Verzeichnis auf dem entfernten SSH-Server
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `host` | string | Ja | SSH-Server-Hostname oder IP-Adresse |
| `port` | number | Ja | SSH-Server-Port (Standard: 22) |
| `username` | string | Ja | SSH-Benutzername |
| `password` | string | Nein | Passwort für die Authentifizierung (wenn kein privater Schlüssel verwendet wird) |
| `privateKey` | string | Nein | Privater Schlüssel für die Authentifizierung (OpenSSH-Format) |
| `passphrase` | string | Nein | Passphrase für verschlüsselten privaten Schlüssel |
| `path` | string | Ja | Verzeichnispfad zum Erstellen |
| `recursive` | boolean | Nein | Übergeordnete Verzeichnisse erstellen, wenn sie nicht existieren (Standard: true) |
| `permissions` | string | Nein | Verzeichnisberechtigungen (Standard: 0755) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `created` | boolean | Ob das Verzeichnis erfolgreich erstellt wurde |
| `remotePath` | string | Erstellter Verzeichnispfad |
| `alreadyExists` | boolean | Ob das Verzeichnis bereits existierte |
| `message` | string | Statusmeldung des Vorgangs |
### `ssh_delete_file`
Löschen einer Datei oder eines Verzeichnisses vom entfernten SSH-Server
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `host` | string | Ja | SSH-Server-Hostname oder IP-Adresse |
| `port` | number | Ja | SSH-Server-Port \(Standard: 22\) |
| `username` | string | Ja | SSH-Benutzername |
| `password` | string | Nein | Passwort für die Authentifizierung \(wenn kein privater Schlüssel verwendet wird\) |
| `privateKey` | string | Nein | Privater Schlüssel für die Authentifizierung \(OpenSSH-Format\) |
| `passphrase` | string | Nein | Passphrase für verschlüsselten privaten Schlüssel |
| `path` | string | Ja | Zu löschender Pfad |
| `recursive` | boolean | Nein | Verzeichnisse rekursiv löschen \(Standard: false\) |
| `force` | boolean | Nein | Löschen ohne Bestätigung erzwingen \(Standard: false\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `deleted` | boolean | Ob der Pfad erfolgreich gelöscht wurde |
| `remotePath` | string | Gelöschter Pfad |
| `message` | string | Statusmeldung des Vorgangs |
### `ssh_move_rename`
Verschieben oder umbenennen einer Datei oder eines Verzeichnisses auf dem entfernten SSH-Server
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `host` | string | Ja | SSH-Server-Hostname oder IP-Adresse |
| `port` | number | Ja | SSH-Server-Port \(Standard: 22\) |
| `username` | string | Ja | SSH-Benutzername |
| `password` | string | Nein | Passwort für die Authentifizierung \(wenn kein privater Schlüssel verwendet wird\) |
| `privateKey` | string | Nein | Privater Schlüssel für die Authentifizierung \(OpenSSH-Format\) |
| `passphrase` | string | Nein | Passphrase für verschlüsselten privaten Schlüssel |
| `sourcePath` | string | Ja | Aktueller Pfad der Datei oder des Verzeichnisses |
| `destinationPath` | string | Ja | Neuer Pfad für die Datei oder das Verzeichnis |
| `overwrite` | boolean | Nein | Ziel überschreiben, falls es existiert \(Standard: false\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `moved` | boolean | Ob der Vorgang erfolgreich war |
| `sourcePath` | string | Ursprünglicher Pfad |
| `destinationPath` | string | Neuer Pfad |
| `message` | string | Statusmeldung des Vorgangs |
### `ssh_get_system_info`
Systeminformationen vom entfernten SSH-Server abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `host` | string | Ja | SSH-Server-Hostname oder IP-Adresse |
| `port` | number | Ja | SSH-Server-Port \(Standard: 22\) |
| `username` | string | Ja | SSH-Benutzername |
| `password` | string | Nein | Passwort für die Authentifizierung \(wenn kein privater Schlüssel verwendet wird\) |
| `privateKey` | string | Nein | Privater Schlüssel für die Authentifizierung \(OpenSSH-Format\) |
| `passphrase` | string | Nein | Passphrase für verschlüsselten privaten Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `hostname` | string | Server-Hostname |
| `os` | string | Betriebssystem \(z.B. Linux, Darwin\) |
| `architecture` | string | CPU-Architektur \(z.B. x64, arm64\) |
| `uptime` | number | Systemlaufzeit in Sekunden |
| `memory` | json | Speicherinformationen \(gesamt, frei, verwendet\) |
| `diskSpace` | json | Festplattenplatzinformationen \(gesamt, frei, verwendet\) |
| `message` | string | Statusmeldung des Vorgangs |
### `ssh_read_file_content`
Inhalt einer entfernten Datei lesen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `host` | string | Ja | SSH-Server-Hostname oder IP-Adresse |
| `port` | number | Ja | SSH-Server-Port \(Standard: 22\) |
| `username` | string | Ja | SSH-Benutzername |
| `password` | string | Nein | Passwort für die Authentifizierung \(wenn kein privater Schlüssel verwendet wird\) |
| `privateKey` | string | Nein | Privater Schlüssel für die Authentifizierung \(OpenSSH-Format\) |
| `passphrase` | string | Nein | Passphrase für verschlüsselten privaten Schlüssel |
| `path` | string | Ja | Pfad zur entfernten Datei, die gelesen werden soll |
| `encoding` | string | Nein | Dateikodierung \(Standard: utf-8\) |
| `maxSize` | number | Nein | Maximale zu lesende Dateigröße in MB \(Standard: 10\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Dateiinhalt als Zeichenfolge |
| `size` | number | Dateigröße in Bytes |
| `lines` | number | Anzahl der Zeilen in der Datei |
| `remotePath` | string | Pfad zur entfernten Datei |
| `message` | string | Statusmeldung des Vorgangs |
### `ssh_write_file_content`
Inhalt in eine entfernte Datei schreiben oder anhängen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `host` | string | Ja | SSH-Server-Hostname oder IP-Adresse |
| `port` | number | Ja | SSH-Server-Port \(Standard: 22\) |
| `username` | string | Ja | SSH-Benutzername |
| `password` | string | Nein | Passwort für die Authentifizierung \(wenn kein privater Schlüssel verwendet wird\) |
| `privateKey` | string | Nein | Privater Schlüssel für die Authentifizierung \(OpenSSH-Format\) |
| `passphrase` | string | Nein | Passphrase für verschlüsselten privaten Schlüssel |
| `path` | string | Ja | Pfad zur entfernten Datei, in die geschrieben werden soll |
| `content` | string | Ja | Inhalt, der in die Datei geschrieben werden soll |
| `mode` | string | Nein | Schreibmodus: überschreiben, anhängen oder erstellen \(Standard: überschreiben\) |
| `permissions` | string | Nein | Dateiberechtigungen \(z.B. 0644\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `written` | boolean | Ob die Datei erfolgreich geschrieben wurde |
| `remotePath` | string | Dateipfad |
| `size` | number | Endgültige Dateigröße in Bytes |
| `message` | string | Statusmeldung der Operation |
## Hinweise
- Kategorie: `tools`
- Typ: `ssh`

View File

@@ -0,0 +1,566 @@
---
title: WordPress
description: WordPress-Inhalte verwalten
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="wordpress"
color="#21759B"
/>
{/* MANUAL-CONTENT-START:intro */}
[WordPress](https://wordpress.org/) ist das weltweit führende Open-Source-Content-Management-System, das es einfach macht, Websites, Blogs und alle Arten von Online-Inhalten zu veröffentlichen und zu verwalten. Mit WordPress können Sie Beiträge oder Seiten erstellen und aktualisieren, Ihre Inhalte mit Kategorien und Schlagwörtern organisieren, Mediendateien verwalten, Kommentare moderieren und Benutzerkonten verwalten so können Sie alles von persönlichen Blogs bis hin zu komplexen Unternehmenswebsites betreiben.
Die Integration von Sim mit WordPress ermöglicht es Ihren Agenten, wesentliche Website-Aufgaben zu automatisieren. Sie können programmatisch neue Blogbeiträge mit spezifischen Titeln, Inhalten, Kategorien, Schlagwörtern und Hauptbildern erstellen. Das Aktualisieren bestehender Beiträge wie das Ändern von Inhalten, Titeln oder Veröffentlichungsstatus ist unkompliziert. Sie können Inhalte auch veröffentlichen oder als Entwürfe speichern, statische Seiten verwalten, mit Medien-Uploads arbeiten, Kommentare überwachen und Inhalte relevanten Organisationstaxonomien zuweisen.
Durch die Verbindung von WordPress mit Ihren Automatisierungen ermöglicht Sim Ihren Agenten, die Veröffentlichung von Inhalten, redaktionelle Arbeitsabläufe und die tägliche Website-Verwaltung zu optimieren so bleibt Ihre Website ohne manuellen Aufwand aktuell, organisiert und sicher.
{/* MANUAL-CONTENT-END */}
## Nutzungsanleitung
Integrieren Sie WordPress, um Beiträge, Seiten, Medien, Kommentare, Kategorien, Schlagwörter und Benutzer zu erstellen, zu aktualisieren und zu verwalten. Unterstützt WordPress.com-Websites über OAuth und selbst gehostete WordPress-Websites mit Anwendungspasswort-Authentifizierung.
## Tools
### `wordpress_create_post`
Einen neuen Blogbeitrag in WordPress.com erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Ja | WordPress.com-Site-ID oder Domain \(z.B. 12345678 oder meineseite.wordpress.com\) |
| `title` | string | Ja | Beitragstitel |
| `content` | string | Nein | Beitragsinhalt \(HTML oder Klartext\) |
| `status` | string | Nein | Beitragsstatus: publish, draft, pending, private oder future |
| `excerpt` | string | Nein | Beitragsauszug |
| `categories` | string | Nein | Kommagetrennte Kategorie-IDs |
| `tags` | string | Nein | Kommagetrennte Schlagwort-IDs |
| `featuredMedia` | number | Nein | Medien-ID des Hauptbildes |
| `slug` | string | Nein | URL-Slug für den Beitrag |
#### Output
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `post` | object | Der erstellte Beitrag |
### `wordpress_update_post`
Aktualisieren eines vorhandenen Blog-Beitrags in WordPress.com
#### Input
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Ja | WordPress.com-Site-ID oder Domain \(z.B. 12345678 oder mysite.wordpress.com\) |
| `postId` | number | Ja | Die ID des zu aktualisierenden Beitrags |
| `title` | string | Nein | Beitragstitel |
| `content` | string | Nein | Beitragsinhalt \(HTML oder Klartext\) |
| `status` | string | Nein | Beitragsstatus: publish, draft, pending, private oder future |
| `excerpt` | string | Nein | Beitragsauszug |
| `categories` | string | Nein | Kommagetrennte Kategorie-IDs |
| `tags` | string | Nein | Kommagetrennte Tag-IDs |
| `featuredMedia` | number | Nein | Medien-ID des Beitragsbilds |
| `slug` | string | Nein | URL-Slug für den Beitrag |
#### Output
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `post` | object | Der aktualisierte Beitrag |
### `wordpress_delete_post`
Löschen eines Blog-Beitrags von WordPress.com
#### Input
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Ja | WordPress.com-Site-ID oder Domain \(z.B. 12345678 oder mysite.wordpress.com\) |
| `postId` | number | Ja | Die ID des zu löschenden Beitrags |
| `force` | boolean | Nein | Papierkorb umgehen und dauerhaft löschen erzwingen |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `deleted` | boolean | Gibt an, ob der Beitrag gelöscht wurde |
| `post` | object | Der gelöschte Beitrag |
### `wordpress_get_post`
Einen einzelnen Blog-Beitrag von WordPress.com anhand der ID abrufen
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Ja | WordPress.com-Site-ID oder Domain \(z.B. 12345678 oder mysite.wordpress.com\) |
| `postId` | number | Ja | Die ID des abzurufenden Beitrags |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `post` | object | Der abgerufene Beitrag |
### `wordpress_list_posts`
Blog-Beiträge von WordPress.com mit optionalen Filtern auflisten
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Ja | WordPress.com-Site-ID oder Domain \(z.B. 12345678 oder mysite.wordpress.com\) |
| `perPage` | number | Nein | Anzahl der Beiträge pro Seite \(Standard: 10, max: 100\) |
| `page` | number | Nein | Seitennummer für Paginierung |
| `status` | string | Nein | Beitragsstatus-Filter: publish, draft, pending, private |
| `author` | number | Nein | Nach Autor-ID filtern |
| `categories` | string | Nein | Kommagetrennte Kategorie-IDs zum Filtern |
| `tags` | string | Nein | Kommagetrennte Tag-IDs zum Filtern |
| `search` | string | Nein | Suchbegriff zum Filtern von Beiträgen |
| `orderBy` | string | Nein | Sortieren nach Feld: date, id, title, slug, modified |
| `order` | string | Nein | Sortierrichtung: asc oder desc |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `posts` | array | Liste der Beiträge |
### `wordpress_create_page`
Eine neue Seite in WordPress.com erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Ja | WordPress.com-Site-ID oder Domain \(z.B. 12345678 oder meinseite.wordpress.com\) |
| `title` | string | Ja | Seitentitel |
| `content` | string | Nein | Seiteninhalt \(HTML oder Klartext\) |
| `status` | string | Nein | Seitenstatus: publish, draft, pending, private |
| `excerpt` | string | Nein | Seitenauszug |
| `parent` | number | Nein | Übergeordnete Seiten-ID für hierarchische Seiten |
| `menuOrder` | number | Nein | Reihenfolge im Seitenmenü |
| `featuredMedia` | number | Nein | Medien-ID des Beitragsbilds |
| `slug` | string | Nein | URL-Slug für die Seite |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `page` | object | Die erstellte Seite |
### `wordpress_update_page`
Eine bestehende Seite in WordPress.com aktualisieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Ja | WordPress.com-Site-ID oder Domain \(z.B. 12345678 oder meinseite.wordpress.com\) |
| `pageId` | number | Ja | Die ID der zu aktualisierenden Seite |
| `title` | string | Nein | Seitentitel |
| `content` | string | Nein | Seiteninhalt \(HTML oder Klartext\) |
| `status` | string | Nein | Seitenstatus: publish, draft, pending, private |
| `excerpt` | string | Nein | Seitenauszug |
| `parent` | number | Nein | Übergeordnete Seiten-ID für hierarchische Seiten |
| `menuOrder` | number | Nein | Reihenfolge im Seitenmenü |
| `featuredMedia` | number | Nein | Medien-ID des Beitragsbilds |
| `slug` | string | Nein | URL-Slug für die Seite |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `page` | object | Die aktualisierte Seite |
### `wordpress_delete_page`
Eine Seite von WordPress.com löschen
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Ja | WordPress.com-Site-ID oder Domain \(z.B. 12345678 oder mysite.wordpress.com\) |
| `pageId` | number | Ja | Die ID der zu löschenden Seite |
| `force` | boolean | Nein | Papierkorb umgehen und dauerhaft löschen erzwingen |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `deleted` | boolean | Ob die Seite gelöscht wurde |
| `page` | object | Die gelöschte Seite |
### `wordpress_get_page`
Eine einzelne Seite von WordPress.com anhand der ID abrufen
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Ja | WordPress.com-Site-ID oder Domain \(z.B. 12345678 oder mysite.wordpress.com\) |
| `pageId` | number | Ja | Die ID der abzurufenden Seite |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `page` | object | Die abgerufene Seite |
### `wordpress_list_pages`
Seiten von WordPress.com mit optionalen Filtern auflisten
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Ja | WordPress.com-Site-ID oder Domain \(z.B. 12345678 oder mysite.wordpress.com\) |
| `perPage` | number | Nein | Anzahl der Seiten pro Anfrage \(Standard: 10, max: 100\) |
| `page` | number | Nein | Seitennummer für Paginierung |
| `status` | string | Nein | Seitenstatus-Filter: publish, draft, pending, private |
| `parent` | number | Nein | Nach übergeordneter Seiten-ID filtern |
| `search` | string | Nein | Suchbegriff zum Filtern von Seiten |
| `orderBy` | string | Nein | Sortieren nach Feld: date, id, title, slug, modified, menu_order |
| `order` | string | Nein | Sortierrichtung: asc oder desc |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `pages` | array | Liste der Seiten |
### `wordpress_upload_media`
Eine Mediendatei (Bild, Video, Dokument) zu WordPress.com hochladen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Ja | WordPress.com-Website-ID oder Domain \(z.B. 12345678 oder meinwebsite.wordpress.com\) |
| `file` | string | Ja | Base64-kodierte Dateidaten oder URL, von der die Datei abgerufen werden soll |
| `filename` | string | Ja | Dateiname mit Erweiterung \(z.B. bild.jpg\) |
| `title` | string | Nein | Medientitel |
| `caption` | string | Nein | Medienunterschrift |
| `altText` | string | Nein | Alternativer Text für Barrierefreiheit |
| `description` | string | Nein | Medienbeschreibung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `media` | object | Das hochgeladene Medienelement |
### `wordpress_get_media`
Ein einzelnes Medienelement von WordPress.com anhand der ID abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Ja | WordPress.com-Website-ID oder Domain \(z.B. 12345678 oder meinwebsite.wordpress.com\) |
| `mediaId` | number | Ja | Die ID des abzurufenden Medienelements |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `media` | object | Das abgerufene Medienelement |
### `wordpress_list_media`
Medienelemente aus der WordPress.com-Medienbibliothek auflisten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Ja | WordPress.com-Site-ID oder Domain \(z.B. 12345678 oder mysite.wordpress.com\) |
| `perPage` | number | Nein | Anzahl der Medienelemente pro Anfrage \(Standard: 10, max: 100\) |
| `page` | number | Nein | Seitenzahl für Paginierung |
| `search` | string | Nein | Suchbegriff zum Filtern von Medien |
| `mediaType` | string | Nein | Nach Medientyp filtern: image, video, audio, application |
| `mimeType` | string | Nein | Nach spezifischem MIME-Typ filtern \(z.B. image/jpeg\) |
| `orderBy` | string | Nein | Sortieren nach Feld: date, id, title, slug |
| `order` | string | Nein | Sortierrichtung: asc oder desc |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `media` | array | Liste der Medienelemente |
### `wordpress_delete_media`
Ein Medienelement von WordPress.com löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Ja | WordPress.com-Site-ID oder Domain \(z.B. 12345678 oder mysite.wordpress.com\) |
| `mediaId` | number | Ja | Die ID des zu löschenden Medienelements |
| `force` | boolean | Nein | Erzwungenes Löschen \(Medien haben keinen Papierkorb, daher ist das Löschen permanent\) |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `deleted` | boolean | Ob das Medium gelöscht wurde |
| `media` | object | Das gelöschte Medienelement |
### `wordpress_create_comment`
Einen neuen Kommentar zu einem WordPress.com-Beitrag erstellen
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Ja | WordPress.com-Site-ID oder Domain \(z.B. 12345678 oder mysite.wordpress.com\) |
| `postId` | number | Ja | Die ID des Beitrags, der kommentiert werden soll |
| `content` | string | Ja | Kommentarinhalt |
| `parent` | number | Nein | Übergeordnete Kommentar-ID für Antworten |
| `authorName` | string | Nein | Anzeigename des Kommentarautors |
| `authorEmail` | string | Nein | E-Mail des Kommentarautors |
| `authorUrl` | string | Nein | URL des Kommentarautors |
#### Output
| Parameter | Type | Beschreibung |
| --------- | ---- | ----------- |
| `comment` | object | Der erstellte Kommentar |
### `wordpress_list_comments`
Kommentare von WordPress.com mit optionalen Filtern auflisten
#### Input
| Parameter | Type | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Ja | WordPress.com-Site-ID oder Domain \(z.B. 12345678 oder mysite.wordpress.com\) |
| `perPage` | number | Nein | Anzahl der Kommentare pro Anfrage \(Standard: 10, max: 100\) |
| `page` | number | Nein | Seitenzahl für Paginierung |
| `postId` | number | Nein | Nach Beitrags-ID filtern |
| `status` | string | Nein | Nach Kommentarstatus filtern: approved, hold, spam, trash |
| `search` | string | Nein | Suchbegriff zum Filtern von Kommentaren |
| `orderBy` | string | Nein | Sortieren nach Feld: date, id, parent |
| `order` | string | Nein | Sortierrichtung: asc oder desc |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `comments` | array | Liste der Kommentare |
### `wordpress_update_comment`
Aktualisieren eines Kommentars in WordPress.com (Inhalt oder Status)
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Ja | WordPress.com-Site-ID oder Domain \(z.B. 12345678 oder mysite.wordpress.com\) |
| `commentId` | number | Ja | Die ID des zu aktualisierenden Kommentars |
| `content` | string | Nein | Aktualisierter Kommentarinhalt |
| `status` | string | Nein | Kommentarstatus: approved, hold, spam, trash |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `comment` | object | Der aktualisierte Kommentar |
### `wordpress_delete_comment`
Löschen eines Kommentars von WordPress.com
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Ja | WordPress.com-Site-ID oder Domain \(z.B. 12345678 oder mysite.wordpress.com\) |
| `commentId` | number | Ja | Die ID des zu löschenden Kommentars |
| `force` | boolean | Nein | Papierkorb umgehen und dauerhaft löschen erzwingen |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `deleted` | boolean | Ob der Kommentar gelöscht wurde |
| `comment` | object | Der gelöschte Kommentar |
### `wordpress_create_category`
Erstellen einer neuen Kategorie in WordPress.com
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Ja | WordPress.com-Site-ID oder Domain \(z.B. 12345678 oder meinseite.wordpress.com\) |
| `name` | string | Ja | Kategoriename |
| `description` | string | Nein | Kategoriebeschreibung |
| `parent` | number | Nein | Übergeordnete Kategorie-ID für hierarchische Kategorien |
| `slug` | string | Nein | URL-Slug für die Kategorie |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `category` | object | Die erstellte Kategorie |
### `wordpress_list_categories`
Kategorien von WordPress.com auflisten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Ja | WordPress.com-Site-ID oder Domain \(z.B. 12345678 oder meinseite.wordpress.com\) |
| `perPage` | number | Nein | Anzahl der Kategorien pro Anfrage \(Standard: 10, max: 100\) |
| `page` | number | Nein | Seitenzahl für Paginierung |
| `search` | string | Nein | Suchbegriff zum Filtern von Kategorien |
| `order` | string | Nein | Sortierrichtung: asc oder desc |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `categories` | array | Liste der Kategorien |
### `wordpress_create_tag`
Einen neuen Tag in WordPress.com erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Ja | WordPress.com-Site-ID oder Domain \(z.B. 12345678 oder meinseite.wordpress.com\) |
| `name` | string | Ja | Tag-Name |
| `description` | string | Nein | Tag-Beschreibung |
| `slug` | string | Nein | URL-Slug für den Tag |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `tag` | object | Der erstellte Tag |
### `wordpress_list_tags`
Tags von WordPress.com auflisten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Ja | WordPress.com-Site-ID oder Domain \(z.B. 12345678 oder mysite.wordpress.com\) |
| `perPage` | number | Nein | Anzahl der Tags pro Anfrage \(Standard: 10, max: 100\) |
| `page` | number | Nein | Seitennummer für Paginierung |
| `search` | string | Nein | Suchbegriff zum Filtern von Tags |
| `order` | string | Nein | Sortierrichtung: asc oder desc |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `tags` | array | Liste der Tags |
### `wordpress_get_current_user`
Informationen über den aktuell authentifizierten WordPress.com-Benutzer abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Ja | WordPress.com-Site-ID oder Domain \(z.B. 12345678 oder mysite.wordpress.com\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `user` | object | Der aktuelle Benutzer |
### `wordpress_list_users`
Benutzer von WordPress.com auflisten (erfordert Administratorrechte)
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Ja | WordPress.com-Site-ID oder Domain \(z.B. 12345678 oder mysite.wordpress.com\) |
| `perPage` | number | Nein | Anzahl der Benutzer pro Anfrage \(Standard: 10, max: 100\) |
| `page` | number | Nein | Seitennummer für Paginierung |
| `search` | string | Nein | Suchbegriff zum Filtern von Benutzern |
| `roles` | string | Nein | Kommagetrennte Rollennamen zum Filtern |
| `order` | string | Nein | Sortierrichtung: asc oder desc |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `users` | array | Liste der Benutzer |
### `wordpress_get_user`
Einen bestimmten Benutzer von WordPress.com anhand der ID abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Ja | WordPress.com-Site-ID oder Domain \(z.B. 12345678 oder mysite.wordpress.com\) |
| `userId` | number | Ja | Die ID des abzurufenden Benutzers |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `user` | object | Der abgerufene Benutzer |
### `wordpress_search_content`
Suche über alle Inhaltstypen in WordPress.com (Beiträge, Seiten, Medien)
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Ja | WordPress.com-Site-ID oder Domain \(z.B. 12345678 oder mysite.wordpress.com\) |
| `query` | string | Ja | Suchanfrage |
| `perPage` | number | Nein | Anzahl der Ergebnisse pro Anfrage \(Standard: 10, max: 100\) |
| `page` | number | Nein | Seitenzahl für Paginierung |
| `type` | string | Nein | Nach Inhaltstyp filtern: post, page, attachment |
| `subtype` | string | Nein | Nach Beitragstyp-Slug filtern \(z.B. post, page\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `results` | array | Suchergebnisse |
## Notizen
- Kategorie: `tools`
- Typ: `wordpress`

View File

@@ -109,11 +109,14 @@ Ein neues Ticket in Zendesk erstellen mit Unterstützung für benutzerdefinierte
| `subdomain` | string | Ja | Ihre Zendesk-Subdomain |
| `subject` | string | Nein | Ticket-Betreff \(optional - wird automatisch generiert, wenn nicht angegeben\) |
| `description` | string | Ja | Ticket-Beschreibung \(erster Kommentar\) |
| `priority` | string | Nein | Priorität \(niedrig, normal, hoch, dringend\) |
| `status` | string | Nein | Status \(neu, offen, ausstehend, angehalten, gelöst, geschlossen\) |
| `type` | string | Nein | Typ \(problem, vorfall, frage, aufgabe\) |
| `priority` | string | Nein | Priorität \(low, normal, high, urgent\) |
| `status` | string | Nein | Status \(new, open, pending, hold, solved, closed\) |
| `type` | string | Nein | Typ \(problem, incident, question, task\) |
| `tags` | string | Nein | Kommagetrennte Tags |
| `assigneeId` | string | Nein | Bearbeiter-Benutzer-ID |
| `groupId` | string | Nein | Gruppen-ID |
| `requesterId` | string | Nein | Anforderer-Benutzer-ID |
| `customFields` | string | Nein | Benutzerdefinierte Felder als JSON-Objekt \(z.B. \{"field_id": "value"\}\) |
#### Output

View File

@@ -0,0 +1,250 @@
---
title: Zoom
description: Zoom-Meetings und -Aufzeichnungen erstellen und verwalten
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="zoom"
color="#2D8CFF"
/>
{/* MANUAL-CONTENT-START:intro */}
[Zoom](https://zoom.us/) ist eine führende cloudbasierte Kommunikationsplattform für Videomeetings, Webinare und Online-Zusammenarbeit. Sie ermöglicht Benutzern und Organisationen, Meetings einfach zu planen, zu hosten und zu verwalten und bietet Tools für Bildschirmfreigabe, Chat, Aufzeichnungen und mehr.
Mit Zoom können Sie:
- **Meetings planen und verwalten**: Sofortige oder geplante Meetings erstellen, einschließlich wiederkehrender Termine
- **Meeting-Optionen konfigurieren**: Meeting-Passwörter festlegen, Warteräume aktivieren und Video/Audio der Teilnehmer steuern
- **Einladungen versenden und Details teilen**: Meeting-Einladungen und Informationen zum einfachen Teilen abrufen
- **Meeting-Daten abrufen und aktualisieren**: Auf Meeting-Details zugreifen, bestehende Meetings ändern und Einstellungen programmgesteuert verwalten
In Sim ermöglicht die Zoom-Integration Ihren Agenten die Automatisierung der Planung und Meeting-Verwaltung. Verwenden Sie Tool-Aktionen, um:
- Neue Meetings mit benutzerdefinierten Einstellungen programmgesteuert zu erstellen
- Alle Meetings für einen bestimmten Benutzer (oder sich selbst) aufzulisten
- Details oder Einladungen für jedes Meeting abzurufen
- Bestehende Meetings direkt aus Ihren Automatisierungen zu aktualisieren oder zu löschen
Diese Funktionen ermöglichen es Ihnen, die Remote-Zusammenarbeit zu optimieren, wiederkehrende Videositzungen zu automatisieren und die Zoom-Umgebung Ihrer Organisation als Teil Ihrer Workflows zu verwalten.
{/* MANUAL-CONTENT-END */}
## Nutzungsanleitung
Integrieren Sie Zoom in Workflows. Erstellen, listen, aktualisieren und löschen Sie Zoom-Meetings. Rufen Sie Meeting-Details, Einladungen, Aufzeichnungen und Teilnehmer ab. Verwalten Sie Cloud-Aufzeichnungen programmgesteuert.
## Tools
### `zoom_create_meeting`
Ein neues Zoom-Meeting erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `userId` | string | Ja | Die Benutzer-ID oder E-Mail-Adresse. Verwenden Sie "me" für den authentifizierten Benutzer. |
| `topic` | string | Ja | Meeting-Thema |
| `type` | number | Nein | Meeting-Typ: 1=sofort, 2=geplant, 3=wiederkehrend ohne feste Zeit, 8=wiederkehrend mit fester Zeit |
| `startTime` | string | Nein | Meeting-Startzeit im ISO 8601-Format \(z.B. 2025-06-03T10:00:00Z\) |
| `duration` | number | Nein | Meeting-Dauer in Minuten |
| `timezone` | string | Nein | Zeitzone für das Meeting \(z.B. Europe/Berlin\) |
| `password` | string | Nein | Meeting-Passwort |
| `agenda` | string | Nein | Meeting-Agenda |
| `hostVideo` | boolean | Nein | Mit eingeschaltetem Host-Video starten |
| `participantVideo` | boolean | Nein | Mit eingeschaltetem Teilnehmer-Video starten |
| `joinBeforeHost` | boolean | Nein | Teilnehmern erlauben, vor dem Host beizutreten |
| `muteUponEntry` | boolean | Nein | Teilnehmer beim Betreten stummschalten |
| `waitingRoom` | boolean | Nein | Warteraum aktivieren |
| `autoRecording` | string | Nein | Automatische Aufzeichnungseinstellung: local, cloud oder none |
#### Output
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `meeting` | object | Das erstellte Meeting mit allen seinen Eigenschaften |
### `zoom_list_meetings`
Alle Meetings eines Zoom-Benutzers auflisten
#### Input
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `userId` | string | Ja | Die Benutzer-ID oder E-Mail-Adresse. Verwenden Sie "me" für den authentifizierten Benutzer. |
| `type` | string | Nein | Meeting-Typ-Filter: scheduled, live, upcoming, upcoming_meetings oder previous_meetings |
| `pageSize` | number | Nein | Anzahl der Datensätze pro Seite (max. 300) |
| `nextPageToken` | string | Nein | Token für Paginierung, um die nächste Ergebnisseite zu erhalten |
#### Output
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `meetings` | array | Liste der Meetings |
| `pageInfo` | object | Paginierungsinformationen |
### `zoom_get_meeting`
Details eines bestimmten Zoom-Meetings abrufen
#### Input
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `meetingId` | string | Ja | Die Meeting-ID |
| `occurrenceId` | string | Nein | Vorkommnis-ID für wiederkehrende Meetings |
| `showPreviousOccurrences` | boolean | Nein | Frühere Vorkommnisse für wiederkehrende Meetings anzeigen |
#### Output
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `meeting` | object | Die Meeting-Details |
### `zoom_update_meeting`
Ein bestehendes Zoom-Meeting aktualisieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `meetingId` | string | Ja | Die zu aktualisierende Meeting-ID |
| `topic` | string | Nein | Meeting-Thema |
| `type` | number | Nein | Meeting-Typ: 1=sofort, 2=geplant, 3=wiederkehrend ohne feste Zeit, 8=wiederkehrend mit fester Zeit |
| `startTime` | string | Nein | Meeting-Startzeit im ISO 8601-Format \(z.B. 2025-06-03T10:00:00Z\) |
| `duration` | number | Nein | Meeting-Dauer in Minuten |
| `timezone` | string | Nein | Zeitzone für das Meeting \(z.B. America/Los_Angeles\) |
| `password` | string | Nein | Meeting-Passwort |
| `agenda` | string | Nein | Meeting-Agenda |
| `hostVideo` | boolean | Nein | Mit eingeschalteter Host-Kamera starten |
| `participantVideo` | boolean | Nein | Mit eingeschalteter Teilnehmer-Kamera starten |
| `joinBeforeHost` | boolean | Nein | Teilnehmern erlauben, vor dem Host beizutreten |
| `muteUponEntry` | boolean | Nein | Teilnehmer beim Betreten stummschalten |
| `waitingRoom` | boolean | Nein | Warteraum aktivieren |
| `autoRecording` | string | Nein | Automatische Aufzeichnungseinstellung: local, cloud oder none |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob das Meeting erfolgreich aktualisiert wurde |
### `zoom_delete_meeting`
Ein Zoom-Meeting löschen oder abbrechen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `meetingId` | string | Ja | Die zu löschende Meeting-ID |
| `occurrenceId` | string | Nein | Vorkommnis-ID zum Löschen eines bestimmten Vorkommnisses eines wiederkehrenden Meetings |
| `scheduleForReminder` | boolean | Nein | Erinnerungs-E-Mail zur Stornierung an Teilnehmer senden |
| `cancelMeetingReminder` | boolean | Nein | Stornierungsmail an Teilnehmer und alternative Hosts senden |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob das Meeting erfolgreich gelöscht wurde |
### `zoom_get_meeting_invitation`
Abrufen des Einladungstextes für ein Zoom-Meeting
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `meetingId` | string | Ja | Die Meeting-ID |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `invitation` | string | Der Einladungstext für das Meeting |
### `zoom_list_recordings`
Alle Cloud-Aufzeichnungen für einen Zoom-Benutzer auflisten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `userId` | string | Ja | Die Benutzer-ID oder E-Mail-Adresse. Verwenden Sie "me" für den authentifizierten Benutzer. |
| `from` | string | Nein | Startdatum im Format jjjj-mm-tt \(innerhalb der letzten 6 Monate\) |
| `to` | string | Nein | Enddatum im Format jjjj-mm-tt |
| `pageSize` | number | Nein | Anzahl der Datensätze pro Seite \(max. 300\) |
| `nextPageToken` | string | Nein | Token für die Paginierung, um die nächste Ergebnisseite zu erhalten |
| `trash` | boolean | Nein | Auf true setzen, um Aufzeichnungen aus dem Papierkorb aufzulisten |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `recordings` | array | Liste der Aufzeichnungen |
| `pageInfo` | object | Paginierungsinformationen |
### `zoom_get_meeting_recordings`
Alle Aufzeichnungen für ein bestimmtes Zoom-Meeting abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `meetingId` | string | Ja | Die Meeting-ID oder Meeting-UUID |
| `includeFolderItems` | boolean | Nein | Elemente innerhalb eines Ordners einschließen |
| `ttl` | number | Nein | Gültigkeitsdauer für Download-URLs in Sekunden \(max 604800\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `recording` | object | Die Meeting-Aufzeichnung mit allen Dateien |
### `zoom_delete_recording`
Cloud-Aufzeichnungen für ein Zoom-Meeting löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `meetingId` | string | Ja | Die Meeting-ID oder Meeting-UUID |
| `recordingId` | string | Nein | Spezifische Aufzeichnungsdatei-ID zum Löschen. Wenn nicht angegeben, werden alle Aufzeichnungen gelöscht. |
| `action` | string | Nein | Löschaktion: "trash" \(in Papierkorb verschieben\) oder "delete" \(dauerhaft löschen\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob die Aufzeichnung erfolgreich gelöscht wurde |
### `zoom_list_past_participants`
Teilnehmer eines vergangenen Zoom-Meetings auflisten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `meetingId` | string | Ja | Die vergangene Meeting-ID oder UUID |
| `pageSize` | number | Nein | Anzahl der Datensätze pro Seite \(max 300\) |
| `nextPageToken` | string | Nein | Token für Paginierung, um die nächste Ergebnisseite zu erhalten |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `participants` | array | Liste der Besprechungsteilnehmer |
| `pageInfo` | object | Paginierungsinformationen |
## Hinweise
- Kategorie: `tools`
- Typ: `zoom`

View File

@@ -66,16 +66,16 @@ Um Umgebungsvariablen in Ihren Workflows zu referenzieren, verwenden Sie die `{{
height={350}
/>
## Variablen-Präzedenz
## Wie Variablen aufgelöst werden
Wenn Sie sowohl persönliche als auch Workspace-Variablen mit demselben Namen haben:
**Workspace-Variablen haben immer Vorrang** vor persönlichen Variablen, unabhängig davon, wer den Workflow ausführt.
1. **Workspace-Variablen haben Vorrang** vor persönlichen Variablen
2. Dies verhindert Namenskonflikte und gewährleistet ein konsistentes Verhalten in Team-Workflows
3. Wenn eine Workspace-Variable existiert, wird die persönliche Variable mit demselben Namen ignoriert
Wenn keine Workspace-Variable für einen Schlüssel existiert, werden persönliche Variablen verwendet:
- **Manuelle Ausführungen (UI)**: Ihre persönlichen Variablen
- **Automatisierte Ausführungen (API, Webhook, Zeitplan, bereitgestellter Chat)**: Persönliche Variablen des Workflow-Besitzers
<Callout type="warning">
Wählen Sie Variablennamen sorgfältig, um unbeabsichtigte Überschreibungen zu vermeiden. Erwägen Sie, persönliche Variablen mit Ihren Initialen oder Workspace-Variablen mit dem Projektnamen zu versehen.
<Callout type="info">
Persönliche Variablen eignen sich am besten zum Testen. Verwenden Sie Workspace-Variablen für Produktions-Workflows.
</Callout>
## Sicherheits-Best-Practices

View File

@@ -135,7 +135,7 @@ Function (Process) → Condition (account_type === 'enterprise') → Advanced or
## Best Practices
- **Order conditions correctly**: Place more specific conditions before general ones to ensure specific logic takes precedence over fallbacks
- **Include a default condition**: Add a catch-all condition (`true`) as the last condition to handle unmatched cases and prevent workflow execution from getting stuck
- **Use the else branch when needed**: If no conditions match and the else branch is not connected, the workflow branch will end gracefully. Connect the else branch if you need a fallback path for unmatched cases
- **Keep expressions simple**: Use clear, straightforward boolean expressions for better readability and easier debugging
- **Document your conditions**: Add descriptions to explain the purpose of each condition for better team collaboration and maintenance
- **Test edge cases**: Verify conditions handle boundary values correctly by testing with values at the edges of your condition ranges

View File

@@ -240,32 +240,78 @@ Retrieve execution details including the workflow state snapshot.
</Tab>
</Tabs>
## Webhook Subscriptions
## Notifications
Get real-time notifications when workflow executions complete. Webhooks are configured through the Sim UI in the workflow editor.
Get real-time notifications when workflow executions complete via webhook, email, or Slack. Notifications are configured at the workspace level from the Logs page.
### Configuration
Webhooks can be configured for each workflow through the workflow editor UI. Click the webhook icon in the control bar to set up your webhook subscriptions.
Configure notifications from the Logs page by clicking the menu button and selecting "Configure Notifications".
<div className="mx-auto w-full overflow-hidden rounded-lg">
<Video src="configure-webhook.mp4" width={700} height={450} />
</div>
**Notification Channels:**
- **Webhook**: Send HTTP POST requests to your endpoint
- **Email**: Receive email notifications with execution details
- **Slack**: Post messages to a Slack channel
**Available Configuration Options:**
**Workflow Selection:**
- Select specific workflows to monitor
- Or choose "All Workflows" to include current and future workflows
**Filtering Options:**
- `levelFilter`: Log levels to receive (`info`, `error`)
- `triggerFilter`: Trigger types to receive (`api`, `webhook`, `schedule`, `manual`, `chat`)
**Optional Data:**
- `includeFinalOutput`: Include the workflow's final output
- `includeTraceSpans`: Include detailed execution trace spans
- `includeRateLimits`: Include rate limit information (sync/async limits and remaining)
- `includeUsageData`: Include billing period usage and limits
### Alert Rules
Instead of receiving notifications for every execution, configure alert rules to be notified only when issues are detected:
**Consecutive Failures**
- Alert after X consecutive failed executions (e.g., 3 failures in a row)
- Resets when an execution succeeds
**Failure Rate**
- Alert when failure rate exceeds X% over the last Y hours
- Requires minimum 5 executions in the window
- Only triggers after the full time window has elapsed
**Latency Threshold**
- Alert when any execution takes longer than X seconds
- Useful for catching slow or hanging workflows
**Latency Spike**
- Alert when execution is X% slower than the average
- Compares against the average duration over the configured time window
- Requires minimum 5 executions to establish baseline
**Cost Threshold**
- Alert when a single execution costs more than $X
- Useful for catching expensive LLM calls
**No Activity**
- Alert when no executions occur within X hours
- Useful for monitoring scheduled workflows that should run regularly
**Error Count**
- Alert when error count exceeds X within a time window
- Tracks total errors, not consecutive
All alert types include a 1-hour cooldown to prevent notification spam.
### Webhook Configuration
For webhooks, additional options are available:
- `url`: Your webhook endpoint URL
- `secret`: Optional secret for HMAC signature verification
- `includeFinalOutput`: Include the workflow's final output in the payload
- `includeTraceSpans`: Include detailed execution trace spans
- `includeRateLimits`: Include the workflow owner's rate limit information
- `includeUsageData`: Include the workflow owner's usage and billing data
- `levelFilter`: Array of log levels to receive (`info`, `error`)
- `triggerFilter`: Array of trigger types to receive (`api`, `webhook`, `schedule`, `manual`, `chat`)
- `active`: Enable/disable the webhook subscription
### Webhook Payload
### Payload Structure
When a workflow execution completes, Sim sends a POST request to your webhook URL:
When a workflow execution completes, Sim sends the following payload (via webhook POST, email, or Slack):
```json
{
@@ -316,7 +362,7 @@ When a workflow execution completes, Sim sends a POST request to your webhook UR
### Webhook Headers
Each webhook request includes these headers:
Each webhook request includes these headers (webhook channel only):
- `sim-event`: Event type (always `workflow.execution.completed`)
- `sim-timestamp`: Unix timestamp in milliseconds

View File

@@ -147,4 +147,4 @@ The snapshot provides:
- Learn about [Cost Calculation](/execution/costs) to understand workflow pricing
- Explore the [External API](/execution/api) for programmatic log access
- Set up [Webhook notifications](/execution/api#webhook-subscriptions) for real-time alerts
- Set up [Notifications](/execution/api#notifications) for real-time alerts via webhook, email, or Slack

View File

@@ -72,7 +72,7 @@ For custom integrations, leverage our [MCP (Model Context Protocol) support](/mc
<Video src="introduction/integrations-sidebar.mp4" width={700} height={450} />
</div>
## AI-Powered Copilot
## Copilot
**Ask Questions & Get Guidance**
Copilot answers questions about Sim, explains your workflows, and provides suggestions for improvements. Use the `@` symbol to reference workflows, blocks, documentation, knowledge, and logs for contextual assistance.

View File

@@ -1,5 +1,6 @@
---
title: Knowledgebase
title: Overview
description: Upload, process, and search through your documents with intelligent vector search and chunking
---
import { Video } from '@/components/ui/video'

View File

@@ -0,0 +1,4 @@
{
"title": "Knowledgebase",
"pages": ["index", "tags"]
}

View File

@@ -13,7 +13,8 @@
"variables",
"execution",
"permissions",
"sdks"
"sdks",
"self-hosting"
],
"defaultOpen": false
}

View File

@@ -0,0 +1,150 @@
---
title: Docker
description: Deploy Sim Studio with Docker Compose
---
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
import { Callout } from 'fumadocs-ui/components/callout'
## Quick Start
```bash
# Clone and start
git clone https://github.com/simstudioai/sim.git && cd sim
docker compose -f docker-compose.prod.yml up -d
```
Open [http://localhost:3000](http://localhost:3000)
## Production Setup
### 1. Configure Environment
```bash
# Generate secrets
cat > .env << EOF
DATABASE_URL=postgresql://postgres:postgres@db:5432/simstudio
BETTER_AUTH_SECRET=$(openssl rand -hex 32)
ENCRYPTION_KEY=$(openssl rand -hex 32)
INTERNAL_API_SECRET=$(openssl rand -hex 32)
NEXT_PUBLIC_APP_URL=https://sim.yourdomain.com
BETTER_AUTH_URL=https://sim.yourdomain.com
NEXT_PUBLIC_SOCKET_URL=https://sim.yourdomain.com
EOF
```
### 2. Start Services
```bash
docker compose -f docker-compose.prod.yml up -d
```
### 3. Set Up SSL
<Tabs items={['Caddy (Recommended)', 'Nginx + Certbot']}>
<Tab value="Caddy (Recommended)">
Caddy automatically handles SSL certificates.
```bash
# Install Caddy
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update && sudo apt install caddy
```
Create `/etc/caddy/Caddyfile`:
```
sim.yourdomain.com {
reverse_proxy localhost:3000
handle /socket.io/* {
reverse_proxy localhost:3002
}
}
```
```bash
sudo systemctl restart caddy
```
</Tab>
<Tab value="Nginx + Certbot">
```bash
# Install
sudo apt install nginx certbot python3-certbot-nginx -y
# Create /etc/nginx/sites-available/sim
server {
listen 80;
server_name sim.yourdomain.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /socket.io/ {
proxy_pass http://127.0.0.1:3002;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
# Enable and get certificate
sudo ln -s /etc/nginx/sites-available/sim /etc/nginx/sites-enabled/
sudo certbot --nginx -d sim.yourdomain.com
```
</Tab>
</Tabs>
## Ollama
```bash
# With GPU
docker compose -f docker-compose.ollama.yml --profile gpu --profile setup up -d
# CPU only
docker compose -f docker-compose.ollama.yml --profile cpu --profile setup up -d
```
Pull additional models:
```bash
docker compose -f docker-compose.ollama.yml exec ollama ollama pull llama3.2
```
### External Ollama
If Ollama runs on your host machine (not in Docker):
```bash
# macOS/Windows
OLLAMA_URL=http://host.docker.internal:11434 docker compose -f docker-compose.prod.yml up -d
# Linux - use your host IP
OLLAMA_URL=http://192.168.1.100:11434 docker compose -f docker-compose.prod.yml up -d
```
<Callout type="warning">
Inside Docker, `localhost` refers to the container, not your host. Use `host.docker.internal` or your host's IP.
</Callout>
## Commands
```bash
# View logs
docker compose -f docker-compose.prod.yml logs -f simstudio
# Stop
docker compose -f docker-compose.prod.yml down
# Update
docker compose -f docker-compose.prod.yml pull && docker compose -f docker-compose.prod.yml up -d
# Backup database
docker compose -f docker-compose.prod.yml exec db pg_dump -U postgres simstudio > backup.sql
```

View File

@@ -0,0 +1,87 @@
---
title: Environment Variables
description: Configuration reference for Sim Studio
---
import { Callout } from 'fumadocs-ui/components/callout'
## Required
| Variable | Description |
|----------|-------------|
| `DATABASE_URL` | PostgreSQL connection string |
| `BETTER_AUTH_SECRET` | Auth secret (32 hex chars): `openssl rand -hex 32` |
| `BETTER_AUTH_URL` | Your app URL |
| `ENCRYPTION_KEY` | Encryption key (32 hex chars): `openssl rand -hex 32` |
| `INTERNAL_API_SECRET` | Internal API secret (32 hex chars): `openssl rand -hex 32` |
| `NEXT_PUBLIC_APP_URL` | Public app URL |
| `NEXT_PUBLIC_SOCKET_URL` | WebSocket URL (default: `http://localhost:3002`) |
## AI Providers
| Variable | Provider |
|----------|----------|
| `OPENAI_API_KEY` | OpenAI |
| `ANTHROPIC_API_KEY_1` | Anthropic Claude |
| `GEMINI_API_KEY_1` | Google Gemini |
| `MISTRAL_API_KEY` | Mistral |
| `OLLAMA_URL` | Ollama (default: `http://localhost:11434`) |
<Callout type="info">
For load balancing, add multiple keys with `_1`, `_2`, `_3` suffixes (e.g., `OPENAI_API_KEY_1`, `OPENAI_API_KEY_2`). Works with OpenAI, Anthropic, and Gemini.
</Callout>
<Callout type="info">
In Docker, use `OLLAMA_URL=http://host.docker.internal:11434` for host-machine Ollama.
</Callout>
### Azure OpenAI
| Variable | Description |
|----------|-------------|
| `AZURE_OPENAI_API_KEY` | Azure OpenAI API key |
| `AZURE_OPENAI_ENDPOINT` | Azure OpenAI endpoint URL |
| `AZURE_OPENAI_API_VERSION` | API version (e.g., `2024-02-15-preview`) |
### vLLM (Self-Hosted)
| Variable | Description |
|----------|-------------|
| `VLLM_BASE_URL` | vLLM server URL (e.g., `http://localhost:8000/v1`) |
| `VLLM_API_KEY` | Optional bearer token for vLLM |
## OAuth Providers
| Variable | Description |
|----------|-------------|
| `GOOGLE_CLIENT_ID` | Google OAuth client ID |
| `GOOGLE_CLIENT_SECRET` | Google OAuth client secret |
| `GITHUB_CLIENT_ID` | GitHub OAuth client ID |
| `GITHUB_CLIENT_SECRET` | GitHub OAuth client secret |
## Optional
| Variable | Description |
|----------|-------------|
| `API_ENCRYPTION_KEY` | Encrypts stored API keys (32 hex chars): `openssl rand -hex 32` |
| `COPILOT_API_KEY` | API key for copilot features |
| `ADMIN_API_KEY` | Admin API key for GitOps operations |
| `RESEND_API_KEY` | Email service for notifications |
| `ALLOWED_LOGIN_DOMAINS` | Restrict signups to domains (comma-separated) |
| `ALLOWED_LOGIN_EMAILS` | Restrict signups to specific emails (comma-separated) |
| `DISABLE_REGISTRATION` | Set to `true` to disable new user signups |
## Example .env
```bash
DATABASE_URL=postgresql://postgres:postgres@db:5432/simstudio
BETTER_AUTH_SECRET=<openssl rand -hex 32>
BETTER_AUTH_URL=https://sim.yourdomain.com
ENCRYPTION_KEY=<openssl rand -hex 32>
INTERNAL_API_SECRET=<openssl rand -hex 32>
NEXT_PUBLIC_APP_URL=https://sim.yourdomain.com
NEXT_PUBLIC_SOCKET_URL=https://sim.yourdomain.com
OPENAI_API_KEY=sk-...
```
See `apps/sim/.env.example` for all options.

View File

@@ -0,0 +1,50 @@
---
title: Self-Hosting
description: Deploy Sim Studio on your own infrastructure
---
import { Card, Cards } from 'fumadocs-ui/components/card'
import { Callout } from 'fumadocs-ui/components/callout'
Deploy Sim Studio on your own infrastructure with Docker or Kubernetes.
## Requirements
| Resource | Minimum | Recommended |
|----------|---------|-------------|
| CPU | 2 cores | 4+ cores |
| RAM | 12 GB | 16+ GB |
| Storage | 20 GB SSD | 50+ GB SSD |
| Docker | 20.10+ | Latest |
## Quick Start
```bash
git clone https://github.com/simstudioai/sim.git && cd sim
docker compose -f docker-compose.prod.yml up -d
```
Open [http://localhost:3000](http://localhost:3000)
## Deployment Options
<Cards>
<Card title="Docker" href="/self-hosting/docker">
Deploy with Docker Compose on any server
</Card>
<Card title="Kubernetes" href="/self-hosting/kubernetes">
Deploy with Helm on Kubernetes clusters
</Card>
<Card title="Cloud Platforms" href="/self-hosting/platforms">
Railway, DigitalOcean, AWS, Azure, GCP guides
</Card>
</Cards>
## Architecture
| Component | Port | Description |
|-----------|------|-------------|
| simstudio | 3000 | Main application |
| realtime | 3002 | WebSocket server |
| db | 5432 | PostgreSQL with pgvector |
| migrations | - | Database migrations (runs once) |

View File

@@ -0,0 +1,127 @@
---
title: Kubernetes
description: Deploy Sim Studio with Helm
---
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
import { Callout } from 'fumadocs-ui/components/callout'
## Prerequisites
- Kubernetes 1.19+
- Helm 3.0+
- PV provisioner support
## Installation
```bash
# Clone repo
git clone https://github.com/simstudioai/sim.git && cd sim
# Generate secrets
BETTER_AUTH_SECRET=$(openssl rand -hex 32)
ENCRYPTION_KEY=$(openssl rand -hex 32)
INTERNAL_API_SECRET=$(openssl rand -hex 32)
# Install
helm install sim ./helm/sim \
--set app.env.BETTER_AUTH_SECRET="$BETTER_AUTH_SECRET" \
--set app.env.ENCRYPTION_KEY="$ENCRYPTION_KEY" \
--set app.env.INTERNAL_API_SECRET="$INTERNAL_API_SECRET" \
--namespace simstudio --create-namespace
```
## Cloud-Specific Values
<Tabs items={['AWS EKS', 'Azure AKS', 'GCP GKE']}>
<Tab value="AWS EKS">
```bash
helm install sim ./helm/sim \
--values ./helm/sim/examples/values-aws.yaml \
--set app.env.BETTER_AUTH_SECRET="$BETTER_AUTH_SECRET" \
--set app.env.ENCRYPTION_KEY="$ENCRYPTION_KEY" \
--set app.env.INTERNAL_API_SECRET="$INTERNAL_API_SECRET" \
--set app.env.NEXT_PUBLIC_APP_URL="https://sim.yourdomain.com" \
--namespace simstudio --create-namespace
```
</Tab>
<Tab value="Azure AKS">
```bash
helm install sim ./helm/sim \
--values ./helm/sim/examples/values-azure.yaml \
--set app.env.BETTER_AUTH_SECRET="$BETTER_AUTH_SECRET" \
--set app.env.ENCRYPTION_KEY="$ENCRYPTION_KEY" \
--set app.env.INTERNAL_API_SECRET="$INTERNAL_API_SECRET" \
--set app.env.NEXT_PUBLIC_APP_URL="https://sim.yourdomain.com" \
--namespace simstudio --create-namespace
```
</Tab>
<Tab value="GCP GKE">
```bash
helm install sim ./helm/sim \
--values ./helm/sim/examples/values-gcp.yaml \
--set app.env.BETTER_AUTH_SECRET="$BETTER_AUTH_SECRET" \
--set app.env.ENCRYPTION_KEY="$ENCRYPTION_KEY" \
--set app.env.INTERNAL_API_SECRET="$INTERNAL_API_SECRET" \
--set app.env.NEXT_PUBLIC_APP_URL="https://sim.yourdomain.com" \
--namespace simstudio --create-namespace
```
</Tab>
</Tabs>
## Key Configuration
```yaml
# Custom values.yaml
app:
replicaCount: 2
env:
NEXT_PUBLIC_APP_URL: "https://sim.yourdomain.com"
OPENAI_API_KEY: "sk-..."
postgresql:
persistence:
size: 50Gi
ingress:
enabled: true
className: nginx
tls:
enabled: true
app:
host: sim.yourdomain.com
```
See `helm/sim/values.yaml` for all options.
## External Database
```yaml
postgresql:
enabled: false
externalDatabase:
enabled: true
host: "your-db-host"
port: 5432
username: "postgres"
password: "your-password"
database: "simstudio"
sslMode: "require"
```
## Commands
```bash
# Port forward for local access
kubectl port-forward deployment/sim-sim-app 3000:3000 -n simstudio
# View logs
kubectl logs -l app.kubernetes.io/component=app -n simstudio --tail=100
# Upgrade
helm upgrade sim ./helm/sim --namespace simstudio
# Uninstall
helm uninstall sim --namespace simstudio
```

View File

@@ -0,0 +1,12 @@
{
"title": "Self-Hosting",
"pages": [
"index",
"docker",
"kubernetes",
"platforms",
"environment-variables",
"troubleshooting"
],
"defaultOpen": false
}

View File

@@ -0,0 +1,116 @@
---
title: Cloud Platforms
description: Deploy Sim Studio on cloud platforms
---
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
import { Callout } from 'fumadocs-ui/components/callout'
## Railway
One-click deployment with automatic PostgreSQL provisioning.
[![Deploy on Railway](https://railway.app/button.svg)](https://railway.com/new/template/sim-studio)
After deployment, add environment variables in Railway dashboard:
- `BETTER_AUTH_SECRET`, `ENCRYPTION_KEY`, `INTERNAL_API_SECRET` (auto-generated)
- `OPENAI_API_KEY` or other AI provider keys
- Custom domain in Settings → Networking
## VPS Deployment
For DigitalOcean, AWS EC2, Azure VMs, or any Linux server:
<Tabs items={['DigitalOcean', 'AWS EC2', 'Azure VM']}>
<Tab value="DigitalOcean">
**Recommended:** 16 GB RAM Droplet, Ubuntu 24.04
```bash
# Create Droplet via console, then SSH in
ssh root@your-droplet-ip
```
</Tab>
<Tab value="AWS EC2">
**Recommended:** t3.xlarge (16 GB RAM), Ubuntu 24.04
```bash
ssh -i your-key.pem ubuntu@your-ec2-ip
```
</Tab>
<Tab value="Azure VM">
**Recommended:** Standard_D4s_v3 (16 GB RAM), Ubuntu 24.04
```bash
ssh azureuser@your-vm-ip
```
</Tab>
</Tabs>
### Install Docker
```bash
# Install Docker (official method)
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker $USER
# Logout and reconnect, then verify
docker --version
```
### Deploy Sim Studio
```bash
git clone https://github.com/simstudioai/sim.git && cd sim
# Create .env with secrets
cat > .env << EOF
DATABASE_URL=postgresql://postgres:postgres@db:5432/simstudio
BETTER_AUTH_SECRET=$(openssl rand -hex 32)
ENCRYPTION_KEY=$(openssl rand -hex 32)
INTERNAL_API_SECRET=$(openssl rand -hex 32)
NEXT_PUBLIC_APP_URL=https://sim.yourdomain.com
BETTER_AUTH_URL=https://sim.yourdomain.com
NEXT_PUBLIC_SOCKET_URL=https://sim.yourdomain.com
EOF
# Start
docker compose -f docker-compose.prod.yml up -d
```
### SSL with Caddy
```bash
# Install Caddy
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update && sudo apt install caddy
# Configure (replace domain)
echo 'sim.yourdomain.com {
reverse_proxy localhost:3000
handle /socket.io/* {
reverse_proxy localhost:3002
}
}' | sudo tee /etc/caddy/Caddyfile
sudo systemctl restart caddy
```
Point your domain's DNS A record to your server IP.
## Kubernetes (EKS, AKS, GKE)
See the [Kubernetes guide](/self-hosting/kubernetes) for Helm deployment on managed Kubernetes.
## Managed Database (Optional)
For production, use a managed PostgreSQL service:
- **AWS RDS** / **Azure Database** / **Cloud SQL** - Enable pgvector extension
- **Supabase** / **Neon** - pgvector included
Set `DATABASE_URL` in your environment:
```bash
DATABASE_URL="postgresql://user:pass@host:5432/db?sslmode=require"
```

View File

@@ -0,0 +1,110 @@
---
title: Troubleshooting
description: Common issues and solutions
---
## Database Connection Failed
```bash
# Check database is running
docker compose ps db
# Test connection
docker compose exec db psql -U postgres -c "SELECT 1"
```
Verify `DATABASE_URL` format: `postgresql://user:pass@host:5432/database`
## Ollama Models Not Showing
Inside Docker, `localhost` = the container, not your host machine.
```bash
# For host-machine Ollama, use:
OLLAMA_URL=http://host.docker.internal:11434 # macOS/Windows
OLLAMA_URL=http://192.168.1.x:11434 # Linux (use actual IP)
```
## WebSocket/Realtime Not Working
1. Check `NEXT_PUBLIC_SOCKET_URL` matches your domain
2. Verify realtime service is running: `docker compose ps realtime`
3. Ensure reverse proxy passes WebSocket upgrades (see [Docker guide](/self-hosting/docker))
## 502 Bad Gateway
```bash
# Check app is running
docker compose ps simstudio
docker compose logs simstudio
# Common causes: out of memory, database not ready
```
## Migration Errors
```bash
# View migration logs
docker compose logs migrations
# Run manually
docker compose exec simstudio bun run db:migrate
```
## pgvector Not Found
Use the correct PostgreSQL image:
```yaml
image: pgvector/pgvector:pg17 # NOT postgres:17
```
## Certificate Errors (CERT_HAS_EXPIRED)
If you see SSL certificate errors when calling external APIs:
```bash
# Update CA certificates in container
docker compose exec simstudio apt-get update && apt-get install -y ca-certificates
# Or set in environment (not recommended for production)
NODE_TLS_REJECT_UNAUTHORIZED=0
```
## Blank Page After Login
1. Check browser console for errors
2. Verify `NEXT_PUBLIC_APP_URL` matches your actual domain
3. Clear browser cookies and local storage
4. Check that all services are running: `docker compose ps`
## Windows-Specific Issues
**Turbopack errors on Windows:**
```bash
# Use WSL2 for better compatibility
wsl --install
# Or disable Turbopack in package.json
# Change "next dev --turbopack" to "next dev"
```
**Line ending issues:**
```bash
# Configure git to use LF
git config --global core.autocrlf input
```
## View Logs
```bash
# All services
docker compose logs -f
# Specific service
docker compose logs -f simstudio
```
## Getting Help
- [GitHub Issues](https://github.com/simstudioai/sim/issues)
- [Discord](https://discord.gg/Hr4UWYEcTT)

View File

@@ -0,0 +1,205 @@
---
title: Ahrefs
description: SEO analysis with Ahrefs
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="ahrefs"
color="#E0E0E0"
/>
{/* MANUAL-CONTENT-START:intro */}
[Ahrefs](https://ahrefs.com/) is a leading SEO toolset for analyzing websites, tracking rankings, monitoring backlinks, and researching keywords. It provides detailed insights into your own website as well as your competitors, helping you make data-driven decisions to improve your search visibility.
With the Ahrefs integration in Sim, you can:
- **Analyze Domain Rating & Authority**: Instantly check the Domain Rating (DR) and Ahrefs Rank of any website to gauge its authority.
- **Fetch Backlinks**: Retrieve a list of backlinks pointing to a site or specific URL, with details like anchor text, referring page DR, and more.
- **Get Backlink Statistics**: Access metrics on backlink types (dofollow, nofollow, text, image, redirect, etc.) for a domain or URL.
- **Explore Organic Keywords** *(planned)*: View keywords a domain ranks for and their positions in Google search results.
- **Discover Top Pages** *(planned)*: Identify the highest-performing pages by organic traffic and links.
These tools let your agents automate SEO research, monitor competitors, and generate reports—all as part of your workflow automations. To use the Ahrefs integration, youll need an Ahrefs Enterprise subscription with API access.
{/* MANUAL-CONTENT-END */}
## Usage Instructions
Integrate Ahrefs SEO tools into your workflow. Analyze domain ratings, backlinks, organic keywords, top pages, and more. Requires an Ahrefs Enterprise plan with API access.
## Tools
### `ahrefs_domain_rating`
Get the Domain Rating (DR) and Ahrefs Rank for a target domain. Domain Rating shows the strength of a website
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `target` | string | Yes | The target domain to analyze \(e.g., example.com\) |
| `date` | string | No | Date for historical data in YYYY-MM-DD format \(defaults to today\) |
| `apiKey` | string | Yes | Ahrefs API Key |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `domainRating` | number | Domain Rating score \(0-100\) |
| `ahrefsRank` | number | Ahrefs Rank - global ranking based on backlink profile strength |
### `ahrefs_backlinks`
Get a list of backlinks pointing to a target domain or URL. Returns details about each backlink including source URL, anchor text, and domain rating.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `target` | string | Yes | The target domain or URL to analyze |
| `mode` | string | No | Analysis mode: domain \(entire domain\), prefix \(URL prefix\), subdomains \(include all subdomains\), exact \(exact URL match\) |
| `date` | string | No | Date for historical data in YYYY-MM-DD format \(defaults to today\) |
| `limit` | number | No | Maximum number of results to return \(default: 100\) |
| `offset` | number | No | Number of results to skip for pagination |
| `apiKey` | string | Yes | Ahrefs API Key |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `backlinks` | array | List of backlinks pointing to the target |
### `ahrefs_backlinks_stats`
Get backlink statistics for a target domain or URL. Returns totals for different backlink types including dofollow, nofollow, text, image, and redirect links.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `target` | string | Yes | The target domain or URL to analyze |
| `mode` | string | No | Analysis mode: domain \(entire domain\), prefix \(URL prefix\), subdomains \(include all subdomains\), exact \(exact URL match\) |
| `date` | string | No | Date for historical data in YYYY-MM-DD format \(defaults to today\) |
| `apiKey` | string | Yes | Ahrefs API Key |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `stats` | object | Backlink statistics summary |
### `ahrefs_referring_domains`
Get a list of domains that link to a target domain or URL. Returns unique referring domains with their domain rating, backlink counts, and discovery dates.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `target` | string | Yes | The target domain or URL to analyze |
| `mode` | string | No | Analysis mode: domain \(entire domain\), prefix \(URL prefix\), subdomains \(include all subdomains\), exact \(exact URL match\) |
| `date` | string | No | Date for historical data in YYYY-MM-DD format \(defaults to today\) |
| `limit` | number | No | Maximum number of results to return \(default: 100\) |
| `offset` | number | No | Number of results to skip for pagination |
| `apiKey` | string | Yes | Ahrefs API Key |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `referringDomains` | array | List of domains linking to the target |
### `ahrefs_organic_keywords`
Get organic keywords that a target domain or URL ranks for in Google search results. Returns keyword details including search volume, ranking position, and estimated traffic.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `target` | string | Yes | The target domain or URL to analyze |
| `country` | string | No | Country code for search results \(e.g., us, gb, de\). Default: us |
| `mode` | string | No | Analysis mode: domain \(entire domain\), prefix \(URL prefix\), subdomains \(include all subdomains\), exact \(exact URL match\) |
| `date` | string | No | Date for historical data in YYYY-MM-DD format \(defaults to today\) |
| `limit` | number | No | Maximum number of results to return \(default: 100\) |
| `offset` | number | No | Number of results to skip for pagination |
| `apiKey` | string | Yes | Ahrefs API Key |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `keywords` | array | List of organic keywords the target ranks for |
### `ahrefs_top_pages`
Get the top pages of a target domain sorted by organic traffic. Returns page URLs with their traffic, keyword counts, and estimated traffic value.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `target` | string | Yes | The target domain to analyze |
| `country` | string | No | Country code for traffic data \(e.g., us, gb, de\). Default: us |
| `mode` | string | No | Analysis mode: domain \(entire domain\), prefix \(URL prefix\), subdomains \(include all subdomains\) |
| `date` | string | No | Date for historical data in YYYY-MM-DD format \(defaults to today\) |
| `limit` | number | No | Maximum number of results to return \(default: 100\) |
| `offset` | number | No | Number of results to skip for pagination |
| `select` | string | No | Comma-separated list of fields to return \(e.g., url,traffic,keywords,top_keyword,value\). Default: url,traffic,keywords,top_keyword,value |
| `apiKey` | string | Yes | Ahrefs API Key |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `pages` | array | List of top pages by organic traffic |
### `ahrefs_keyword_overview`
Get detailed metrics for a keyword including search volume, keyword difficulty, CPC, clicks, and traffic potential.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `keyword` | string | Yes | The keyword to analyze |
| `country` | string | No | Country code for keyword data \(e.g., us, gb, de\). Default: us |
| `apiKey` | string | Yes | Ahrefs API Key |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `overview` | object | Keyword metrics overview |
### `ahrefs_broken_backlinks`
Get a list of broken backlinks pointing to a target domain or URL. Useful for identifying link reclamation opportunities.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `target` | string | Yes | The target domain or URL to analyze |
| `mode` | string | No | Analysis mode: domain \(entire domain\), prefix \(URL prefix\), subdomains \(include all subdomains\), exact \(exact URL match\) |
| `date` | string | No | Date for historical data in YYYY-MM-DD format \(defaults to today\) |
| `limit` | number | No | Maximum number of results to return \(default: 100\) |
| `offset` | number | No | Number of results to skip for pagination |
| `apiKey` | string | Yes | Ahrefs API Key |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `brokenBacklinks` | array | List of broken backlinks |
## Notes
- Category: `tools`
- Type: `ahrefs`

View File

@@ -0,0 +1,186 @@
---
title: Cursor
description: Launch and manage Cursor cloud agents to work on GitHub repositories
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="cursor"
color="#1E1E1E"
/>
{/* MANUAL-CONTENT-START:intro */}
[Cursor](https://www.cursor.so/) is an AI IDE and cloud-based platform that lets you launch and manage powerful AI agents able to work directly on your GitHub repositories. Cursor agents can automate development tasks, enhance your team's productivity, and collaborate with you by making code changes, responding to natural language instructions, and maintaining conversation history about their activities.
With Cursor, you can:
- **Launch cloud agents for codebases**: Instantly create new AI agents that work on your repositories in the cloud
- **Delegate coding tasks using natural language**: Guide agents with written instructions, amendments, and clarifications
- **Monitor progress and outputs**: Retrieve agent status, view detailed results, and inspect current or completed tasks
- **Access full conversation history**: Review all prompts and AI responses for transparency and auditability
- **Control and manage agent lifecycle**: List active agents, terminate agents, and manage API-based agent launches and follow-ups
In Sim, the Cursor integration enables your agents and workflows to interact programmatically with Cursor cloud agents. This means you can use Sim to:
- List all cloud agents and browse their current state (`cursor_list_agents`)
- Retrieve up-to-date status and outputs for any agent (`cursor_get_agent`)
- View the full conversation history for any coding agent (`cursor_get_conversation`)
- Add follow-up instructions or new prompts to a running agent
- Manage and terminate agents as needed
This integration helps you combine the flexible intelligence of Sim agents with the powerful development automation capabilities of Cursor, making it possible to scale AI-driven development across your projects.
{/* MANUAL-CONTENT-END */}
## Usage Instructions
Interact with Cursor Cloud Agents API to launch AI agents that can work on your GitHub repositories. Supports launching agents, adding follow-up instructions, checking status, viewing conversations, and managing agent lifecycle.
## Tools
### `cursor_list_agents`
List all cloud agents for the authenticated user with optional pagination.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Cursor API key |
| `limit` | number | No | Number of agents to return \(default: 20, max: 100\) |
| `cursor` | string | No | Pagination cursor from previous response |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `content` | string | Human-readable list of agents |
| `metadata` | object | Agent list metadata |
### `cursor_get_agent`
Retrieve the current status and results of a cloud agent.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Cursor API key |
| `agentId` | string | Yes | Unique identifier for the cloud agent \(e.g., bc_abc123\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `content` | string | Human-readable agent details |
| `metadata` | object | Agent metadata |
### `cursor_get_conversation`
Retrieve the conversation history of a cloud agent, including all user prompts and assistant responses.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Cursor API key |
| `agentId` | string | Yes | Unique identifier for the cloud agent \(e.g., bc_abc123\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `content` | string | Human-readable conversation history |
| `metadata` | object | Conversation metadata |
### `cursor_launch_agent`
Start a new cloud agent to work on a GitHub repository with the given instructions.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Cursor API key |
| `repository` | string | Yes | GitHub repository URL \(e.g., https://github.com/your-org/your-repo\) |
| `ref` | string | No | Branch, tag, or commit to work from \(defaults to default branch\) |
| `promptText` | string | Yes | The instruction text for the agent |
| `promptImages` | string | No | JSON array of image objects with base64 data and dimensions |
| `model` | string | No | Model to use \(leave empty for auto-selection\) |
| `branchName` | string | No | Custom branch name for the agent to use |
| `autoCreatePr` | boolean | No | Automatically create a PR when the agent finishes |
| `openAsCursorGithubApp` | boolean | No | Open the PR as the Cursor GitHub App |
| `skipReviewerRequest` | boolean | No | Skip requesting reviewers on the PR |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `content` | string | Success message with agent details |
| `metadata` | object | Launch result metadata |
### `cursor_add_followup`
Add a follow-up instruction to an existing cloud agent.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Cursor API key |
| `agentId` | string | Yes | Unique identifier for the cloud agent \(e.g., bc_abc123\) |
| `followupPromptText` | string | Yes | The follow-up instruction text for the agent |
| `promptImages` | string | No | JSON array of image objects with base64 data and dimensions \(max 5\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `content` | string | Success message |
| `metadata` | object | Result metadata |
### `cursor_stop_agent`
Stop a running cloud agent. This pauses the agent without deleting it.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Cursor API key |
| `agentId` | string | Yes | Unique identifier for the cloud agent \(e.g., bc_abc123\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `content` | string | Success message |
| `metadata` | object | Result metadata |
### `cursor_delete_agent`
Permanently delete a cloud agent. This action cannot be undone.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Cursor API key |
| `agentId` | string | Yes | Unique identifier for the cloud agent \(e.g., bc_abc123\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `content` | string | Success message |
| `metadata` | object | Result metadata |
## Notes
- Category: `tools`
- Type: `cursor`

View File

@@ -0,0 +1,307 @@
---
title: Datadog
description: Monitor infrastructure, applications, and logs with Datadog
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="datadog"
color="#632CA6"
/>
{/* MANUAL-CONTENT-START:intro */}
[Datadog](https://datadoghq.com/) is a comprehensive monitoring and analytics platform for infrastructure, applications, logs, and more. It enables organizations to gain real-time visibility into the health and performance of systems, detect anomalies, and automate incident response.
With Datadog, you can:
- **Monitor metrics**: Collect, visualize, and analyze metrics from servers, cloud services, and custom applications.
- **Query time series data**: Run advanced queries on performance metrics for trend analysis and reporting.
- **Manage monitors and events**: Set up monitors to detect issues, trigger alerts, and create events for observability.
- **Handle downtimes**: Schedule and programmatically manage planned downtimes to suppress alerts during maintenance.
- **Analyze logs and traces** *(with additional setup in Datadog)*: Centralize and inspect logs or distributed traces for deeper troubleshooting.
Sims Datadog integration lets your agents automate these operations and interact with your Datadog account programmatically. Use it to submit custom metrics, query timeseries data, manage monitors, create events, and streamline your monitoring workflows directly within Sim automations.
{/* MANUAL-CONTENT-END */}
## Usage Instructions
Integrate Datadog monitoring into workflows. Submit metrics, manage monitors, query logs, create events, handle downtimes, and more.
## Tools
### `datadog_submit_metrics`
Submit custom metrics to Datadog. Use for tracking application performance, business metrics, or custom monitoring data.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `series` | string | Yes | JSON array of metric series to submit. Each series should include metric name, type \(gauge/rate/count\), points \(timestamp/value pairs\), and optional tags. |
| `apiKey` | string | Yes | Datadog API key |
| `site` | string | No | Datadog site/region \(default: datadoghq.com\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the metrics were submitted successfully |
| `errors` | array | Any errors that occurred during submission |
### `datadog_query_timeseries`
Query metric timeseries data from Datadog. Use for analyzing trends, creating reports, or retrieving metric values.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `query` | string | Yes | Datadog metrics query \(e.g., "avg:system.cpu.user\{*\}"\) |
| `from` | number | Yes | Start time as Unix timestamp in seconds |
| `to` | number | Yes | End time as Unix timestamp in seconds |
| `apiKey` | string | Yes | Datadog API key |
| `applicationKey` | string | Yes | Datadog Application key |
| `site` | string | No | Datadog site/region \(default: datadoghq.com\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `series` | array | Array of timeseries data with metric name, tags, and data points |
| `status` | string | Query status |
### `datadog_create_event`
Post an event to the Datadog event stream. Use for deployment notifications, alerts, or any significant occurrences.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `title` | string | Yes | Event title |
| `text` | string | Yes | Event body/description. Supports markdown. |
| `alertType` | string | No | Alert type: error, warning, info, success, user_update, recommendation, or snapshot |
| `priority` | string | No | Event priority: normal or low |
| `host` | string | No | Host name to associate with this event |
| `tags` | string | No | Comma-separated list of tags \(e.g., "env:production,service:api"\) |
| `aggregationKey` | string | No | Key to aggregate events together |
| `sourceTypeName` | string | No | Source type name for the event |
| `dateHappened` | number | No | Unix timestamp when the event occurred \(defaults to now\) |
| `apiKey` | string | Yes | Datadog API key |
| `site` | string | No | Datadog site/region \(default: datadoghq.com\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `event` | object | The created event details |
### `datadog_create_monitor`
Create a new monitor/alert in Datadog. Monitors can track metrics, service checks, events, and more.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `name` | string | Yes | Monitor name |
| `type` | string | Yes | Monitor type: metric alert, service check, event alert, process alert, log alert, query alert, composite, synthetics alert, slo alert |
| `query` | string | Yes | Monitor query \(e.g., "avg\(last_5m\):avg:system.cpu.idle\{*\} &lt; 20"\) |
| `message` | string | No | Message to include with notifications. Can include @-mentions and markdown. |
| `tags` | string | No | Comma-separated list of tags |
| `priority` | number | No | Monitor priority \(1-5, where 1 is highest\) |
| `options` | string | No | JSON string of monitor options \(thresholds, notify_no_data, renotify_interval, etc.\) |
| `apiKey` | string | Yes | Datadog API key |
| `applicationKey` | string | Yes | Datadog Application key |
| `site` | string | No | Datadog site/region \(default: datadoghq.com\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `monitor` | object | The created monitor details |
### `datadog_get_monitor`
Retrieve details of a specific monitor by ID.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `monitorId` | string | Yes | The ID of the monitor to retrieve |
| `groupStates` | string | No | Comma-separated group states to include: alert, warn, no data, ok |
| `withDowntimes` | boolean | No | Include downtime data with the monitor |
| `apiKey` | string | Yes | Datadog API key |
| `applicationKey` | string | Yes | Datadog Application key |
| `site` | string | No | Datadog site/region \(default: datadoghq.com\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `monitor` | object | The monitor details |
### `datadog_list_monitors`
List all monitors in Datadog with optional filtering by name, tags, or state.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `groupStates` | string | No | Comma-separated group states to filter by: alert, warn, no data, ok |
| `name` | string | No | Filter monitors by name \(partial match\) |
| `tags` | string | No | Comma-separated list of tags to filter by |
| `monitorTags` | string | No | Comma-separated list of monitor tags to filter by |
| `withDowntimes` | boolean | No | Include downtime data with monitors |
| `page` | number | No | Page number for pagination \(0-indexed\) |
| `pageSize` | number | No | Number of monitors per page \(max 1000\) |
| `apiKey` | string | Yes | Datadog API key |
| `applicationKey` | string | Yes | Datadog Application key |
| `site` | string | No | Datadog site/region \(default: datadoghq.com\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `monitors` | array | List of monitors |
### `datadog_mute_monitor`
Mute a monitor to temporarily suppress notifications.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `monitorId` | string | Yes | The ID of the monitor to mute |
| `scope` | string | No | Scope to mute \(e.g., "host:myhost"\). If not specified, mutes all scopes. |
| `end` | number | No | Unix timestamp when the mute should end. If not specified, mutes indefinitely. |
| `apiKey` | string | Yes | Datadog API key |
| `applicationKey` | string | Yes | Datadog Application key |
| `site` | string | No | Datadog site/region \(default: datadoghq.com\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the monitor was successfully muted |
### `datadog_query_logs`
Search and retrieve logs from Datadog. Use for troubleshooting, analysis, or monitoring.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `query` | string | Yes | Log search query \(e.g., "service:web-app status:error"\) |
| `from` | string | Yes | Start time in ISO-8601 format or relative \(e.g., "now-1h"\) |
| `to` | string | Yes | End time in ISO-8601 format or relative \(e.g., "now"\) |
| `limit` | number | No | Maximum number of logs to return \(default: 50, max: 1000\) |
| `sort` | string | No | Sort order: timestamp \(oldest first\) or -timestamp \(newest first\) |
| `indexes` | string | No | Comma-separated list of log indexes to search |
| `apiKey` | string | Yes | Datadog API key |
| `applicationKey` | string | Yes | Datadog Application key |
| `site` | string | No | Datadog site/region \(default: datadoghq.com\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `logs` | array | List of log entries |
### `datadog_send_logs`
Send log entries to Datadog for centralized logging and analysis.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `logs` | string | Yes | JSON array of log entries. Each entry should have message and optionally ddsource, ddtags, hostname, service. |
| `apiKey` | string | Yes | Datadog API key |
| `site` | string | No | Datadog site/region \(default: datadoghq.com\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the logs were sent successfully |
### `datadog_create_downtime`
Schedule a downtime to suppress monitor notifications during maintenance windows.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `scope` | string | Yes | Scope to apply downtime to \(e.g., "host:myhost", "env:production", or "*" for all\) |
| `message` | string | No | Message to display during downtime |
| `start` | number | No | Unix timestamp for downtime start \(defaults to now\) |
| `end` | number | No | Unix timestamp for downtime end |
| `timezone` | string | No | Timezone for the downtime \(e.g., "America/New_York"\) |
| `monitorId` | string | No | Specific monitor ID to mute |
| `monitorTags` | string | No | Comma-separated monitor tags to match \(e.g., "team:backend,priority:high"\) |
| `muteFirstRecoveryNotification` | boolean | No | Mute the first recovery notification |
| `apiKey` | string | Yes | Datadog API key |
| `applicationKey` | string | Yes | Datadog Application key |
| `site` | string | No | Datadog site/region \(default: datadoghq.com\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `downtime` | object | The created downtime details |
### `datadog_list_downtimes`
List all scheduled downtimes in Datadog.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `currentOnly` | boolean | No | Only return currently active downtimes |
| `monitorId` | string | No | Filter by monitor ID |
| `apiKey` | string | Yes | Datadog API key |
| `applicationKey` | string | Yes | Datadog Application key |
| `site` | string | No | Datadog site/region \(default: datadoghq.com\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `downtimes` | array | List of downtimes |
### `datadog_cancel_downtime`
Cancel a scheduled downtime.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `downtimeId` | string | Yes | The ID of the downtime to cancel |
| `apiKey` | string | Yes | Datadog API key |
| `applicationKey` | string | Yes | Datadog Application key |
| `site` | string | No | Datadog site/region \(default: datadoghq.com\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the downtime was successfully canceled |
## Notes
- Category: `tools`
- Type: `datadog`

View File

@@ -0,0 +1,224 @@
---
title: Dropbox
description: Upload, download, share, and manage files in Dropbox
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="dropbox"
color="#0061FF"
/>
{/* MANUAL-CONTENT-START:intro */}
[Dropbox](https://dropbox.com/) is a popular cloud storage and collaboration platform that enables individuals and teams to securely store, access, and share files from anywhere. Dropbox is designed for easy file management, syncing, and powerful collaboration, whether you're working solo or with a group.
With Dropbox in Sim, you can:
- **Upload and download files**: Seamlessly upload any file to your Dropbox or retrieve content on demand
- **List folder contents**: Browse the files and folders within any Dropbox directory
- **Create new folders**: Organize your files by programmatically creating new folders in your Dropbox
- **Search files and folders**: Locate documents, images, or other items by name or content
- **Generate shared links**: Quickly create shareable public or private links for files and folders
- **Manage files**: Move, delete, or rename files and folders as part of automated workflows
These capabilities allow your Sim agents to automate Dropbox operations directly within your workflows — from backing up important files to distributing content and maintaining organized folders. Use Dropbox as both a source and destination for files, enabling seamless cloud storage management as part of your business processes.
{/* MANUAL-CONTENT-END */}
## Usage Instructions
Integrate Dropbox into your workflow for file management, sharing, and collaboration. Upload files, download content, create folders, manage shared links, and more.
## Tools
### `dropbox_upload`
Upload a file to Dropbox
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `path` | string | Yes | The path in Dropbox where the file should be saved \(e.g., /folder/document.pdf\) |
| `fileContent` | string | Yes | The base64 encoded content of the file to upload |
| `fileName` | string | No | Optional filename \(used if path is a folder\) |
| `mode` | string | No | Write mode: add \(default\) or overwrite |
| `autorename` | boolean | No | If true, rename the file if there is a conflict |
| `mute` | boolean | No | If true, don't notify the user about this upload |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `file` | object | The uploaded file metadata |
### `dropbox_download`
Download a file from Dropbox and get a temporary link
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `path` | string | Yes | The path of the file to download \(e.g., /folder/document.pdf\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `file` | object | The file metadata |
### `dropbox_list_folder`
List the contents of a folder in Dropbox
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `path` | string | Yes | The path of the folder to list \(use "" for root\) |
| `recursive` | boolean | No | If true, list contents recursively |
| `includeDeleted` | boolean | No | If true, include deleted files/folders |
| `includeMediaInfo` | boolean | No | If true, include media info for photos/videos |
| `limit` | number | No | Maximum number of results to return \(default: 500\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `entries` | array | List of files and folders in the directory |
### `dropbox_create_folder`
Create a new folder in Dropbox
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `path` | string | Yes | The path where the folder should be created \(e.g., /new-folder\) |
| `autorename` | boolean | No | If true, rename the folder if there is a conflict |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `folder` | object | The created folder metadata |
### `dropbox_delete`
Delete a file or folder in Dropbox (moves to trash)
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `path` | string | Yes | The path of the file or folder to delete |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `metadata` | object | Metadata of the deleted item |
### `dropbox_copy`
Copy a file or folder in Dropbox
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `fromPath` | string | Yes | The source path of the file or folder to copy |
| `toPath` | string | Yes | The destination path for the copied file or folder |
| `autorename` | boolean | No | If true, rename the file if there is a conflict at destination |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `metadata` | object | Metadata of the copied item |
### `dropbox_move`
Move or rename a file or folder in Dropbox
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `fromPath` | string | Yes | The source path of the file or folder to move |
| `toPath` | string | Yes | The destination path for the moved file or folder |
| `autorename` | boolean | No | If true, rename the file if there is a conflict at destination |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `metadata` | object | Metadata of the moved item |
### `dropbox_get_metadata`
Get metadata for a file or folder in Dropbox
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `path` | string | Yes | The path of the file or folder to get metadata for |
| `includeMediaInfo` | boolean | No | If true, include media info for photos/videos |
| `includeDeleted` | boolean | No | If true, include deleted files in results |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `metadata` | object | Metadata for the file or folder |
### `dropbox_create_shared_link`
Create a shareable link for a file or folder in Dropbox
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `path` | string | Yes | The path of the file or folder to share |
| `requestedVisibility` | string | No | Visibility: public, team_only, or password |
| `linkPassword` | string | No | Password for the shared link \(only if visibility is password\) |
| `expires` | string | No | Expiration date in ISO 8601 format \(e.g., 2025-12-31T23:59:59Z\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `sharedLink` | object | The created shared link |
### `dropbox_search`
Search for files and folders in Dropbox
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `query` | string | Yes | The search query |
| `path` | string | No | Limit search to a specific folder path |
| `fileExtensions` | string | No | Comma-separated list of file extensions to filter by \(e.g., pdf,xlsx\) |
| `maxResults` | number | No | Maximum number of results to return \(default: 100\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `matches` | array | Search results |
## Notes
- Category: `tools`
- Type: `dropbox`

View File

@@ -0,0 +1,68 @@
---
title: DuckDuckGo
description: Search with DuckDuckGo
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="duckduckgo"
color="#FFFFFF"
/>
{/* MANUAL-CONTENT-START:intro */}
[DuckDuckGo](https://duckduckgo.com/) is a privacy-focused web search engine that delivers instant answers, abstracts, related topics, and more — without tracking you or your searches. DuckDuckGo makes it easy to find information without any user profiling or targeted ads.
With DuckDuckGo in Sim, you can:
- **Search the web**: Instantly find answers, facts, and overviews for a given search query
- **Get direct answers**: Retrieve specific responses for calculations, conversions, or factual queries
- **Access abstracts**: Receive short summaries or descriptions for your search topics
- **Fetch related topics**: Discover links and references relevant to your search
- **Filter output**: Optionally remove HTML or skip disambiguation for cleaner results
These features enable your Sim agents to automate access to fresh web knowledge — from surfacing facts in a workflow, to enriching documents and analysis with up-to-date information. Because DuckDuckGos Instant Answers API is open and does not require an API key, its simple and privacy-safe to integrate into your automated business processes.
{/* MANUAL-CONTENT-END */}
## Usage Instructions
Search the web using DuckDuckGo Instant Answers API. Returns instant answers, abstracts, related topics, and more. Free to use without an API key.
## Tools
### `duckduckgo_search`
Search the web using DuckDuckGo Instant Answers API. Returns instant answers, abstracts, and related topics for your query. Free to use without an API key.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `query` | string | Yes | The search query to execute |
| `noHtml` | boolean | No | Remove HTML from text in results \(default: true\) |
| `skipDisambig` | boolean | No | Skip disambiguation results \(default: false\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `heading` | string | The heading/title of the instant answer |
| `abstract` | string | A short abstract summary of the topic |
| `abstractText` | string | Plain text version of the abstract |
| `abstractSource` | string | The source of the abstract \(e.g., Wikipedia\) |
| `abstractURL` | string | URL to the source of the abstract |
| `image` | string | URL to an image related to the topic |
| `answer` | string | Direct answer if available \(e.g., for calculations\) |
| `answerType` | string | Type of the answer \(e.g., calc, ip, etc.\) |
| `type` | string | Response type: A \(article\), D \(disambiguation\), C \(category\), N \(name\), E \(exclusive\) |
| `relatedTopics` | array | Array of related topics with URLs and descriptions |
## Notes
- Category: `tools`
- Type: `duckduckgo`

View File

@@ -0,0 +1,370 @@
---
title: Elasticsearch
description: Search, index, and manage data in Elasticsearch
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="elasticsearch"
color="#E0E0E0"
/>
{/* MANUAL-CONTENT-START:intro */}
[Elasticsearch](https://www.elastic.co/elasticsearch/) is a powerful distributed search and analytics engine that enables you to index, search, and analyze large volumes of data in real time. Its widely used for powering search features, log and event data analytics, observability, and more.
With Elasticsearch in Sim, you gain programmatic access to core Elasticsearch capabilities, including:
- **Search documents**: Perform advanced searches on structured or unstructured text using Query DSL, with support for sorting, pagination, and field selection.
- **Index documents**: Add new documents or update existing ones in any Elasticsearch index for immediate retrieval and analysis.
- **Get, update, or delete documents**: Retrieve, modify, or remove specific documents by ID.
- **Bulk operations**: Execute multiple indexing or update actions in a single request for high-throughput data processing.
- **Manage indexes**: Create, delete, or get details about indexes as part of your workflow automation.
- **Cluster monitoring**: Check the health and stats of your Elasticsearch deployment.
Sim's Elasticsearch tools work with both self-hosted and Elastic Cloud environments. Integrate Elasticsearch into your agent workflows to automate data ingestion, search across vast datasets, run reporting, or build custom search-powered applications all without manual intervention.
{/* MANUAL-CONTENT-END */}
## Usage Instructions
Integrate Elasticsearch into workflows for powerful search, indexing, and data management. Supports document CRUD operations, advanced search queries, bulk operations, index management, and cluster monitoring. Works with both self-hosted and Elastic Cloud deployments.
## Tools
### `elasticsearch_search`
Search documents in Elasticsearch using Query DSL. Returns matching documents with scores and metadata.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `deploymentType` | string | Yes | Deployment type: self_hosted or cloud |
| `host` | string | No | Elasticsearch host URL \(for self-hosted\) |
| `cloudId` | string | No | Elastic Cloud ID \(for cloud deployments\) |
| `authMethod` | string | Yes | Authentication method: api_key or basic_auth |
| `apiKey` | string | No | Elasticsearch API key |
| `username` | string | No | Username for basic auth |
| `password` | string | No | Password for basic auth |
| `index` | string | Yes | Index name to search |
| `query` | string | No | Query DSL as JSON string |
| `from` | number | No | Starting offset for pagination \(default: 0\) |
| `size` | number | No | Number of results to return \(default: 10\) |
| `sort` | string | No | Sort specification as JSON string |
| `sourceIncludes` | string | No | Comma-separated list of fields to include in _source |
| `sourceExcludes` | string | No | Comma-separated list of fields to exclude from _source |
| `trackTotalHits` | boolean | No | Track accurate total hit count \(default: true\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `took` | number | Time in milliseconds the search took |
| `timed_out` | boolean | Whether the search timed out |
| `hits` | object | Search results with total count and matching documents |
| `aggregations` | json | Aggregation results if any |
### `elasticsearch_index_document`
Index (create or update) a document in Elasticsearch.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `deploymentType` | string | Yes | Deployment type: self_hosted or cloud |
| `host` | string | No | Elasticsearch host URL \(for self-hosted\) |
| `cloudId` | string | No | Elastic Cloud ID \(for cloud deployments\) |
| `authMethod` | string | Yes | Authentication method: api_key or basic_auth |
| `apiKey` | string | No | Elasticsearch API key |
| `username` | string | No | Username for basic auth |
| `password` | string | No | Password for basic auth |
| `index` | string | Yes | Target index name |
| `documentId` | string | No | Document ID \(auto-generated if not provided\) |
| `document` | string | Yes | Document body as JSON string |
| `refresh` | string | No | Refresh policy: true, false, or wait_for |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `_index` | string | Index where the document was stored |
| `_id` | string | Document ID |
| `_version` | number | Document version |
| `result` | string | Operation result \(created or updated\) |
### `elasticsearch_get_document`
Retrieve a document by ID from Elasticsearch.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `deploymentType` | string | Yes | Deployment type: self_hosted or cloud |
| `host` | string | No | Elasticsearch host URL \(for self-hosted\) |
| `cloudId` | string | No | Elastic Cloud ID \(for cloud deployments\) |
| `authMethod` | string | Yes | Authentication method: api_key or basic_auth |
| `apiKey` | string | No | Elasticsearch API key |
| `username` | string | No | Username for basic auth |
| `password` | string | No | Password for basic auth |
| `index` | string | Yes | Index name |
| `documentId` | string | Yes | Document ID to retrieve |
| `sourceIncludes` | string | No | Comma-separated list of fields to include |
| `sourceExcludes` | string | No | Comma-separated list of fields to exclude |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `_index` | string | Index name |
| `_id` | string | Document ID |
| `_version` | number | Document version |
| `found` | boolean | Whether the document was found |
| `_source` | json | Document content |
### `elasticsearch_update_document`
Partially update a document in Elasticsearch using doc merge.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `deploymentType` | string | Yes | Deployment type: self_hosted or cloud |
| `host` | string | No | Elasticsearch host URL \(for self-hosted\) |
| `cloudId` | string | No | Elastic Cloud ID \(for cloud deployments\) |
| `authMethod` | string | Yes | Authentication method: api_key or basic_auth |
| `apiKey` | string | No | Elasticsearch API key |
| `username` | string | No | Username for basic auth |
| `password` | string | No | Password for basic auth |
| `index` | string | Yes | Index name |
| `documentId` | string | Yes | Document ID to update |
| `document` | string | Yes | Partial document to merge as JSON string |
| `retryOnConflict` | number | No | Number of retries on version conflict |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `_index` | string | Index name |
| `_id` | string | Document ID |
| `_version` | number | New document version |
| `result` | string | Operation result \(updated or noop\) |
### `elasticsearch_delete_document`
Delete a document from Elasticsearch by ID.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `deploymentType` | string | Yes | Deployment type: self_hosted or cloud |
| `host` | string | No | Elasticsearch host URL \(for self-hosted\) |
| `cloudId` | string | No | Elastic Cloud ID \(for cloud deployments\) |
| `authMethod` | string | Yes | Authentication method: api_key or basic_auth |
| `apiKey` | string | No | Elasticsearch API key |
| `username` | string | No | Username for basic auth |
| `password` | string | No | Password for basic auth |
| `index` | string | Yes | Index name |
| `documentId` | string | Yes | Document ID to delete |
| `refresh` | string | No | Refresh policy: true, false, or wait_for |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `_index` | string | Index name |
| `_id` | string | Document ID |
| `_version` | number | Document version |
| `result` | string | Operation result \(deleted or not_found\) |
### `elasticsearch_bulk`
Perform multiple index, create, delete, or update operations in a single request for high performance.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `deploymentType` | string | Yes | Deployment type: self_hosted or cloud |
| `host` | string | No | Elasticsearch host URL \(for self-hosted\) |
| `cloudId` | string | No | Elastic Cloud ID \(for cloud deployments\) |
| `authMethod` | string | Yes | Authentication method: api_key or basic_auth |
| `apiKey` | string | No | Elasticsearch API key |
| `username` | string | No | Username for basic auth |
| `password` | string | No | Password for basic auth |
| `index` | string | No | Default index for operations that do not specify one |
| `operations` | string | Yes | Bulk operations as NDJSON string \(newline-delimited JSON\) |
| `refresh` | string | No | Refresh policy: true, false, or wait_for |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `took` | number | Time in milliseconds the bulk operation took |
| `errors` | boolean | Whether any operation had an error |
| `items` | array | Results for each operation |
### `elasticsearch_count`
Count documents matching a query in Elasticsearch.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `deploymentType` | string | Yes | Deployment type: self_hosted or cloud |
| `host` | string | No | Elasticsearch host URL \(for self-hosted\) |
| `cloudId` | string | No | Elastic Cloud ID \(for cloud deployments\) |
| `authMethod` | string | Yes | Authentication method: api_key or basic_auth |
| `apiKey` | string | No | Elasticsearch API key |
| `username` | string | No | Username for basic auth |
| `password` | string | No | Password for basic auth |
| `index` | string | Yes | Index name to count documents in |
| `query` | string | No | Optional query to filter documents \(JSON string\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `count` | number | Number of documents matching the query |
| `_shards` | object | Shard statistics |
### `elasticsearch_create_index`
Create a new index with optional settings and mappings.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `deploymentType` | string | Yes | Deployment type: self_hosted or cloud |
| `host` | string | No | Elasticsearch host URL \(for self-hosted\) |
| `cloudId` | string | No | Elastic Cloud ID \(for cloud deployments\) |
| `authMethod` | string | Yes | Authentication method: api_key or basic_auth |
| `apiKey` | string | No | Elasticsearch API key |
| `username` | string | No | Username for basic auth |
| `password` | string | No | Password for basic auth |
| `index` | string | Yes | Index name to create |
| `settings` | string | No | Index settings as JSON string |
| `mappings` | string | No | Index mappings as JSON string |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `acknowledged` | boolean | Whether the request was acknowledged |
| `shards_acknowledged` | boolean | Whether the shards were acknowledged |
| `index` | string | Created index name |
### `elasticsearch_delete_index`
Delete an index and all its documents. This operation is irreversible.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `deploymentType` | string | Yes | Deployment type: self_hosted or cloud |
| `host` | string | No | Elasticsearch host URL \(for self-hosted\) |
| `cloudId` | string | No | Elastic Cloud ID \(for cloud deployments\) |
| `authMethod` | string | Yes | Authentication method: api_key or basic_auth |
| `apiKey` | string | No | Elasticsearch API key |
| `username` | string | No | Username for basic auth |
| `password` | string | No | Password for basic auth |
| `index` | string | Yes | Index name to delete |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `acknowledged` | boolean | Whether the deletion was acknowledged |
### `elasticsearch_get_index`
Retrieve index information including settings, mappings, and aliases.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `deploymentType` | string | Yes | Deployment type: self_hosted or cloud |
| `host` | string | No | Elasticsearch host URL \(for self-hosted\) |
| `cloudId` | string | No | Elastic Cloud ID \(for cloud deployments\) |
| `authMethod` | string | Yes | Authentication method: api_key or basic_auth |
| `apiKey` | string | No | Elasticsearch API key |
| `username` | string | No | Username for basic auth |
| `password` | string | No | Password for basic auth |
| `index` | string | Yes | Index name to retrieve info for |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `index` | json | Index information including aliases, mappings, and settings |
### `elasticsearch_cluster_health`
Get the health status of the Elasticsearch cluster.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `deploymentType` | string | Yes | Deployment type: self_hosted or cloud |
| `host` | string | No | Elasticsearch host URL \(for self-hosted\) |
| `cloudId` | string | No | Elastic Cloud ID \(for cloud deployments\) |
| `authMethod` | string | Yes | Authentication method: api_key or basic_auth |
| `apiKey` | string | No | Elasticsearch API key |
| `username` | string | No | Username for basic auth |
| `password` | string | No | Password for basic auth |
| `waitForStatus` | string | No | Wait until cluster reaches this status: green, yellow, or red |
| `timeout` | string | No | Timeout for the wait operation \(e.g., 30s, 1m\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `cluster_name` | string | Name of the cluster |
| `status` | string | Cluster health status: green, yellow, or red |
| `number_of_nodes` | number | Total number of nodes in the cluster |
| `number_of_data_nodes` | number | Number of data nodes |
| `active_shards` | number | Number of active shards |
| `unassigned_shards` | number | Number of unassigned shards |
### `elasticsearch_cluster_stats`
Get comprehensive statistics about the Elasticsearch cluster.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `deploymentType` | string | Yes | Deployment type: self_hosted or cloud |
| `host` | string | No | Elasticsearch host URL \(for self-hosted\) |
| `cloudId` | string | No | Elastic Cloud ID \(for cloud deployments\) |
| `authMethod` | string | Yes | Authentication method: api_key or basic_auth |
| `apiKey` | string | No | Elasticsearch API key |
| `username` | string | No | Username for basic auth |
| `password` | string | No | Password for basic auth |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `cluster_name` | string | Name of the cluster |
| `status` | string | Cluster health status |
| `nodes` | object | Node statistics including count and versions |
| `indices` | object | Index statistics including document count and store size |
## Notes
- Category: `tools`
- Type: `elasticsearch`

View File

@@ -0,0 +1,434 @@
---
title: GitLab
description: Interact with GitLab projects, issues, merge requests, and pipelines
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="gitlab"
color="#E0E0E0"
/>
{/* MANUAL-CONTENT-START:intro */}
[GitLab](https://gitlab.com/) is a comprehensive DevOps platform that allows teams to manage, collaborate on, and automate their software development lifecycle. With GitLab, you can effortlessly handle source code management, CI/CD, reviews, and collaboration in a single application.
With GitLab in Sim, you can:
- **Manage projects and repositories**: List and retrieve your GitLab projects, access details, and organize your repositories
- **Work with issues**: List, create, and comment on issues to track work and collaborate effectively
- **Handle merge requests**: Review, create, and manage merge requests for code changes and peer reviews
- **Automate CI/CD pipelines**: Trigger, monitor, and interact with GitLab pipelines as part of your automation flows
- **Collaborate with comments**: Add comments to issues or merge requests for efficient communication within your team
Using Sims GitLab integration, your agents can programmatically interact with your GitLab projects. Automate project management, issue tracking, code reviews, and pipeline operations seamlessly in your workflows, optimizing your software development process and enhancing collaboration across your team.
{/* MANUAL-CONTENT-END */}
## Usage Instructions
Integrate GitLab into the workflow. Can manage projects, issues, merge requests, pipelines, and add comments. Supports all core GitLab DevOps operations.
## Tools
### `gitlab_list_projects`
List GitLab projects accessible to the authenticated user
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `owned` | boolean | No | Limit to projects owned by the current user |
| `membership` | boolean | No | Limit to projects the current user is a member of |
| `search` | string | No | Search projects by name |
| `visibility` | string | No | Filter by visibility \(public, internal, private\) |
| `orderBy` | string | No | Order by field \(id, name, path, created_at, updated_at, last_activity_at\) |
| `sort` | string | No | Sort direction \(asc, desc\) |
| `perPage` | number | No | Number of results per page \(default 20, max 100\) |
| `page` | number | No | Page number for pagination |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `projects` | array | List of GitLab projects |
| `total` | number | Total number of projects |
### `gitlab_get_project`
Get details of a specific GitLab project
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Project ID or URL-encoded path \(e.g., "namespace/project"\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `project` | object | The GitLab project details |
### `gitlab_list_issues`
List issues in a GitLab project
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Project ID or URL-encoded path |
| `state` | string | No | Filter by state \(opened, closed, all\) |
| `labels` | string | No | Comma-separated list of label names |
| `assigneeId` | number | No | Filter by assignee user ID |
| `milestoneTitle` | string | No | Filter by milestone title |
| `search` | string | No | Search issues by title and description |
| `orderBy` | string | No | Order by field \(created_at, updated_at\) |
| `sort` | string | No | Sort direction \(asc, desc\) |
| `perPage` | number | No | Number of results per page \(default 20, max 100\) |
| `page` | number | No | Page number for pagination |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `issues` | array | List of GitLab issues |
| `total` | number | Total number of issues |
### `gitlab_get_issue`
Get details of a specific GitLab issue
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Project ID or URL-encoded path |
| `issueIid` | number | Yes | Issue number within the project \(the # shown in GitLab UI\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `issue` | object | The GitLab issue details |
### `gitlab_create_issue`
Create a new issue in a GitLab project
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Project ID or URL-encoded path |
| `title` | string | Yes | Issue title |
| `description` | string | No | Issue description \(Markdown supported\) |
| `labels` | string | No | Comma-separated list of label names |
| `assigneeIds` | array | No | Array of user IDs to assign |
| `milestoneId` | number | No | Milestone ID to assign |
| `dueDate` | string | No | Due date in YYYY-MM-DD format |
| `confidential` | boolean | No | Whether the issue is confidential |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `issue` | object | The created GitLab issue |
### `gitlab_update_issue`
Update an existing issue in a GitLab project
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Project ID or URL-encoded path |
| `issueIid` | number | Yes | Issue internal ID \(IID\) |
| `title` | string | No | New issue title |
| `description` | string | No | New issue description \(Markdown supported\) |
| `stateEvent` | string | No | State event \(close or reopen\) |
| `labels` | string | No | Comma-separated list of label names |
| `assigneeIds` | array | No | Array of user IDs to assign |
| `milestoneId` | number | No | Milestone ID to assign |
| `dueDate` | string | No | Due date in YYYY-MM-DD format |
| `confidential` | boolean | No | Whether the issue is confidential |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `issue` | object | The updated GitLab issue |
### `gitlab_delete_issue`
Delete an issue from a GitLab project
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Project ID or URL-encoded path |
| `issueIid` | number | Yes | Issue internal ID \(IID\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the issue was deleted successfully |
### `gitlab_create_issue_note`
Add a comment to a GitLab issue
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Project ID or URL-encoded path |
| `issueIid` | number | Yes | Issue internal ID \(IID\) |
| `body` | string | Yes | Comment body \(Markdown supported\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `note` | object | The created comment |
### `gitlab_list_merge_requests`
List merge requests in a GitLab project
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Project ID or URL-encoded path |
| `state` | string | No | Filter by state \(opened, closed, merged, all\) |
| `labels` | string | No | Comma-separated list of label names |
| `sourceBranch` | string | No | Filter by source branch |
| `targetBranch` | string | No | Filter by target branch |
| `orderBy` | string | No | Order by field \(created_at, updated_at\) |
| `sort` | string | No | Sort direction \(asc, desc\) |
| `perPage` | number | No | Number of results per page \(default 20, max 100\) |
| `page` | number | No | Page number for pagination |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `mergeRequests` | array | List of GitLab merge requests |
| `total` | number | Total number of merge requests |
### `gitlab_get_merge_request`
Get details of a specific GitLab merge request
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Project ID or URL-encoded path |
| `mergeRequestIid` | number | Yes | Merge request internal ID \(IID\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `mergeRequest` | object | The GitLab merge request details |
### `gitlab_create_merge_request`
Create a new merge request in a GitLab project
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Project ID or URL-encoded path |
| `sourceBranch` | string | Yes | Source branch name |
| `targetBranch` | string | Yes | Target branch name |
| `title` | string | Yes | Merge request title |
| `description` | string | No | Merge request description \(Markdown supported\) |
| `labels` | string | No | Comma-separated list of label names |
| `assigneeIds` | array | No | Array of user IDs to assign |
| `milestoneId` | number | No | Milestone ID to assign |
| `removeSourceBranch` | boolean | No | Delete source branch after merge |
| `squash` | boolean | No | Squash commits on merge |
| `draft` | boolean | No | Mark as draft \(work in progress\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `mergeRequest` | object | The created GitLab merge request |
### `gitlab_update_merge_request`
Update an existing merge request in a GitLab project
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Project ID or URL-encoded path |
| `mergeRequestIid` | number | Yes | Merge request internal ID \(IID\) |
| `title` | string | No | New merge request title |
| `description` | string | No | New merge request description |
| `stateEvent` | string | No | State event \(close or reopen\) |
| `labels` | string | No | Comma-separated list of label names |
| `assigneeIds` | array | No | Array of user IDs to assign |
| `milestoneId` | number | No | Milestone ID to assign |
| `targetBranch` | string | No | New target branch |
| `removeSourceBranch` | boolean | No | Delete source branch after merge |
| `squash` | boolean | No | Squash commits on merge |
| `draft` | boolean | No | Mark as draft \(work in progress\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `mergeRequest` | object | The updated GitLab merge request |
### `gitlab_merge_merge_request`
Merge a merge request in a GitLab project
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Project ID or URL-encoded path |
| `mergeRequestIid` | number | Yes | Merge request internal ID \(IID\) |
| `mergeCommitMessage` | string | No | Custom merge commit message |
| `squashCommitMessage` | string | No | Custom squash commit message |
| `squash` | boolean | No | Squash commits before merging |
| `shouldRemoveSourceBranch` | boolean | No | Delete source branch after merge |
| `mergeWhenPipelineSucceeds` | boolean | No | Merge when pipeline succeeds |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `mergeRequest` | object | The merged GitLab merge request |
### `gitlab_create_merge_request_note`
Add a comment to a GitLab merge request
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Project ID or URL-encoded path |
| `mergeRequestIid` | number | Yes | Merge request internal ID \(IID\) |
| `body` | string | Yes | Comment body \(Markdown supported\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `note` | object | The created comment |
### `gitlab_list_pipelines`
List pipelines in a GitLab project
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Project ID or URL-encoded path |
| `ref` | string | No | Filter by ref \(branch or tag\) |
| `status` | string | No | Filter by status \(created, waiting_for_resource, preparing, pending, running, success, failed, canceled, skipped, manual, scheduled\) |
| `orderBy` | string | No | Order by field \(id, status, ref, updated_at, user_id\) |
| `sort` | string | No | Sort direction \(asc, desc\) |
| `perPage` | number | No | Number of results per page \(default 20, max 100\) |
| `page` | number | No | Page number for pagination |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `pipelines` | array | List of GitLab pipelines |
| `total` | number | Total number of pipelines |
### `gitlab_get_pipeline`
Get details of a specific GitLab pipeline
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Project ID or URL-encoded path |
| `pipelineId` | number | Yes | Pipeline ID |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `pipeline` | object | The GitLab pipeline details |
### `gitlab_create_pipeline`
Trigger a new pipeline in a GitLab project
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Project ID or URL-encoded path |
| `ref` | string | Yes | Branch or tag to run the pipeline on |
| `variables` | array | No | Array of variables for the pipeline \(each with key, value, and optional variable_type\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `pipeline` | object | The created GitLab pipeline |
### `gitlab_retry_pipeline`
Retry a failed GitLab pipeline
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Project ID or URL-encoded path |
| `pipelineId` | number | Yes | Pipeline ID |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `pipeline` | object | The retried GitLab pipeline |
### `gitlab_cancel_pipeline`
Cancel a running GitLab pipeline
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Yes | Project ID or URL-encoded path |
| `pipelineId` | number | Yes | Pipeline ID |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `pipeline` | object | The cancelled GitLab pipeline |
## Notes
- Category: `tools`
- Type: `gitlab`

View File

@@ -45,9 +45,9 @@ Create a new event in Google Calendar
| `summary` | string | Yes | Event title/summary |
| `description` | string | No | Event description |
| `location` | string | No | Event location |
| `startDateTime` | string | Yes | Start date and time \(RFC3339 format, e.g., 2025-06-03T10:00:00-08:00\) |
| `endDateTime` | string | Yes | End date and time \(RFC3339 format, e.g., 2025-06-03T11:00:00-08:00\) |
| `timeZone` | string | No | Time zone \(e.g., America/Los_Angeles\) |
| `startDateTime` | string | Yes | Start date and time. MUST include timezone offset \(e.g., 2025-06-03T10:00:00-08:00\) OR provide timeZone parameter |
| `endDateTime` | string | Yes | End date and time. MUST include timezone offset \(e.g., 2025-06-03T11:00:00-08:00\) OR provide timeZone parameter |
| `timeZone` | string | No | Time zone \(e.g., America/Los_Angeles\). Required if datetime does not include offset. Defaults to America/Los_Angeles if not provided. |
| `attendees` | array | No | Array of attendee email addresses |
| `sendUpdates` | string | No | How to send updates to attendees: all, externalOnly, or none |

View File

@@ -113,8 +113,8 @@ List files and folders in Google Drive
| --------- | ---- | -------- | ----------- |
| `folderSelector` | string | No | Select the folder to list files from |
| `folderId` | string | No | The ID of the folder to list files from \(internal use\) |
| `query` | string | No | A query to filter the files |
| `pageSize` | number | No | The number of files to return |
| `query` | string | No | Search term to filter files by name \(e.g. "budget" finds files with "budget" in the name\). Do NOT use Google Drive query syntax here - just provide a plain search term. |
| `pageSize` | number | No | The maximum number of files to return \(default: 100\) |
| `pageToken` | string | No | The page token to use for pagination |
#### Output

View File

@@ -0,0 +1,221 @@
---
title: Google Groups
description: Manage Google Workspace Groups and their members
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="google_groups"
color="#E8F0FE"
/>
## Usage Instructions
Connect to Google Workspace to create, update, and manage groups and their members using the Admin SDK Directory API.
## Tools
### `google_groups_list_groups`
List all groups in a Google Workspace domain
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `customer` | string | No | Customer ID or "my_customer" for the authenticated user\'s domain |
| `domain` | string | No | Domain name to filter groups by |
| `maxResults` | number | No | Maximum number of results to return \(1-200\) |
| `pageToken` | string | No | Token for pagination |
| `query` | string | No | Search query to filter groups \(e.g., "email:admin*"\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `output` | json | Google Groups API response data |
### `google_groups_get_group`
Get details of a specific Google Group by email or group ID
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `groupKey` | string | Yes | Group email address or unique group ID |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `output` | json | Google Groups API response data |
### `google_groups_create_group`
Create a new Google Group in the domain
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `email` | string | Yes | Email address for the new group \(e.g., team@yourdomain.com\) |
| `name` | string | Yes | Display name for the group |
| `description` | string | No | Description of the group |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `output` | json | Google Groups API response data |
### `google_groups_update_group`
Update an existing Google Group
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `groupKey` | string | Yes | Group email address or unique group ID |
| `name` | string | No | New display name for the group |
| `description` | string | No | New description for the group |
| `email` | string | No | New email address for the group |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `output` | json | Google Groups API response data |
### `google_groups_delete_group`
Delete a Google Group
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `groupKey` | string | Yes | Group email address or unique group ID to delete |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `output` | json | Google Groups API response data |
### `google_groups_list_members`
List all members of a Google Group
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `groupKey` | string | Yes | Group email address or unique group ID |
| `maxResults` | number | No | Maximum number of results to return \(1-200\) |
| `pageToken` | string | No | Token for pagination |
| `roles` | string | No | Filter by roles \(comma-separated: OWNER, MANAGER, MEMBER\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `output` | json | Google Groups API response data |
### `google_groups_get_member`
Get details of a specific member in a Google Group
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `groupKey` | string | Yes | Group email address or unique group ID |
| `memberKey` | string | Yes | Member email address or unique member ID |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `output` | json | Google Groups API response data |
### `google_groups_add_member`
Add a new member to a Google Group
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `groupKey` | string | Yes | Group email address or unique group ID |
| `email` | string | Yes | Email address of the member to add |
| `role` | string | No | Role for the member \(MEMBER, MANAGER, or OWNER\). Defaults to MEMBER. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `output` | json | Google Groups API response data |
### `google_groups_remove_member`
Remove a member from a Google Group
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `groupKey` | string | Yes | Group email address or unique group ID |
| `memberKey` | string | Yes | Email address or unique ID of the member to remove |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `output` | json | Google Groups API response data |
### `google_groups_update_member`
Update a member
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `groupKey` | string | Yes | Group email address or unique group ID |
| `memberKey` | string | Yes | Member email address or unique member ID |
| `role` | string | Yes | New role for the member \(MEMBER, MANAGER, or OWNER\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `output` | json | Google Groups API response data |
### `google_groups_has_member`
Check if a user is a member of a Google Group
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `groupKey` | string | Yes | Group email address or unique group ID |
| `memberKey` | string | Yes | Member email address or unique member ID to check |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `output` | json | Google Groups API response data |
## Notes
- Category: `tools`
- Type: `google_groups`

View File

@@ -91,8 +91,8 @@ Read data from a Google Sheets spreadsheet
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `spreadsheetId` | string | Yes | The ID of the spreadsheet to read from |
| `range` | string | No | The range of cells to read from |
| `spreadsheetId` | string | Yes | The ID of the spreadsheet \(found in the URL: docs.google.com/spreadsheets/d/\{SPREADSHEET_ID\}/edit\). |
| `range` | string | No | The A1 notation range to read \(e.g. "Sheet1!A1:D10", "A1:B5"\). Defaults to first sheet A1:Z1000 if not specified. |
#### Output
@@ -109,9 +109,9 @@ Write data to a Google Sheets spreadsheet
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `spreadsheetId` | string | Yes | The ID of the spreadsheet to write to |
| `range` | string | No | The range of cells to write to |
| `values` | array | Yes | The data to write to the spreadsheet |
| `spreadsheetId` | string | Yes | The ID of the spreadsheet |
| `range` | string | No | The A1 notation range to write to \(e.g. "Sheet1!A1:D10", "A1:B5"\) |
| `values` | array | Yes | The data to write as a 2D array \(e.g. \[\["Name", "Age"\], \["Alice", 30\], \["Bob", 25\]\]\) or array of objects. |
| `valueInputOption` | string | No | The format of the data to write |
| `includeValuesInResponse` | boolean | No | Whether to include the written values in the response |
@@ -134,8 +134,8 @@ Update data in a Google Sheets spreadsheet
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `spreadsheetId` | string | Yes | The ID of the spreadsheet to update |
| `range` | string | No | The range of cells to update |
| `values` | array | Yes | The data to update in the spreadsheet |
| `range` | string | No | The A1 notation range to update \(e.g. "Sheet1!A1:D10", "A1:B5"\) |
| `values` | array | Yes | The data to update as a 2D array \(e.g. \[\["Name", "Age"\], \["Alice", 30\]\]\) or array of objects. |
| `valueInputOption` | string | No | The format of the data to update |
| `includeValuesInResponse` | boolean | No | Whether to include the updated values in the response |
@@ -158,8 +158,8 @@ Append data to the end of a Google Sheets spreadsheet
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `spreadsheetId` | string | Yes | The ID of the spreadsheet to append to |
| `range` | string | No | The range of cells to append after |
| `values` | array | Yes | The data to append to the spreadsheet |
| `range` | string | No | The A1 notation range to append after \(e.g. "Sheet1", "Sheet1!A:D"\) |
| `values` | array | Yes | The data to append as a 2D array \(e.g. \[\["Alice", 30\], \["Bob", 25\]\]\) or array of objects. |
| `valueInputOption` | string | No | The format of the data to append |
| `insertDataOption` | string | No | How to insert the data \(OVERWRITE or INSERT_ROWS\) |
| `includeValuesInResponse` | boolean | No | Whether to include the appended values in the response |

View File

@@ -0,0 +1,185 @@
---
title: Google Slides
description: Read, write, and create presentations
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="google_slides"
color="#E0E0E0"
/>
{/* MANUAL-CONTENT-START:intro */}
[Google Slides](https://slides.google.com) is a dynamic cloud-based presentation application that allows users to create, edit, collaborate on, and present slideshows in real-time. As part of Google's productivity suite, Google Slides offers a flexible platform for designing engaging presentations, collaborating with others, and sharing content seamlessly through the cloud.
Learn how to integrate the Google Slides tools in Sim to effortlessly manage presentations as part of your automated workflows. With Sim, you can read, write, create, and update Google Slides presentations directly through your agents and automated processes, making it easy to deliver up-to-date information, generate custom reports, or produce branded decks programmatically.
With Google Slides, you can:
- **Create and edit presentations**: Design visually appealing slides with themes, layouts, and multimedia content
- **Collaborate in real-time**: Work simultaneously with teammates, comment, assign tasks, and receive live feedback on presentations
- **Present anywhere**: Display presentations online or offline, share links, or publish to the web
- **Add images and rich content**: Insert images, graphics, charts, and videos to make your presentations engaging
- **Integrate with other services**: Connect seamlessly with Google Drive, Docs, Sheets, and other third-party tools
- **Access from any device**: Use Google Slides on desktops, laptops, tablets, and mobile devices for maximum flexibility
In Sim, the Google Slides integration enables your agents to interact directly with presentation files programmatically. Automate tasks like reading slide content, inserting new slides or images, replacing text throughout a deck, generating new presentations, and retrieving slide thumbnails. This empowers you to scale content creation, keep presentations up-to-date, and embed them into automated document workflows. By connecting Sim with Google Slides, you facilitate AI-driven presentation management—making it easy to generate, update, or extract information from presentations without manual effort.
{/* MANUAL-CONTENT-END */}
## Usage Instructions
Integrate Google Slides into the workflow. Can read, write, create presentations, replace text, add slides, add images, and get thumbnails.
## Tools
### `google_slides_read`
Read content from a Google Slides presentation
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `presentationId` | string | Yes | The ID of the presentation to read |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `slides` | json | Array of slides with their content |
| `metadata` | json | Presentation metadata including ID, title, and URL |
### `google_slides_write`
Write or update content in a Google Slides presentation
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `presentationId` | string | Yes | The ID of the presentation to write to |
| `content` | string | Yes | The content to write to the slide |
| `slideIndex` | number | No | The index of the slide to write to \(defaults to first slide\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `updatedContent` | boolean | Indicates if presentation content was updated successfully |
| `metadata` | json | Updated presentation metadata including ID, title, and URL |
### `google_slides_create`
Create a new Google Slides presentation
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `title` | string | Yes | The title of the presentation to create |
| `content` | string | No | The content to add to the first slide |
| `folderSelector` | string | No | Select the folder to create the presentation in |
| `folderId` | string | No | The ID of the folder to create the presentation in \(internal use\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `metadata` | json | Created presentation metadata including ID, title, and URL |
### `google_slides_replace_all_text`
Find and replace all occurrences of text throughout a Google Slides presentation
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `presentationId` | string | Yes | The ID of the presentation |
| `findText` | string | Yes | The text to find \(e.g., \{\{placeholder\}\}\) |
| `replaceText` | string | Yes | The text to replace with |
| `matchCase` | boolean | No | Whether the search should be case-sensitive \(default: true\) |
| `pageObjectIds` | string | No | Comma-separated list of slide object IDs to limit replacements to specific slides \(leave empty for all slides\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `occurrencesChanged` | number | Number of text occurrences that were replaced |
| `metadata` | json | Operation metadata including presentation ID and URL |
### `google_slides_add_slide`
Add a new slide to a Google Slides presentation with a specified layout
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `presentationId` | string | Yes | The ID of the presentation |
| `layout` | string | No | The predefined layout for the slide \(BLANK, TITLE, TITLE_AND_BODY, TITLE_ONLY, SECTION_HEADER, etc.\). Defaults to BLANK. |
| `insertionIndex` | number | No | The optional zero-based index indicating where to insert the slide. If not specified, the slide is added at the end. |
| `placeholderIdMappings` | string | No | JSON array of placeholder mappings to assign custom object IDs to placeholders. Format: \[\{"layoutPlaceholder":\{"type":"TITLE"\},"objectId":"custom_title_id"\}\] |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `slideId` | string | The object ID of the newly created slide |
| `metadata` | json | Operation metadata including presentation ID, layout, and URL |
### `google_slides_add_image`
Insert an image into a specific slide in a Google Slides presentation
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `presentationId` | string | Yes | The ID of the presentation |
| `pageObjectId` | string | Yes | The object ID of the slide/page to add the image to |
| `imageUrl` | string | Yes | The publicly accessible URL of the image \(must be PNG, JPEG, or GIF, max 50MB\) |
| `width` | number | No | Width of the image in points \(default: 300\) |
| `height` | number | No | Height of the image in points \(default: 200\) |
| `positionX` | number | No | X position from the left edge in points \(default: 100\) |
| `positionY` | number | No | Y position from the top edge in points \(default: 100\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `imageId` | string | The object ID of the newly created image |
| `metadata` | json | Operation metadata including presentation ID and image URL |
### `google_slides_get_thumbnail`
Generate a thumbnail image of a specific slide in a Google Slides presentation
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `presentationId` | string | Yes | The ID of the presentation |
| `pageObjectId` | string | Yes | The object ID of the slide/page to get a thumbnail for |
| `thumbnailSize` | string | No | The size of the thumbnail: SMALL \(200px\), MEDIUM \(800px\), or LARGE \(1600px\). Defaults to MEDIUM. |
| `mimeType` | string | No | The MIME type of the thumbnail image: PNG or GIF. Defaults to PNG. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `contentUrl` | string | URL to the thumbnail image \(valid for 30 minutes\) |
| `width` | number | Width of the thumbnail in pixels |
| `height` | number | Height of the thumbnail in pixels |
| `metadata` | json | Operation metadata including presentation ID and page object ID |
## Notes
- Category: `tools`
- Type: `google_slides`

View File

@@ -0,0 +1,499 @@
---
title: Grafana
description: Interact with Grafana dashboards, alerts, and annotations
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="grafana"
color="#E0E0E0"
/>
{/* MANUAL-CONTENT-START:intro */}
[Grafana](https://grafana.com/) is a leading open-source platform for monitoring, observability, and visualization. It allows users to query, visualize, alert on, and analyze data from a variety of sources, making it an essential tool for infrastructure and application monitoring.
With Grafana, you can:
- **Visualize data**: Build and customize dashboards to display metrics, logs, and traces in real time
- **Monitor health and status**: Check the health of your Grafana instance and connected data sources
- **Manage alerts and annotations**: Set up alert rules, manage notifications, and annotate dashboards with important events
- **Organize content**: Organize dashboards and data sources into folders for better access management
In Sim, the Grafana integration empowers your agents to interact directly with your Grafana instance via API, enabling actions such as:
- Checking the Grafana server, database, and data source health status
- Retrieving, listing, and managing dashboards, alert rules, annotations, data sources, and folders
- Automating the monitoring of your infrastructure by integrating Grafana data and alerts into your workflow automations
These capabilities enable Sim agents to monitor systems, proactively respond to alerts, and help ensure the reliability and visibility of your services — all as part of your automated workflows.
{/* MANUAL-CONTENT-END */}
## Usage Instructions
Integrate Grafana into workflows. Manage dashboards, alerts, annotations, data sources, folders, and monitor health status.
## Tools
### `grafana_get_dashboard`
Get a dashboard by its UID
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Grafana Service Account Token |
| `baseUrl` | string | Yes | Grafana instance URL \(e.g., https://your-grafana.com\) |
| `organizationId` | string | No | Organization ID for multi-org Grafana instances |
| `dashboardUid` | string | Yes | The UID of the dashboard to retrieve |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `dashboard` | json | The full dashboard JSON object |
| `meta` | json | Dashboard metadata \(version, permissions, etc.\) |
### `grafana_list_dashboards`
Search and list all dashboards
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Grafana Service Account Token |
| `baseUrl` | string | Yes | Grafana instance URL \(e.g., https://your-grafana.com\) |
| `organizationId` | string | No | Organization ID for multi-org Grafana instances |
| `query` | string | No | Search query to filter dashboards by title |
| `tag` | string | No | Filter by tag \(comma-separated for multiple tags\) |
| `folderIds` | string | No | Filter by folder IDs \(comma-separated\) |
| `starred` | boolean | No | Only return starred dashboards |
| `limit` | number | No | Maximum number of dashboards to return |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `dashboards` | array | List of dashboard search results |
### `grafana_create_dashboard`
Create a new dashboard
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Grafana Service Account Token |
| `baseUrl` | string | Yes | Grafana instance URL \(e.g., https://your-grafana.com\) |
| `organizationId` | string | No | Organization ID for multi-org Grafana instances |
| `title` | string | Yes | The title of the new dashboard |
| `folderUid` | string | No | The UID of the folder to create the dashboard in |
| `tags` | string | No | Comma-separated list of tags |
| `timezone` | string | No | Dashboard timezone \(e.g., browser, utc\) |
| `refresh` | string | No | Auto-refresh interval \(e.g., 5s, 1m, 5m\) |
| `panels` | string | No | JSON array of panel configurations |
| `overwrite` | boolean | No | Overwrite existing dashboard with same title |
| `message` | string | No | Commit message for the dashboard version |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `id` | number | The numeric ID of the created dashboard |
| `uid` | string | The UID of the created dashboard |
| `url` | string | The URL path to the dashboard |
| `status` | string | Status of the operation \(success\) |
| `version` | number | The version number of the dashboard |
| `slug` | string | URL-friendly slug of the dashboard |
### `grafana_update_dashboard`
Update an existing dashboard. Fetches the current dashboard and merges your changes.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Grafana Service Account Token |
| `baseUrl` | string | Yes | Grafana instance URL \(e.g., https://your-grafana.com\) |
| `organizationId` | string | No | Organization ID for multi-org Grafana instances |
| `dashboardUid` | string | Yes | The UID of the dashboard to update |
| `title` | string | No | New title for the dashboard |
| `folderUid` | string | No | New folder UID to move the dashboard to |
| `tags` | string | No | Comma-separated list of new tags |
| `timezone` | string | No | Dashboard timezone \(e.g., browser, utc\) |
| `refresh` | string | No | Auto-refresh interval \(e.g., 5s, 1m, 5m\) |
| `panels` | string | No | JSON array of panel configurations |
| `overwrite` | boolean | No | Overwrite even if there is a version conflict |
| `message` | string | No | Commit message for this version |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `id` | number | The numeric ID of the updated dashboard |
| `uid` | string | The UID of the updated dashboard |
| `url` | string | The URL path to the dashboard |
| `status` | string | Status of the operation \(success\) |
| `version` | number | The new version number of the dashboard |
| `slug` | string | URL-friendly slug of the dashboard |
### `grafana_delete_dashboard`
Delete a dashboard by its UID
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Grafana Service Account Token |
| `baseUrl` | string | Yes | Grafana instance URL \(e.g., https://your-grafana.com\) |
| `organizationId` | string | No | Organization ID for multi-org Grafana instances |
| `dashboardUid` | string | Yes | The UID of the dashboard to delete |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `title` | string | The title of the deleted dashboard |
| `message` | string | Confirmation message |
| `id` | number | The ID of the deleted dashboard |
### `grafana_list_alert_rules`
List all alert rules in the Grafana instance
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Grafana Service Account Token |
| `baseUrl` | string | Yes | Grafana instance URL \(e.g., https://your-grafana.com\) |
| `organizationId` | string | No | Organization ID for multi-org Grafana instances |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `rules` | array | List of alert rules |
### `grafana_get_alert_rule`
Get a specific alert rule by its UID
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Grafana Service Account Token |
| `baseUrl` | string | Yes | Grafana instance URL \(e.g., https://your-grafana.com\) |
| `organizationId` | string | No | Organization ID for multi-org Grafana instances |
| `alertRuleUid` | string | Yes | The UID of the alert rule to retrieve |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `uid` | string | Alert rule UID |
| `title` | string | Alert rule title |
| `condition` | string | Alert condition |
| `data` | json | Alert rule query data |
| `folderUID` | string | Parent folder UID |
| `ruleGroup` | string | Rule group name |
| `noDataState` | string | State when no data is returned |
| `execErrState` | string | State on execution error |
| `annotations` | json | Alert annotations |
| `labels` | json | Alert labels |
### `grafana_create_alert_rule`
Create a new alert rule
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Grafana Service Account Token |
| `baseUrl` | string | Yes | Grafana instance URL \(e.g., https://your-grafana.com\) |
| `organizationId` | string | No | Organization ID for multi-org Grafana instances |
| `title` | string | Yes | The title of the alert rule |
| `folderUid` | string | Yes | The UID of the folder to create the alert in |
| `ruleGroup` | string | Yes | The name of the rule group |
| `condition` | string | Yes | The refId of the query or expression to use as the alert condition |
| `data` | string | Yes | JSON array of query/expression data objects |
| `forDuration` | string | No | Duration to wait before firing \(e.g., 5m, 1h\) |
| `noDataState` | string | No | State when no data is returned \(NoData, Alerting, OK\) |
| `execErrState` | string | No | State on execution error \(Alerting, OK\) |
| `annotations` | string | No | JSON object of annotations |
| `labels` | string | No | JSON object of labels |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `uid` | string | The UID of the created alert rule |
| `title` | string | Alert rule title |
| `folderUID` | string | Parent folder UID |
| `ruleGroup` | string | Rule group name |
### `grafana_update_alert_rule`
Update an existing alert rule. Fetches the current rule and merges your changes.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Grafana Service Account Token |
| `baseUrl` | string | Yes | Grafana instance URL \(e.g., https://your-grafana.com\) |
| `organizationId` | string | No | Organization ID for multi-org Grafana instances |
| `alertRuleUid` | string | Yes | The UID of the alert rule to update |
| `title` | string | No | New title for the alert rule |
| `folderUid` | string | No | New folder UID to move the alert to |
| `ruleGroup` | string | No | New rule group name |
| `condition` | string | No | New condition refId |
| `data` | string | No | New JSON array of query/expression data objects |
| `forDuration` | string | No | Duration to wait before firing \(e.g., 5m, 1h\) |
| `noDataState` | string | No | State when no data is returned \(NoData, Alerting, OK\) |
| `execErrState` | string | No | State on execution error \(Alerting, OK\) |
| `annotations` | string | No | JSON object of annotations |
| `labels` | string | No | JSON object of labels |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `uid` | string | The UID of the updated alert rule |
| `title` | string | Alert rule title |
| `folderUID` | string | Parent folder UID |
| `ruleGroup` | string | Rule group name |
### `grafana_delete_alert_rule`
Delete an alert rule by its UID
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Grafana Service Account Token |
| `baseUrl` | string | Yes | Grafana instance URL \(e.g., https://your-grafana.com\) |
| `organizationId` | string | No | Organization ID for multi-org Grafana instances |
| `alertRuleUid` | string | Yes | The UID of the alert rule to delete |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Confirmation message |
### `grafana_list_contact_points`
List all alert notification contact points
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Grafana Service Account Token |
| `baseUrl` | string | Yes | Grafana instance URL \(e.g., https://your-grafana.com\) |
| `organizationId` | string | No | Organization ID for multi-org Grafana instances |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `contactPoints` | array | List of contact points |
### `grafana_create_annotation`
Create an annotation on a dashboard or as a global annotation
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Grafana Service Account Token |
| `baseUrl` | string | Yes | Grafana instance URL \(e.g., https://your-grafana.com\) |
| `organizationId` | string | No | Organization ID for multi-org Grafana instances |
| `text` | string | Yes | The text content of the annotation |
| `tags` | string | No | Comma-separated list of tags |
| `dashboardUid` | string | No | UID of the dashboard to add the annotation to \(optional for global annotations\) |
| `panelId` | number | No | ID of the panel to add the annotation to |
| `time` | number | No | Start time in epoch milliseconds \(defaults to now\) |
| `timeEnd` | number | No | End time in epoch milliseconds \(for range annotations\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `id` | number | The ID of the created annotation |
| `message` | string | Confirmation message |
### `grafana_list_annotations`
Query annotations by time range, dashboard, or tags
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Grafana Service Account Token |
| `baseUrl` | string | Yes | Grafana instance URL \(e.g., https://your-grafana.com\) |
| `organizationId` | string | No | Organization ID for multi-org Grafana instances |
| `from` | number | No | Start time in epoch milliseconds |
| `to` | number | No | End time in epoch milliseconds |
| `dashboardUid` | string | No | Filter by dashboard UID |
| `panelId` | number | No | Filter by panel ID |
| `tags` | string | No | Comma-separated list of tags to filter by |
| `type` | string | No | Filter by type \(alert or annotation\) |
| `limit` | number | No | Maximum number of annotations to return |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `annotations` | array | List of annotations |
### `grafana_update_annotation`
Update an existing annotation
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Grafana Service Account Token |
| `baseUrl` | string | Yes | Grafana instance URL \(e.g., https://your-grafana.com\) |
| `organizationId` | string | No | Organization ID for multi-org Grafana instances |
| `annotationId` | number | Yes | The ID of the annotation to update |
| `text` | string | Yes | New text content for the annotation |
| `tags` | string | No | Comma-separated list of new tags |
| `time` | number | No | New start time in epoch milliseconds |
| `timeEnd` | number | No | New end time in epoch milliseconds |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `id` | number | The ID of the updated annotation |
| `message` | string | Confirmation message |
### `grafana_delete_annotation`
Delete an annotation by its ID
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Grafana Service Account Token |
| `baseUrl` | string | Yes | Grafana instance URL \(e.g., https://your-grafana.com\) |
| `organizationId` | string | No | Organization ID for multi-org Grafana instances |
| `annotationId` | number | Yes | The ID of the annotation to delete |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `message` | string | Confirmation message |
### `grafana_list_data_sources`
List all data sources configured in Grafana
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Grafana Service Account Token |
| `baseUrl` | string | Yes | Grafana instance URL \(e.g., https://your-grafana.com\) |
| `organizationId` | string | No | Organization ID for multi-org Grafana instances |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `dataSources` | array | List of data sources |
### `grafana_get_data_source`
Get a data source by its ID or UID
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Grafana Service Account Token |
| `baseUrl` | string | Yes | Grafana instance URL \(e.g., https://your-grafana.com\) |
| `organizationId` | string | No | Organization ID for multi-org Grafana instances |
| `dataSourceId` | string | Yes | The ID or UID of the data source to retrieve |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `id` | number | Data source ID |
| `uid` | string | Data source UID |
| `name` | string | Data source name |
| `type` | string | Data source type |
| `url` | string | Data source connection URL |
| `database` | string | Database name \(if applicable\) |
| `isDefault` | boolean | Whether this is the default data source |
| `jsonData` | json | Additional data source configuration |
### `grafana_list_folders`
List all folders in Grafana
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Grafana Service Account Token |
| `baseUrl` | string | Yes | Grafana instance URL \(e.g., https://your-grafana.com\) |
| `organizationId` | string | No | Organization ID for multi-org Grafana instances |
| `limit` | number | No | Maximum number of folders to return |
| `page` | number | No | Page number for pagination |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `folders` | array | List of folders |
### `grafana_create_folder`
Create a new folder in Grafana
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Grafana Service Account Token |
| `baseUrl` | string | Yes | Grafana instance URL \(e.g., https://your-grafana.com\) |
| `organizationId` | string | No | Organization ID for multi-org Grafana instances |
| `title` | string | Yes | The title of the new folder |
| `uid` | string | No | Optional UID for the folder \(auto-generated if not provided\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `id` | number | The numeric ID of the created folder |
| `uid` | string | The UID of the created folder |
| `title` | string | The title of the created folder |
| `url` | string | The URL path to the folder |
## Notes
- Category: `tools`
- Type: `grafana`

View File

@@ -364,6 +364,8 @@ Update an existing schedule in incident.io
| `id` | string | Yes | The ID of the schedule to update |
| `name` | string | No | New name for the schedule |
| `timezone` | string | No | New timezone for the schedule \(e.g., America/New_York\) |
| `config` | string | No | Schedule configuration as JSON string with rotations. Example: \{"rotations": \[\{"name": "Primary", "users": \[\{"id": "user_id"\}\], "handover_start_at": "2024-01-01T09:00:00Z", "handovers": \[\{"interval": 1, "interval_type": "weekly"\}\]\}\]\} |
| `Example` | string | No | No description |
#### Output

View File

@@ -170,7 +170,7 @@ Create or update a company in Intercom
| `plan` | string | No | The company plan name |
| `size` | number | No | The number of employees in the company |
| `industry` | string | No | The industry the company operates in |
| `monthly_spend` | number | No | How much revenue the company generates for your business |
| `monthly_spend` | number | No | How much revenue the company generates for your business. Note: This field truncates floats to whole integers \(e.g., 155.98 becomes 155\) |
| `custom_attributes` | string | No | Custom attributes as JSON object |
#### Output
@@ -199,7 +199,7 @@ Retrieve a single company by ID from Intercom
### `intercom_list_companies`
List all companies from Intercom with pagination support
List all companies from Intercom with pagination support. Note: This endpoint has a limit of 10,000 companies that can be returned using pagination. For datasets larger than 10,000 companies, use the Scroll API instead.
#### Input
@@ -262,7 +262,7 @@ Reply to a conversation as an admin in Intercom
| `conversationId` | string | Yes | Conversation ID to reply to |
| `message_type` | string | Yes | Message type: "comment" or "note" |
| `body` | string | Yes | The text body of the reply |
| `admin_id` | string | Yes | The ID of the admin authoring the reply |
| `admin_id` | string | No | The ID of the admin authoring the reply. If not provided, a default admin \(Operator/Fin\) will be used. |
| `attachment_urls` | string | No | Comma-separated list of image URLs \(max 10\) |
#### Output

View File

@@ -0,0 +1,398 @@
---
title: Kalshi
description: Access prediction markets and trade on Kalshi
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="kalshi"
color="#09C285"
/>
{/* MANUAL-CONTENT-START:intro */}
[Kalshi](https://kalshi.com) is a federally regulated exchange where users can trade directly on the outcomes of future events—prediction markets. Kalshis robust API and Sim integration enable agents and workflows to programmatically access all aspects of the platform, supporting everything from research and analytics to automated trading and monitoring.
With Kalshis integration in Sim, you can:
- **Market & Event Data:** Search, filter, and retrieve real-time and historical data for markets and events; fetch granular details on market status, series, event groupings, and more.
- **Account & Balance Management:** Access account balances, available funds, and monitor real-time open positions.
- **Order & Trade Management:** Place new orders, cancel existing ones, view open orders, retrieve a live orderbook, and access complete trade histories.
- **Execution Analysis:** Fetch recent trades, historical fills, and candlestick data for backtesting or market structure research.
- **Monitoring:** Check exchange-wide or series-level status, receive real-time updates about market changes or trading halts, and automate responses.
- **Automation Ready:** Build end-to-end automated agents and dashboards that consume, analyze, and trade on real-world event probabilities.
By using these unified tools and endpoints, you can seamlessly incorporate Kalshis prediction markets, live trading capabilities, and deep event data into your AI-powered applications, dashboards, and workflows—enabling sophisticated, automated decision-making tied to real-world outcomes.
{/* MANUAL-CONTENT-END */}
## Usage Instructions
Integrate Kalshi prediction markets into the workflow. Can get markets, market, events, event, balance, positions, orders, orderbook, trades, candlesticks, fills, series, exchange status, and place/cancel/amend trades.
## Tools
### `kalshi_get_markets`
Retrieve a list of prediction markets from Kalshi with optional filtering
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `status` | string | No | Filter by status \(unopened, open, closed, settled\) |
| `seriesTicker` | string | No | Filter by series ticker |
| `eventTicker` | string | No | Filter by event ticker |
| `limit` | string | No | Number of results \(1-1000, default: 100\) |
| `cursor` | string | No | Pagination cursor for next page |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Markets data and metadata |
### `kalshi_get_market`
Retrieve details of a specific prediction market by ticker
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `ticker` | string | Yes | The market ticker \(e.g., "KXBTC-24DEC31"\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Market data and metadata |
### `kalshi_get_events`
Retrieve a list of events from Kalshi with optional filtering
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `status` | string | No | Filter by status \(open, closed, settled\) |
| `seriesTicker` | string | No | Filter by series ticker |
| `withNestedMarkets` | string | No | Include nested markets in response \(true/false\) |
| `limit` | string | No | Number of results \(1-200, default: 200\) |
| `cursor` | string | No | Pagination cursor for next page |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Events data and metadata |
### `kalshi_get_event`
Retrieve details of a specific event by ticker
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `eventTicker` | string | Yes | The event ticker |
| `withNestedMarkets` | string | No | Include nested markets in response \(true/false\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Event data and metadata |
### `kalshi_get_balance`
Retrieve your account balance and portfolio value from Kalshi
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `keyId` | string | Yes | Your Kalshi API Key ID |
| `privateKey` | string | Yes | Your RSA Private Key \(PEM format\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Balance data and metadata |
### `kalshi_get_positions`
Retrieve your open positions from Kalshi
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `keyId` | string | Yes | Your Kalshi API Key ID |
| `privateKey` | string | Yes | Your RSA Private Key \(PEM format\) |
| `ticker` | string | No | Filter by market ticker |
| `eventTicker` | string | No | Filter by event ticker \(max 10 comma-separated\) |
| `settlementStatus` | string | No | Filter by settlement status \(all, unsettled, settled\). Default: unsettled |
| `limit` | string | No | Number of results \(1-1000, default: 100\) |
| `cursor` | string | No | Pagination cursor for next page |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Positions data and metadata |
### `kalshi_get_orders`
Retrieve your orders from Kalshi with optional filtering
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `keyId` | string | Yes | Your Kalshi API Key ID |
| `privateKey` | string | Yes | Your RSA Private Key \(PEM format\) |
| `ticker` | string | No | Filter by market ticker |
| `eventTicker` | string | No | Filter by event ticker \(max 10 comma-separated\) |
| `status` | string | No | Filter by status \(resting, canceled, executed\) |
| `limit` | string | No | Number of results \(1-200, default: 100\) |
| `cursor` | string | No | Pagination cursor for next page |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Orders data and metadata |
### `kalshi_get_order`
Retrieve details of a specific order by ID from Kalshi
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `keyId` | string | Yes | Your Kalshi API Key ID |
| `privateKey` | string | Yes | Your RSA Private Key \(PEM format\) |
| `orderId` | string | Yes | The order ID to retrieve |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Order data |
### `kalshi_get_orderbook`
Retrieve the orderbook (yes and no bids) for a specific market
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `ticker` | string | Yes | Market ticker \(e.g., KXBTC-24DEC31\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Orderbook data and metadata |
### `kalshi_get_trades`
Retrieve recent trades across all markets
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `limit` | string | No | Number of results \(1-1000, default: 100\) |
| `cursor` | string | No | Pagination cursor for next page |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Trades data and metadata |
### `kalshi_get_candlesticks`
Retrieve OHLC candlestick data for a specific market
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `seriesTicker` | string | Yes | Series ticker |
| `ticker` | string | Yes | Market ticker \(e.g., KXBTC-24DEC31\) |
| `startTs` | number | Yes | Start timestamp \(Unix seconds\) |
| `endTs` | number | Yes | End timestamp \(Unix seconds\) |
| `periodInterval` | number | Yes | Period interval: 1 \(1min\), 60 \(1hour\), or 1440 \(1day\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Candlestick data and metadata |
### `kalshi_get_fills`
Retrieve your portfolio
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `keyId` | string | Yes | Your Kalshi API Key ID |
| `privateKey` | string | Yes | Your RSA Private Key \(PEM format\) |
| `ticker` | string | No | Filter by market ticker |
| `orderId` | string | No | Filter by order ID |
| `minTs` | number | No | Minimum timestamp \(Unix milliseconds\) |
| `maxTs` | number | No | Maximum timestamp \(Unix milliseconds\) |
| `limit` | string | No | Number of results \(1-1000, default: 100\) |
| `cursor` | string | No | Pagination cursor for next page |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Fills data and metadata |
### `kalshi_get_series_by_ticker`
Retrieve details of a specific market series by ticker
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `seriesTicker` | string | Yes | Series ticker |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Series data and metadata |
### `kalshi_get_exchange_status`
Retrieve the current status of the Kalshi exchange (trading and exchange activity)
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Exchange status data and metadata |
### `kalshi_create_order`
Create a new order on a Kalshi prediction market
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `keyId` | string | Yes | Your Kalshi API Key ID |
| `privateKey` | string | Yes | Your RSA Private Key \(PEM format\) |
| `ticker` | string | Yes | Market ticker \(e.g., KXBTC-24DEC31\) |
| `side` | string | Yes | Side of the order: 'yes' or 'no' |
| `action` | string | Yes | Action type: 'buy' or 'sell' |
| `count` | string | Yes | Number of contracts \(minimum 1\) |
| `type` | string | No | Order type: 'limit' or 'market' \(default: limit\) |
| `yesPrice` | string | No | Yes price in cents \(1-99\) |
| `noPrice` | string | No | No price in cents \(1-99\) |
| `yesPriceDollars` | string | No | Yes price in dollars \(e.g., "0.56"\) |
| `noPriceDollars` | string | No | No price in dollars \(e.g., "0.56"\) |
| `clientOrderId` | string | No | Custom order identifier |
| `expirationTs` | string | No | Unix timestamp for order expiration |
| `timeInForce` | string | No | Time in force: 'fill_or_kill', 'good_till_canceled', 'immediate_or_cancel' |
| `buyMaxCost` | string | No | Maximum cost in cents \(auto-enables fill_or_kill\) |
| `postOnly` | string | No | Set to 'true' for maker-only orders |
| `reduceOnly` | string | No | Set to 'true' for position reduction only |
| `selfTradePreventionType` | string | No | Self-trade prevention: 'taker_at_cross' or 'maker' |
| `orderGroupId` | string | No | Associated order group ID |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Created order data |
### `kalshi_cancel_order`
Cancel an existing order on Kalshi
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `keyId` | string | Yes | Your Kalshi API Key ID |
| `privateKey` | string | Yes | Your RSA Private Key \(PEM format\) |
| `orderId` | string | Yes | The order ID to cancel |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Canceled order data |
### `kalshi_amend_order`
Modify the price or quantity of an existing order on Kalshi
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `keyId` | string | Yes | Your Kalshi API Key ID |
| `privateKey` | string | Yes | Your RSA Private Key \(PEM format\) |
| `orderId` | string | Yes | The order ID to amend |
| `ticker` | string | Yes | Market ticker |
| `side` | string | Yes | Side of the order: 'yes' or 'no' |
| `action` | string | Yes | Action type: 'buy' or 'sell' |
| `clientOrderId` | string | Yes | The original client-specified order ID |
| `updatedClientOrderId` | string | Yes | The new client-specified order ID after amendment |
| `count` | string | No | Updated quantity for the order |
| `yesPrice` | string | No | Updated yes price in cents \(1-99\) |
| `noPrice` | string | No | Updated no price in cents \(1-99\) |
| `yesPriceDollars` | string | No | Updated yes price in dollars \(e.g., "0.56"\) |
| `noPriceDollars` | string | No | Updated no price in dollars \(e.g., "0.56"\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Amended order data |
## Notes
- Category: `tools`
- Type: `kalshi`

View File

@@ -7,7 +7,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="mailgun"
color="#F06248"
color="#E0E0E0"
/>
{/* MANUAL-CONTENT-START:intro */}

View File

@@ -1,6 +1,7 @@
{
"pages": [
"index",
"ahrefs",
"airtable",
"apify",
"apollo",
@@ -10,21 +11,30 @@
"calendly",
"clay",
"confluence",
"cursor",
"datadog",
"discord",
"dropbox",
"duckduckgo",
"dynamodb",
"elasticsearch",
"elevenlabs",
"exa",
"file",
"firecrawl",
"github",
"gitlab",
"gmail",
"google_calendar",
"google_docs",
"google_drive",
"google_forms",
"google_groups",
"google_search",
"google_sheets",
"google_slides",
"google_vault",
"grafana",
"hubspot",
"huggingface",
"hunter",
@@ -33,6 +43,7 @@
"intercom",
"jina",
"jira",
"kalshi",
"knowledge",
"linear",
"linkedin",
@@ -56,6 +67,7 @@
"perplexity",
"pinecone",
"pipedrive",
"polymarket",
"postgresql",
"posthog",
"pylon",
@@ -69,9 +81,12 @@
"sendgrid",
"sentry",
"serper",
"sftp",
"sharepoint",
"shopify",
"slack",
"smtp",
"ssh",
"stagehand",
"stagehand_agent",
"stripe",
@@ -92,9 +107,12 @@
"webflow",
"whatsapp",
"wikipedia",
"wordpress",
"x",
"youtube",
"zapier",
"zendesk",
"zep"
"zep",
"zoom"
]
}

View File

@@ -0,0 +1,357 @@
---
title: Polymarket
description: Access prediction markets data from Polymarket
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="polymarket"
color="#4C82FB"
/>
{/* MANUAL-CONTENT-START:intro */}
[Polymarket](https://polymarket.com) is a decentralized prediction markets platform where users can trade on the outcome of future events using blockchain technology. Polymarket provides a comprehensive API, enabling developers and agents to access live market data, event listings, price information, and orderbook statistics to power data-driven workflows and AI automations.
With Polymarkets API and Sim integration, you can enable agents to programmatically retrieve prediction market information, explore open markets and associated events, analyze historical price data, and access orderbooks and market midpoints. This creates new possibilities for research, automated analysis, and developing intelligent agents that react to real-time event probabilities derived from market prices.
Key features of the Polymarket integration include:
- **Market Listing & Filtering:** List all current or historical prediction markets, filter by tag, sort, and paginate through results.
- **Market Detail:** Retrieve details for a single market by market ID or slug, including its outcomes and status.
- **Event Listings:** Access lists of Polymarket events and detailed event information.
- **Orderbook & Price Data:** Analyze the orderbook, get the latest market prices, view the midpoint, or obtain historical price information for any market.
- **Automation Ready:** Build agents or tools that react programmatically to market developments, changing odds, or specific event outcomes.
By using these documented API endpoints, you can seamlessly integrate Polymarkets rich on-chain prediction market data into your own AI workflows, dashboards, research tools, and trading automations.
{/* MANUAL-CONTENT-END */}
## Usage Instructions
Integrate Polymarket prediction markets into the workflow. Can get markets, market, events, event, tags, series, orderbook, price, midpoint, price history, last trade price, spread, tick size, positions, trades, and search.
## Tools
### `polymarket_get_markets`
Retrieve a list of prediction markets from Polymarket with optional filtering
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `closed` | string | No | Filter by closed status \(true/false\). Use false for active markets only. |
| `order` | string | No | Sort field \(e.g., volumeNum, liquidityNum, startDate, endDate, createdAt\) |
| `ascending` | string | No | Sort direction \(true for ascending, false for descending\) |
| `tagId` | string | No | Filter by tag ID |
| `limit` | string | No | Number of results per page \(recommended: 25-50\) |
| `offset` | string | No | Pagination offset \(skip this many results\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Markets data and metadata |
### `polymarket_get_market`
Retrieve details of a specific prediction market by ID or slug
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `marketId` | string | No | The market ID. Required if slug is not provided. |
| `slug` | string | No | The market slug \(e.g., "will-trump-win"\). Required if marketId is not provided. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Market data and metadata |
### `polymarket_get_events`
Retrieve a list of events from Polymarket with optional filtering
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `closed` | string | No | Filter by closed status \(true/false\). Use false for active events only. |
| `order` | string | No | Sort field \(e.g., volume, liquidity, startDate, endDate, createdAt\) |
| `ascending` | string | No | Sort direction \(true for ascending, false for descending\) |
| `tagId` | string | No | Filter by tag ID |
| `limit` | string | No | Number of results per page \(recommended: 25-50\) |
| `offset` | string | No | Pagination offset \(skip this many results\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Events data and metadata |
### `polymarket_get_event`
Retrieve details of a specific event by ID or slug
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `eventId` | string | No | The event ID. Required if slug is not provided. |
| `slug` | string | No | The event slug \(e.g., "2024-presidential-election"\). Required if eventId is not provided. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Event data and metadata |
### `polymarket_get_tags`
Retrieve available tags for filtering markets from Polymarket
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `limit` | string | No | Number of results per page \(recommended: 25-50\) |
| `offset` | string | No | Pagination offset \(skip this many results\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Tags data and metadata |
### `polymarket_search`
Search for markets, events, and profiles on Polymarket
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `query` | string | Yes | Search query term |
| `limit` | string | No | Number of results per page \(recommended: 25-50\) |
| `offset` | string | No | Pagination offset \(skip this many results\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Search results and metadata |
### `polymarket_get_series`
Retrieve series (related market groups) from Polymarket
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `limit` | string | No | Number of results per page \(recommended: 25-50\) |
| `offset` | string | No | Pagination offset \(skip this many results\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Series data and metadata |
### `polymarket_get_series_by_id`
Retrieve a specific series (related market group) by ID from Polymarket
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `seriesId` | string | Yes | The series ID |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Series data and metadata |
### `polymarket_get_orderbook`
Retrieve the order book summary for a specific token
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `tokenId` | string | Yes | The CLOB token ID \(from market clobTokenIds\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Orderbook data and metadata |
### `polymarket_get_price`
Retrieve the market price for a specific token and side
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `tokenId` | string | Yes | The CLOB token ID \(from market clobTokenIds\) |
| `side` | string | Yes | Order side: buy or sell |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Price data and metadata |
### `polymarket_get_midpoint`
Retrieve the midpoint price for a specific token
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `tokenId` | string | Yes | The CLOB token ID \(from market clobTokenIds\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Midpoint price data and metadata |
### `polymarket_get_price_history`
Retrieve historical price data for a specific market token
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `tokenId` | string | Yes | The CLOB token ID \(from market clobTokenIds\) |
| `interval` | string | No | Duration ending at current time \(1m, 1h, 6h, 1d, 1w, max\). Mutually exclusive with startTs/endTs. |
| `fidelity` | number | No | Data resolution in minutes \(e.g., 60 for hourly\) |
| `startTs` | number | No | Start timestamp \(Unix seconds UTC\) |
| `endTs` | number | No | End timestamp \(Unix seconds UTC\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Price history data and metadata |
### `polymarket_get_last_trade_price`
Retrieve the last trade price for a specific token
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `tokenId` | string | Yes | The CLOB token ID \(from market clobTokenIds\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Last trade price and metadata |
### `polymarket_get_spread`
Retrieve the bid-ask spread for a specific token
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `tokenId` | string | Yes | The CLOB token ID \(from market clobTokenIds\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Spread data and metadata |
### `polymarket_get_tick_size`
Retrieve the minimum tick size for a specific token
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `tokenId` | string | Yes | The CLOB token ID \(from market clobTokenIds\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Tick size and metadata |
### `polymarket_get_positions`
Retrieve user positions from Polymarket
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `user` | string | Yes | User wallet address |
| `market` | string | No | Optional market ID to filter positions |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Positions data and metadata |
### `polymarket_get_trades`
Retrieve trade history from Polymarket
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `user` | string | No | User wallet address to filter trades |
| `market` | string | No | Market ID to filter trades |
| `limit` | string | No | Number of results per page \(recommended: 25-50\) |
| `offset` | string | No | Pagination offset \(skip this many results\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | object | Trades data and metadata |
## Notes
- Category: `tools`
- Type: `polymarket`

View File

@@ -89,6 +89,13 @@ Create a new issue with specified properties
| `bodyHtml` | string | Yes | Issue body in HTML format |
| `accountId` | string | No | Account ID to associate with issue |
| `assigneeId` | string | No | User ID to assign issue to |
| `teamId` | string | No | Team ID to assign issue to |
| `requesterId` | string | No | Requester user ID \(alternative to requester_email\) |
| `requesterEmail` | string | No | Requester email address \(alternative to requester_id\) |
| `priority` | string | No | Issue priority |
| `tags` | string | No | Comma-separated tag IDs |
| `customFields` | string | No | Custom fields as JSON object |
| `attachmentUrls` | string | No | Comma-separated attachment URLs |
#### Output
@@ -130,6 +137,9 @@ Update an existing issue
| `teamId` | string | No | Team ID to assign issue to |
| `tags` | string | No | Comma-separated tag IDs |
| `customFields` | string | No | Custom fields as JSON object |
| `customerPortalVisible` | boolean | No | Whether issue is visible in customer portal |
| `requesterId` | string | No | Requester user ID |
| `accountId` | string | No | Account ID to associate with issue |
#### Output

View File

@@ -138,283 +138,684 @@ Delete an account from Salesforce CRM
### `salesforce_get_contacts`
Get contact(s) from Salesforce - single contact if ID provided, or list if not
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `contactId` | string | No | Contact ID \(if provided, returns single contact\) |
| `limit` | string | No | Number of results \(default: 100, max: 2000\). Only for list query. |
| `fields` | string | No | Comma-separated fields \(e.g., "Id,FirstName,LastName,Email,Phone"\) |
| `orderBy` | string | No | Order by field \(e.g., "LastName ASC"\). Only for list query. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | json | Operation result data |
| `output` | object | Contact\(s\) data |
### `salesforce_create_contact`
Create a new contact in Salesforce CRM
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `lastName` | string | Yes | Last name \(required\) |
| `firstName` | string | No | First name |
| `email` | string | No | Email address |
| `phone` | string | No | Phone number |
| `accountId` | string | No | Account ID to associate contact with |
| `title` | string | No | No description |
| `department` | string | No | Department |
| `mailingStreet` | string | No | Mailing street |
| `mailingCity` | string | No | Mailing city |
| `mailingState` | string | No | Mailing state |
| `mailingPostalCode` | string | No | Mailing postal code |
| `mailingCountry` | string | No | Mailing country |
| `description` | string | No | Contact description |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | json | Operation result data |
| `output` | object | Created contact data |
### `salesforce_update_contact`
Update an existing contact in Salesforce CRM
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `contactId` | string | Yes | Contact ID to update \(required\) |
| `lastName` | string | No | Last name |
| `firstName` | string | No | First name |
| `email` | string | No | Email address |
| `phone` | string | No | Phone number |
| `accountId` | string | No | Account ID to associate with |
| `title` | string | No | No description |
| `department` | string | No | Department |
| `mailingStreet` | string | No | Mailing street |
| `mailingCity` | string | No | Mailing city |
| `mailingState` | string | No | Mailing state |
| `mailingPostalCode` | string | No | Mailing postal code |
| `mailingCountry` | string | No | Mailing country |
| `description` | string | No | Description |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | json | Operation result data |
| `output` | object | Updated contact data |
### `salesforce_delete_contact`
Delete a contact from Salesforce CRM
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `contactId` | string | Yes | Contact ID to delete \(required\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | json | Operation result data |
| `output` | object | Deleted contact data |
### `salesforce_get_leads`
Get lead(s) from Salesforce
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `leadId` | string | No | Lead ID \(optional\) |
| `limit` | string | No | Max results \(default: 100\) |
| `fields` | string | No | Comma-separated fields |
| `orderBy` | string | No | Order by field |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | json | Operation result data |
| `success` | boolean | Success status |
| `output` | object | Lead data |
### `salesforce_create_lead`
Create a new lead
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `lastName` | string | Yes | Last name \(required\) |
| `company` | string | Yes | Company \(required\) |
| `firstName` | string | No | First name |
| `email` | string | No | No description |
| `phone` | string | No | No description |
| `status` | string | No | Lead status |
| `leadSource` | string | No | Lead source |
| `title` | string | No | No description |
| `description` | string | No | Description |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | json | Operation result data |
| `success` | boolean | Success |
| `output` | object | Created lead |
### `salesforce_update_lead`
Update an existing lead
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `leadId` | string | Yes | Lead ID \(required\) |
| `lastName` | string | No | Last name |
| `company` | string | No | No description |
| `firstName` | string | No | First name |
| `email` | string | No | No description |
| `phone` | string | No | No description |
| `status` | string | No | Lead status |
| `leadSource` | string | No | Lead source |
| `title` | string | No | No description |
| `description` | string | No | Description |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | json | Operation result data |
| `success` | boolean | Success |
| `output` | object | Updated lead |
### `salesforce_delete_lead`
Delete a lead
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `leadId` | string | Yes | Lead ID \(required\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | json | Operation result data |
| `success` | boolean | Success |
| `output` | object | Deleted lead |
### `salesforce_get_opportunities`
Get opportunity(ies) from Salesforce
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `opportunityId` | string | No | Opportunity ID \(optional\) |
| `limit` | string | No | Max results \(default: 100\) |
| `fields` | string | No | Comma-separated fields |
| `orderBy` | string | No | Order by field |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | json | Operation result data |
| `success` | boolean | Success |
| `output` | object | Opportunity data |
### `salesforce_create_opportunity`
Create a new opportunity
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `name` | string | Yes | Opportunity name \(required\) |
| `stageName` | string | Yes | Stage name \(required\) |
| `closeDate` | string | Yes | Close date YYYY-MM-DD \(required\) |
| `accountId` | string | No | Account ID |
| `amount` | string | No | Amount \(number\) |
| `probability` | string | No | Probability \(0-100\) |
| `description` | string | No | Description |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | json | Operation result data |
| `success` | boolean | Success |
| `output` | object | Created opportunity |
### `salesforce_update_opportunity`
Update an existing opportunity
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `opportunityId` | string | Yes | Opportunity ID \(required\) |
| `name` | string | No | Opportunity name |
| `stageName` | string | No | Stage name |
| `closeDate` | string | No | Close date YYYY-MM-DD |
| `accountId` | string | No | Account ID |
| `amount` | string | No | No description |
| `probability` | string | No | Probability \(0-100\) |
| `description` | string | No | Description |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | json | Operation result data |
| `success` | boolean | Success |
| `output` | object | Updated opportunity |
### `salesforce_delete_opportunity`
Delete an opportunity
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `opportunityId` | string | Yes | Opportunity ID \(required\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | json | Operation result data |
| `success` | boolean | Success |
| `output` | object | Deleted opportunity |
### `salesforce_get_cases`
Get case(s) from Salesforce
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `caseId` | string | No | Case ID \(optional\) |
| `limit` | string | No | Max results \(default: 100\) |
| `fields` | string | No | Comma-separated fields |
| `orderBy` | string | No | Order by field |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | json | Operation result data |
| `success` | boolean | Success |
| `output` | object | Case data |
### `salesforce_create_case`
Create a new case
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `subject` | string | Yes | Case subject \(required\) |
| `status` | string | No | Status \(e.g., New, Working, Escalated\) |
| `priority` | string | No | Priority \(e.g., Low, Medium, High\) |
| `origin` | string | No | Origin \(e.g., Phone, Email, Web\) |
| `contactId` | string | No | Contact ID |
| `accountId` | string | No | Account ID |
| `description` | string | No | Description |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | json | Operation result data |
| `success` | boolean | Success |
| `output` | object | Created case |
### `salesforce_update_case`
Update an existing case
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `caseId` | string | Yes | Case ID \(required\) |
| `subject` | string | No | Case subject |
| `status` | string | No | Status |
| `priority` | string | No | Priority |
| `description` | string | No | Description |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | json | Operation result data |
| `success` | boolean | Success |
| `output` | object | Updated case |
### `salesforce_delete_case`
Delete a case
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `caseId` | string | Yes | Case ID \(required\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | json | Operation result data |
| `success` | boolean | Success |
| `output` | object | Deleted case |
### `salesforce_get_tasks`
Get task(s) from Salesforce
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `taskId` | string | No | Task ID \(optional\) |
| `limit` | string | No | Max results \(default: 100\) |
| `fields` | string | No | Comma-separated fields |
| `orderBy` | string | No | Order by field |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | json | Operation result data |
| `success` | boolean | Success |
| `output` | object | Task data |
### `salesforce_create_task`
Create a new task
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `subject` | string | Yes | Task subject \(required\) |
| `status` | string | No | Status \(e.g., Not Started, In Progress, Completed\) |
| `priority` | string | No | Priority \(e.g., Low, Normal, High\) |
| `activityDate` | string | No | Due date YYYY-MM-DD |
| `whoId` | string | No | Related Contact/Lead ID |
| `whatId` | string | No | Related Account/Opportunity ID |
| `description` | string | No | Description |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | json | Operation result data |
| `success` | boolean | Success |
| `output` | object | Created task |
### `salesforce_update_task`
Update an existing task
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `taskId` | string | Yes | Task ID \(required\) |
| `subject` | string | No | Task subject |
| `status` | string | No | Status |
| `priority` | string | No | Priority |
| `activityDate` | string | No | Due date YYYY-MM-DD |
| `description` | string | No | Description |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | json | Operation result data |
| `success` | boolean | Success |
| `output` | object | Updated task |
### `salesforce_delete_task`
Delete a task
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `taskId` | string | Yes | Task ID \(required\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Operation success status |
| `output` | json | Operation result data |
| `success` | boolean | Success |
| `output` | object | Deleted task |
### `salesforce_list_reports`
Get a list of reports accessible by the current user
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `folderName` | string | No | Filter by folder name |
| `searchTerm` | string | No | Search term to filter reports by name |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Success status |
| `output` | object | Reports data |
### `salesforce_get_report`
Get metadata and describe information for a specific report
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `reportId` | string | Yes | Report ID \(required\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Success status |
| `output` | object | Report metadata |
### `salesforce_run_report`
Execute a report and retrieve the results
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `reportId` | string | Yes | Report ID \(required\) |
| `includeDetails` | string | No | Include detail rows \(true/false, default: true\) |
| `filters` | string | No | JSON string of report filters to apply |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Success status |
| `output` | object | Report results |
### `salesforce_list_report_types`
Get a list of available report types
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Success status |
| `output` | object | Report types data |
### `salesforce_list_dashboards`
Get a list of dashboards accessible by the current user
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `folderName` | string | No | Filter by folder name |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Success status |
| `output` | object | Dashboards data |
### `salesforce_get_dashboard`
Get details and results for a specific dashboard
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `dashboardId` | string | Yes | Dashboard ID \(required\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Success status |
| `output` | object | Dashboard data |
### `salesforce_refresh_dashboard`
Refresh a dashboard to get the latest data
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `dashboardId` | string | Yes | Dashboard ID \(required\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Success status |
| `output` | object | Refreshed dashboard data |
### `salesforce_query`
Execute a custom SOQL query to retrieve data from Salesforce
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `query` | string | Yes | SOQL query to execute \(e.g., SELECT Id, Name FROM Account LIMIT 10\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Success status |
| `output` | object | Query results |
### `salesforce_query_more`
Retrieve additional query results using the nextRecordsUrl from a previous query
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `nextRecordsUrl` | string | Yes | The nextRecordsUrl from a previous query response |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Success status |
| `output` | object | Query results |
### `salesforce_describe_object`
Get metadata and field information for a Salesforce object
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
| `objectName` | string | Yes | API name of the object \(e.g., Account, Contact, Lead, Custom_Object__c\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Success status |
| `output` | object | Object metadata |
### `salesforce_list_objects`
Get a list of all available Salesforce objects
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `idToken` | string | No | No description |
| `instanceUrl` | string | No | No description |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Success status |
| `output` | object | Objects list |

View File

@@ -0,0 +1,188 @@
---
title: SFTP
description: Transfer files via SFTP (SSH File Transfer Protocol)
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="sftp"
color="#2D3748"
/>
{/* MANUAL-CONTENT-START:intro */}
[SFTP (SSH File Transfer Protocol)](https://en.wikipedia.org/wiki/SSH_File_Transfer_Protocol) is a secure network protocol that enables you to upload, download, and manage files on remote servers. SFTP operates over SSH, making it ideal for automated, encrypted file transfers and remote file management within modern workflows.
With SFTP tools integrated into Sim, you can easily automate the movement of files between your AI agents and external systems or servers. This empowers your agents to manage critical data exchanges, backups, document generation, and remote system orchestration—all with robust security.
**Key functionality available via SFTP tools:**
- **Upload Files:** Seamlessly transfer files of any type from your workflow to a remote server, with support for both password and SSH private key authentication.
- **Download Files:** Retrieve files from remote SFTP servers directly for processing, archiving, or further automation.
- **List & Manage Files:** Enumerate directories, delete or create files and folders, and manage file system permissions remotely.
- **Flexible Authentication:** Connect using either traditional passwords or SSH keys, with support for passphrases and permissions control.
- **Large File Support:** Programmatically manage large file uploads and downloads, with built-in size limits for safety.
By integrating SFTP into Sim, you can automate secure file operations as part of any workflow, whether its data collection, reporting, remote system maintenance, or dynamic content exchange between platforms.
The sections below describe the key SFTP tools available:
- **sftp_upload:** Upload one or more files to a remote server.
- **sftp_download:** Download files from a remote server to your workflow.
- **sftp_list:** List directory contents on a remote SFTP server.
- **sftp_delete:** Delete files or directories from a remote server.
- **sftp_create:** Create new files on a remote SFTP server.
- **sftp_mkdir:** Create new directories remotely.
See the tool documentation below for detailed input and output parameters for each operation.
{/* MANUAL-CONTENT-END */}
## Usage Instructions
Upload, download, list, and manage files on remote servers via SFTP. Supports both password and private key authentication for secure file transfers.
## Tools
### `sftp_upload`
Upload files to a remote SFTP server
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `host` | string | Yes | SFTP server hostname or IP address |
| `port` | number | Yes | SFTP server port \(default: 22\) |
| `username` | string | Yes | SFTP username |
| `password` | string | No | Password for authentication \(if not using private key\) |
| `privateKey` | string | No | Private key for authentication \(OpenSSH format\) |
| `passphrase` | string | No | Passphrase for encrypted private key |
| `remotePath` | string | Yes | Destination directory on the remote server |
| `files` | file[] | No | Files to upload |
| `fileContent` | string | No | Direct file content to upload \(for text files\) |
| `fileName` | string | No | File name when using direct content |
| `overwrite` | boolean | No | Whether to overwrite existing files \(default: true\) |
| `permissions` | string | No | File permissions \(e.g., 0644\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the upload was successful |
| `uploadedFiles` | json | Array of uploaded file details \(name, remotePath, size\) |
| `message` | string | Operation status message |
### `sftp_download`
Download a file from a remote SFTP server
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `host` | string | Yes | SFTP server hostname or IP address |
| `port` | number | Yes | SFTP server port \(default: 22\) |
| `username` | string | Yes | SFTP username |
| `password` | string | No | Password for authentication \(if not using private key\) |
| `privateKey` | string | No | Private key for authentication \(OpenSSH format\) |
| `passphrase` | string | No | Passphrase for encrypted private key |
| `remotePath` | string | Yes | Path to the file on the remote server |
| `encoding` | string | No | Output encoding: utf-8 for text, base64 for binary \(default: utf-8\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the download was successful |
| `fileName` | string | Name of the downloaded file |
| `content` | string | File content \(text or base64 encoded\) |
| `size` | number | File size in bytes |
| `encoding` | string | Content encoding \(utf-8 or base64\) |
| `message` | string | Operation status message |
### `sftp_list`
List files and directories on a remote SFTP server
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `host` | string | Yes | SFTP server hostname or IP address |
| `port` | number | Yes | SFTP server port \(default: 22\) |
| `username` | string | Yes | SFTP username |
| `password` | string | No | Password for authentication \(if not using private key\) |
| `privateKey` | string | No | Private key for authentication \(OpenSSH format\) |
| `passphrase` | string | No | Passphrase for encrypted private key |
| `remotePath` | string | Yes | Directory path on the remote server |
| `detailed` | boolean | No | Include detailed file information \(size, permissions, modified date\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the operation was successful |
| `path` | string | Directory path that was listed |
| `entries` | json | Array of directory entries with name, type, size, permissions, modifiedAt |
| `count` | number | Number of entries in the directory |
| `message` | string | Operation status message |
### `sftp_delete`
Delete a file or directory on a remote SFTP server
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `host` | string | Yes | SFTP server hostname or IP address |
| `port` | number | Yes | SFTP server port \(default: 22\) |
| `username` | string | Yes | SFTP username |
| `password` | string | No | Password for authentication \(if not using private key\) |
| `privateKey` | string | No | Private key for authentication \(OpenSSH format\) |
| `passphrase` | string | No | Passphrase for encrypted private key |
| `remotePath` | string | Yes | Path to the file or directory to delete |
| `recursive` | boolean | No | Delete directories recursively |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the deletion was successful |
| `deletedPath` | string | Path that was deleted |
| `message` | string | Operation status message |
### `sftp_mkdir`
Create a directory on a remote SFTP server
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `host` | string | Yes | SFTP server hostname or IP address |
| `port` | number | Yes | SFTP server port \(default: 22\) |
| `username` | string | Yes | SFTP username |
| `password` | string | No | Password for authentication \(if not using private key\) |
| `privateKey` | string | No | Private key for authentication \(OpenSSH format\) |
| `passphrase` | string | No | Passphrase for encrypted private key |
| `remotePath` | string | Yes | Path for the new directory |
| `recursive` | boolean | No | Create parent directories if they do not exist |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the directory was created successfully |
| `createdPath` | string | Path of the created directory |
| `message` | string | Operation status message |
## Notes
- Category: `tools`
- Type: `sftp`

View File

@@ -0,0 +1,449 @@
---
title: Shopify
description: Manage products, orders, customers, and inventory in your Shopify store
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="shopify"
color="#FFFFFF"
/>
{/* MANUAL-CONTENT-START:intro */}
[Shopify](https://www.shopify.com/) is a leading e-commerce platform designed to help merchants build, run, and grow their online stores. Shopify makes it easy to manage every aspect of your store, from products and inventory to orders and customers.
With Shopify in Sim, your agents can:
- **Create and manage products**: Add new products, update product details, and remove products from your store.
- **List and retrieve orders**: Get information about customer orders, including filtering and order management.
- **Manage customers**: Access and update customer details, or add new customers to your store.
- **Adjust inventory levels**: Programmatically change product stock levels to keep your inventory accurate.
Use Sim's Shopify integration to automate common store management workflows—such as syncing inventory, fulfilling orders, or managing listings—directly from your automations. Empower your agents to access, update, and organize all your store data using simple, programmatic tools.
{/* MANUAL-CONTENT-END */}
## Usage Instructions
Integrate Shopify into your workflow. Manage products, orders, customers, and inventory. Create, read, update, and delete products. List and manage orders. Handle customer data and adjust inventory levels.
## Tools
### `shopify_create_product`
Create a new product in your Shopify store
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Yes | Your Shopify store domain \(e.g., mystore.myshopify.com\) |
| `title` | string | Yes | Product title |
| `descriptionHtml` | string | No | Product description \(HTML\) |
| `vendor` | string | No | Product vendor/brand |
| `productType` | string | No | Product type/category |
| `tags` | array | No | Product tags |
| `status` | string | No | Product status \(ACTIVE, DRAFT, ARCHIVED\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `product` | object | The created product |
### `shopify_get_product`
Get a single product by ID from your Shopify store
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Yes | Your Shopify store domain \(e.g., mystore.myshopify.com\) |
| `productId` | string | Yes | Product ID \(gid://shopify/Product/123456789\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `product` | object | The product details |
### `shopify_list_products`
List products from your Shopify store with optional filtering
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Yes | Your Shopify store domain \(e.g., mystore.myshopify.com\) |
| `first` | number | No | Number of products to return \(default: 50, max: 250\) |
| `query` | string | No | Search query to filter products \(e.g., "title:shirt" or "vendor:Nike" or "status:active"\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `products` | array | List of products |
| `pageInfo` | object | Pagination information |
### `shopify_update_product`
Update an existing product in your Shopify store
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Yes | Your Shopify store domain \(e.g., mystore.myshopify.com\) |
| `productId` | string | Yes | Product ID to update \(gid://shopify/Product/123456789\) |
| `title` | string | No | New product title |
| `descriptionHtml` | string | No | New product description \(HTML\) |
| `vendor` | string | No | New product vendor/brand |
| `productType` | string | No | New product type/category |
| `tags` | array | No | New product tags |
| `status` | string | No | New product status \(ACTIVE, DRAFT, ARCHIVED\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `product` | object | The updated product |
### `shopify_delete_product`
Delete a product from your Shopify store
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Yes | Your Shopify store domain \(e.g., mystore.myshopify.com\) |
| `productId` | string | Yes | Product ID to delete \(gid://shopify/Product/123456789\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `deletedId` | string | The ID of the deleted product |
### `shopify_get_order`
Get a single order by ID from your Shopify store
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Yes | Your Shopify store domain \(e.g., mystore.myshopify.com\) |
| `orderId` | string | Yes | Order ID \(gid://shopify/Order/123456789\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `order` | object | The order details |
### `shopify_list_orders`
List orders from your Shopify store with optional filtering
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Yes | Your Shopify store domain \(e.g., mystore.myshopify.com\) |
| `first` | number | No | Number of orders to return \(default: 50, max: 250\) |
| `status` | string | No | Filter by order status \(open, closed, cancelled, any\) |
| `query` | string | No | Search query to filter orders \(e.g., "financial_status:paid" or "fulfillment_status:unfulfilled" or "email:customer@example.com"\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `orders` | array | List of orders |
| `pageInfo` | object | Pagination information |
### `shopify_update_order`
Update an existing order in your Shopify store (note, tags, email)
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Yes | Your Shopify store domain \(e.g., mystore.myshopify.com\) |
| `orderId` | string | Yes | Order ID to update \(gid://shopify/Order/123456789\) |
| `note` | string | No | New order note |
| `tags` | array | No | New order tags |
| `email` | string | No | New customer email for the order |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `order` | object | The updated order |
### `shopify_cancel_order`
Cancel an order in your Shopify store
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Yes | Your Shopify store domain \(e.g., mystore.myshopify.com\) |
| `orderId` | string | Yes | Order ID to cancel \(gid://shopify/Order/123456789\) |
| `reason` | string | Yes | Cancellation reason \(CUSTOMER, DECLINED, FRAUD, INVENTORY, STAFF, OTHER\) |
| `notifyCustomer` | boolean | No | Whether to notify the customer about the cancellation |
| `refund` | boolean | No | Whether to refund the order |
| `restock` | boolean | No | Whether to restock the inventory |
| `staffNote` | string | No | A note about the cancellation for staff reference |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `order` | object | The cancellation result |
### `shopify_create_customer`
Create a new customer in your Shopify store
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Yes | Your Shopify store domain \(e.g., mystore.myshopify.com\) |
| `email` | string | No | Customer email address |
| `firstName` | string | No | Customer first name |
| `lastName` | string | No | Customer last name |
| `phone` | string | No | Customer phone number |
| `note` | string | No | Note about the customer |
| `tags` | array | No | Customer tags |
| `addresses` | array | No | Customer addresses |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `customer` | object | The created customer |
### `shopify_get_customer`
Get a single customer by ID from your Shopify store
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Yes | Your Shopify store domain \(e.g., mystore.myshopify.com\) |
| `customerId` | string | Yes | Customer ID \(gid://shopify/Customer/123456789\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `customer` | object | The customer details |
### `shopify_list_customers`
List customers from your Shopify store with optional filtering
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Yes | Your Shopify store domain \(e.g., mystore.myshopify.com\) |
| `first` | number | No | Number of customers to return \(default: 50, max: 250\) |
| `query` | string | No | Search query to filter customers \(e.g., "first_name:John" or "last_name:Smith" or "email:*@gmail.com" or "tag:vip"\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `customers` | array | List of customers |
| `pageInfo` | object | Pagination information |
### `shopify_update_customer`
Update an existing customer in your Shopify store
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Yes | Your Shopify store domain \(e.g., mystore.myshopify.com\) |
| `customerId` | string | Yes | Customer ID to update \(gid://shopify/Customer/123456789\) |
| `email` | string | No | New customer email address |
| `firstName` | string | No | New customer first name |
| `lastName` | string | No | New customer last name |
| `phone` | string | No | New customer phone number |
| `note` | string | No | New note about the customer |
| `tags` | array | No | New customer tags |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `customer` | object | The updated customer |
### `shopify_delete_customer`
Delete a customer from your Shopify store
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Yes | Your Shopify store domain \(e.g., mystore.myshopify.com\) |
| `customerId` | string | Yes | Customer ID to delete \(gid://shopify/Customer/123456789\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `deletedId` | string | The ID of the deleted customer |
### `shopify_list_inventory_items`
List inventory items from your Shopify store. Use this to find inventory item IDs by SKU.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Yes | Your Shopify store domain \(e.g., mystore.myshopify.com\) |
| `first` | number | No | Number of inventory items to return \(default: 50, max: 250\) |
| `query` | string | No | Search query to filter inventory items \(e.g., "sku:ABC123"\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `inventoryItems` | array | List of inventory items with their IDs, SKUs, and stock levels |
| `pageInfo` | object | Pagination information |
### `shopify_get_inventory_level`
Get inventory level for a product variant at a specific location
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Yes | Your Shopify store domain \(e.g., mystore.myshopify.com\) |
| `inventoryItemId` | string | Yes | Inventory item ID \(gid://shopify/InventoryItem/123456789\) |
| `locationId` | string | No | Location ID to filter by \(optional\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `inventoryLevel` | object | The inventory level details |
### `shopify_adjust_inventory`
Adjust inventory quantity for a product variant at a specific location
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Yes | Your Shopify store domain \(e.g., mystore.myshopify.com\) |
| `inventoryItemId` | string | Yes | Inventory item ID \(gid://shopify/InventoryItem/123456789\) |
| `locationId` | string | Yes | Location ID \(gid://shopify/Location/123456789\) |
| `delta` | number | Yes | Amount to adjust \(positive to increase, negative to decrease\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `inventoryLevel` | object | The inventory adjustment result |
### `shopify_list_locations`
List inventory locations from your Shopify store. Use this to find location IDs needed for inventory operations.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Yes | Your Shopify store domain \(e.g., mystore.myshopify.com\) |
| `first` | number | No | Number of locations to return \(default: 50, max: 250\) |
| `includeInactive` | boolean | No | Whether to include deactivated locations \(default: false\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `locations` | array | List of locations with their IDs, names, and addresses |
| `pageInfo` | object | Pagination information |
### `shopify_create_fulfillment`
Create a fulfillment to mark order items as shipped. Requires a fulfillment order ID (get this from the order details).
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Yes | Your Shopify store domain \(e.g., mystore.myshopify.com\) |
| `fulfillmentOrderId` | string | Yes | The fulfillment order ID \(e.g., gid://shopify/FulfillmentOrder/123456789\) |
| `trackingNumber` | string | No | Tracking number for the shipment |
| `trackingCompany` | string | No | Shipping carrier name \(e.g., UPS, FedEx, USPS, DHL\) |
| `trackingUrl` | string | No | URL to track the shipment |
| `notifyCustomer` | boolean | No | Whether to send a shipping confirmation email to the customer \(default: true\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `fulfillment` | object | The created fulfillment with tracking info and fulfilled items |
### `shopify_list_collections`
List product collections from your Shopify store. Filter by title, type (custom/smart), or handle.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Yes | Your Shopify store domain \(e.g., mystore.myshopify.com\) |
| `first` | number | No | Number of collections to return \(default: 50, max: 250\) |
| `query` | string | No | Search query to filter collections \(e.g., "title:Summer" or "collection_type:smart"\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `collections` | array | List of collections with their IDs, titles, and product counts |
| `pageInfo` | object | Pagination information |
### `shopify_get_collection`
Get a specific collection by ID, including its products. Use this to retrieve products within a collection.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `shopDomain` | string | Yes | Your Shopify store domain \(e.g., mystore.myshopify.com\) |
| `collectionId` | string | Yes | The collection ID \(e.g., gid://shopify/Collection/123456789\) |
| `productsFirst` | number | No | Number of products to return from this collection \(default: 50, max: 250\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `collection` | object | The collection details including its products |
## Notes
- Category: `tools`
- Type: `shopify`

View File

@@ -122,6 +122,82 @@ Read the latest messages from Slack channels. Retrieve conversation history with
| --------- | ---- | ----------- |
| `messages` | array | Array of message objects from the channel |
### `slack_list_channels`
List all channels in a Slack workspace. Returns public and private channels the bot has access to.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `authMethod` | string | No | Authentication method: oauth or bot_token |
| `botToken` | string | No | Bot token for Custom Bot |
| `includePrivate` | boolean | No | Include private channels the bot is a member of \(default: true\) |
| `excludeArchived` | boolean | No | Exclude archived channels \(default: true\) |
| `limit` | number | No | Maximum number of channels to return \(default: 100, max: 200\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `channels` | array | Array of channel objects from the workspace |
### `slack_list_members`
List all members (user IDs) in a Slack channel. Use with Get User Info to resolve IDs to names.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `authMethod` | string | No | Authentication method: oauth or bot_token |
| `botToken` | string | No | Bot token for Custom Bot |
| `channel` | string | Yes | Channel ID to list members from |
| `limit` | number | No | Maximum number of members to return \(default: 100, max: 200\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `members` | array | Array of user IDs who are members of the channel \(e.g., U1234567890\) |
### `slack_list_users`
List all users in a Slack workspace. Returns user profiles with names and avatars.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `authMethod` | string | No | Authentication method: oauth or bot_token |
| `botToken` | string | No | Bot token for Custom Bot |
| `includeDeleted` | boolean | No | Include deactivated/deleted users \(default: false\) |
| `limit` | number | No | Maximum number of users to return \(default: 100, max: 200\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `users` | array | Array of user objects from the workspace |
### `slack_get_user`
Get detailed information about a specific Slack user by their user ID.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `authMethod` | string | No | Authentication method: oauth or bot_token |
| `botToken` | string | No | Bot token for Custom Bot |
| `userId` | string | Yes | User ID to look up \(e.g., U1234567890\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `user` | object | Detailed user information |
### `slack_download`
Download a file from Slack

View File

@@ -7,7 +7,7 @@ import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="smtp"
color="#4A5568"
color="#2D3748"
/>
{/* MANUAL-CONTENT-START:intro */}

View File

@@ -0,0 +1,399 @@
---
title: SSH
description: Connect to remote servers via SSH
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="ssh"
color="#000000"
/>
{/* MANUAL-CONTENT-START:intro */}
[SSH (Secure Shell)](https://en.wikipedia.org/wiki/Secure_Shell) is a widely-used protocol for securely connecting to remote servers, allowing you to execute commands, transfer files, and manage systems over encrypted channels.
With SSH support in Sim, your agents can:
- **Execute remote commands**: Run shell commands on any SSH-accessible server
- **Upload and run scripts**: Easily transfer and execute multi-line scripts for advanced automation
- **Transfer files securely**: Upload and download files as part of your workflows (coming soon or via command)
- **Automate server management**: Perform updates, maintenance, monitoring, deployments, and configuration tasks programmatically
- **Use flexible authentication**: Connect with password or private key authentication, including support for encrypted keys
The following Sim SSH tools enable your agents to interact with servers as part of larger automations:
- `ssh_execute_command`: Run any single shell command remotely and capture output, status, and errors.
- `ssh_execute_script`: Upload and execute a full multi-line script on the remote system.
- (Additional tools coming soon, such as file transfer.)
By integrating SSH into your agent workflows, you can automate secure access, remote operations, and server orchestration—streamlining DevOps, IT automation, and custom remote management, all from within Sim.
{/* MANUAL-CONTENT-END */}
## Usage Instructions
Execute commands, transfer files, and manage remote servers via SSH. Supports password and private key authentication for secure server access.
## Tools
### `ssh_execute_command`
Execute a shell command on a remote SSH server
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `host` | string | Yes | SSH server hostname or IP address |
| `port` | number | Yes | SSH server port \(default: 22\) |
| `username` | string | Yes | SSH username |
| `password` | string | No | Password for authentication \(if not using private key\) |
| `privateKey` | string | No | Private key for authentication \(OpenSSH format\) |
| `passphrase` | string | No | Passphrase for encrypted private key |
| `command` | string | Yes | Shell command to execute on the remote server |
| `workingDirectory` | string | No | Working directory for command execution |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `stdout` | string | Standard output from command |
| `stderr` | string | Standard error output |
| `exitCode` | number | Command exit code |
| `success` | boolean | Whether command succeeded \(exit code 0\) |
| `message` | string | Operation status message |
### `ssh_execute_script`
Upload and execute a multi-line script on a remote SSH server
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `host` | string | Yes | SSH server hostname or IP address |
| `port` | number | Yes | SSH server port \(default: 22\) |
| `username` | string | Yes | SSH username |
| `password` | string | No | Password for authentication \(if not using private key\) |
| `privateKey` | string | No | Private key for authentication \(OpenSSH format\) |
| `passphrase` | string | No | Passphrase for encrypted private key |
| `script` | string | Yes | Script content to execute \(bash, python, etc.\) |
| `interpreter` | string | No | Script interpreter \(default: /bin/bash\) |
| `workingDirectory` | string | No | Working directory for script execution |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `stdout` | string | Standard output from script |
| `stderr` | string | Standard error output |
| `exitCode` | number | Script exit code |
| `success` | boolean | Whether script succeeded \(exit code 0\) |
| `scriptPath` | string | Temporary path where script was uploaded |
| `message` | string | Operation status message |
### `ssh_check_command_exists`
Check if a command/program exists on the remote SSH server
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `host` | string | Yes | SSH server hostname or IP address |
| `port` | number | Yes | SSH server port \(default: 22\) |
| `username` | string | Yes | SSH username |
| `password` | string | No | Password for authentication \(if not using private key\) |
| `privateKey` | string | No | Private key for authentication \(OpenSSH format\) |
| `passphrase` | string | No | Passphrase for encrypted private key |
| `commandName` | string | Yes | Command name to check \(e.g., docker, git, python3\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `commandExists` | boolean | Whether the command exists |
| `commandPath` | string | Full path to the command \(if found\) |
| `version` | string | Command version output \(if applicable\) |
| `message` | string | Operation status message |
### `ssh_upload_file`
Upload a file to a remote SSH server
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `host` | string | Yes | SSH server hostname or IP address |
| `port` | number | Yes | SSH server port \(default: 22\) |
| `username` | string | Yes | SSH username |
| `password` | string | No | Password for authentication \(if not using private key\) |
| `privateKey` | string | No | Private key for authentication \(OpenSSH format\) |
| `passphrase` | string | No | Passphrase for encrypted private key |
| `fileContent` | string | Yes | File content to upload \(base64 encoded for binary files\) |
| `fileName` | string | Yes | Name of the file being uploaded |
| `remotePath` | string | Yes | Destination path on the remote server |
| `permissions` | string | No | File permissions \(e.g., 0644\) |
| `overwrite` | boolean | No | Whether to overwrite existing files \(default: true\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `uploaded` | boolean | Whether the file was uploaded successfully |
| `remotePath` | string | Final path on the remote server |
| `size` | number | File size in bytes |
| `message` | string | Operation status message |
### `ssh_download_file`
Download a file from a remote SSH server
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `host` | string | Yes | SSH server hostname or IP address |
| `port` | number | Yes | SSH server port \(default: 22\) |
| `username` | string | Yes | SSH username |
| `password` | string | No | Password for authentication \(if not using private key\) |
| `privateKey` | string | No | Private key for authentication \(OpenSSH format\) |
| `passphrase` | string | No | Passphrase for encrypted private key |
| `remotePath` | string | Yes | Path of the file on the remote server |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `downloaded` | boolean | Whether the file was downloaded successfully |
| `fileContent` | string | File content \(base64 encoded for binary files\) |
| `fileName` | string | Name of the downloaded file |
| `remotePath` | string | Source path on the remote server |
| `size` | number | File size in bytes |
| `message` | string | Operation status message |
### `ssh_list_directory`
List files and directories in a remote directory
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `host` | string | Yes | SSH server hostname or IP address |
| `port` | number | Yes | SSH server port \(default: 22\) |
| `username` | string | Yes | SSH username |
| `password` | string | No | Password for authentication \(if not using private key\) |
| `privateKey` | string | No | Private key for authentication \(OpenSSH format\) |
| `passphrase` | string | No | Passphrase for encrypted private key |
| `path` | string | Yes | Remote directory path to list |
| `detailed` | boolean | No | Include file details \(size, permissions, modified date\) |
| `recursive` | boolean | No | List subdirectories recursively \(default: false\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `entries` | array | Array of file and directory entries |
### `ssh_check_file_exists`
Check if a file or directory exists on the remote SSH server
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `host` | string | Yes | SSH server hostname or IP address |
| `port` | number | Yes | SSH server port \(default: 22\) |
| `username` | string | Yes | SSH username |
| `password` | string | No | Password for authentication \(if not using private key\) |
| `privateKey` | string | No | Private key for authentication \(OpenSSH format\) |
| `passphrase` | string | No | Passphrase for encrypted private key |
| `path` | string | Yes | Remote file or directory path to check |
| `type` | string | No | Expected type: file, directory, or any \(default: any\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `exists` | boolean | Whether the path exists |
| `type` | string | Type of path \(file, directory, symlink, not_found\) |
| `size` | number | File size if it is a file |
| `permissions` | string | File permissions \(e.g., 0755\) |
| `modified` | string | Last modified timestamp |
| `message` | string | Operation status message |
### `ssh_create_directory`
Create a directory on the remote SSH server
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `host` | string | Yes | SSH server hostname or IP address |
| `port` | number | Yes | SSH server port \(default: 22\) |
| `username` | string | Yes | SSH username |
| `password` | string | No | Password for authentication \(if not using private key\) |
| `privateKey` | string | No | Private key for authentication \(OpenSSH format\) |
| `passphrase` | string | No | Passphrase for encrypted private key |
| `path` | string | Yes | Directory path to create |
| `recursive` | boolean | No | Create parent directories if they do not exist \(default: true\) |
| `permissions` | string | No | Directory permissions \(default: 0755\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `created` | boolean | Whether the directory was created successfully |
| `remotePath` | string | Created directory path |
| `alreadyExists` | boolean | Whether the directory already existed |
| `message` | string | Operation status message |
### `ssh_delete_file`
Delete a file or directory from the remote SSH server
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `host` | string | Yes | SSH server hostname or IP address |
| `port` | number | Yes | SSH server port \(default: 22\) |
| `username` | string | Yes | SSH username |
| `password` | string | No | Password for authentication \(if not using private key\) |
| `privateKey` | string | No | Private key for authentication \(OpenSSH format\) |
| `passphrase` | string | No | Passphrase for encrypted private key |
| `path` | string | Yes | Path to delete |
| `recursive` | boolean | No | Recursively delete directories \(default: false\) |
| `force` | boolean | No | Force deletion without confirmation \(default: false\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `deleted` | boolean | Whether the path was deleted successfully |
| `remotePath` | string | Deleted path |
| `message` | string | Operation status message |
### `ssh_move_rename`
Move or rename a file or directory on the remote SSH server
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `host` | string | Yes | SSH server hostname or IP address |
| `port` | number | Yes | SSH server port \(default: 22\) |
| `username` | string | Yes | SSH username |
| `password` | string | No | Password for authentication \(if not using private key\) |
| `privateKey` | string | No | Private key for authentication \(OpenSSH format\) |
| `passphrase` | string | No | Passphrase for encrypted private key |
| `sourcePath` | string | Yes | Current path of the file or directory |
| `destinationPath` | string | Yes | New path for the file or directory |
| `overwrite` | boolean | No | Overwrite destination if it exists \(default: false\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `moved` | boolean | Whether the operation was successful |
| `sourcePath` | string | Original path |
| `destinationPath` | string | New path |
| `message` | string | Operation status message |
### `ssh_get_system_info`
Retrieve system information from the remote SSH server
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `host` | string | Yes | SSH server hostname or IP address |
| `port` | number | Yes | SSH server port \(default: 22\) |
| `username` | string | Yes | SSH username |
| `password` | string | No | Password for authentication \(if not using private key\) |
| `privateKey` | string | No | Private key for authentication \(OpenSSH format\) |
| `passphrase` | string | No | Passphrase for encrypted private key |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `hostname` | string | Server hostname |
| `os` | string | Operating system \(e.g., Linux, Darwin\) |
| `architecture` | string | CPU architecture \(e.g., x64, arm64\) |
| `uptime` | number | System uptime in seconds |
| `memory` | json | Memory information \(total, free, used\) |
| `diskSpace` | json | Disk space information \(total, free, used\) |
| `message` | string | Operation status message |
### `ssh_read_file_content`
Read the contents of a remote file
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `host` | string | Yes | SSH server hostname or IP address |
| `port` | number | Yes | SSH server port \(default: 22\) |
| `username` | string | Yes | SSH username |
| `password` | string | No | Password for authentication \(if not using private key\) |
| `privateKey` | string | No | Private key for authentication \(OpenSSH format\) |
| `passphrase` | string | No | Passphrase for encrypted private key |
| `path` | string | Yes | Remote file path to read |
| `encoding` | string | No | File encoding \(default: utf-8\) |
| `maxSize` | number | No | Maximum file size to read in MB \(default: 10\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `content` | string | File content as string |
| `size` | number | File size in bytes |
| `lines` | number | Number of lines in file |
| `remotePath` | string | Remote file path |
| `message` | string | Operation status message |
### `ssh_write_file_content`
Write or append content to a remote file
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `host` | string | Yes | SSH server hostname or IP address |
| `port` | number | Yes | SSH server port \(default: 22\) |
| `username` | string | Yes | SSH username |
| `password` | string | No | Password for authentication \(if not using private key\) |
| `privateKey` | string | No | Private key for authentication \(OpenSSH format\) |
| `passphrase` | string | No | Passphrase for encrypted private key |
| `path` | string | Yes | Remote file path to write to |
| `content` | string | Yes | Content to write to the file |
| `mode` | string | No | Write mode: overwrite, append, or create \(default: overwrite\) |
| `permissions` | string | No | File permissions \(e.g., 0644\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `written` | boolean | Whether the file was written successfully |
| `remotePath` | string | File path |
| `size` | number | Final file size in bytes |
| `message` | string | Operation status message |
## Notes
- Category: `tools`
- Type: `ssh`

View File

@@ -0,0 +1,571 @@
---
title: WordPress
description: Manage WordPress content
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="wordpress"
color="#21759B"
/>
{/* MANUAL-CONTENT-START:intro */}
[WordPress](https://wordpress.org/) is the worlds leading open-source content management system, making it easy to publish and manage websites, blogs, and all types of online content. With WordPress, you can create and update posts or pages, organize your content with categories and tags, manage media files, moderate comments, and handle user accounts—allowing you to run everything from personal blogs to complex business sites.
Sims integration with WordPress lets your agents automate essential website tasks. You can programmatically create new blog posts with specific titles, content, categories, tags, and featured images. Updating existing posts—such as changing their content, title, or publishing status—is straightforward. You can also publish or save content as drafts, manage static pages, work with media uploads, oversee comments, and assign content to relevant organizational taxonomies.
By connecting WordPress to your automations, Sim empowers your agents to streamline content publishing, editorial workflows, and everyday site management—helping you keep your website fresh, organized, and secure without manual effort.
{/* MANUAL-CONTENT-END */}
## Usage Instructions
Integrate with WordPress to create, update, and manage posts, pages, media, comments, categories, tags, and users. Supports WordPress.com sites via OAuth and self-hosted WordPress sites using Application Passwords authentication.
## Tools
### `wordpress_create_post`
Create a new blog post in WordPress.com
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Yes | WordPress.com site ID or domain \(e.g., 12345678 or mysite.wordpress.com\) |
| `title` | string | Yes | Post title |
| `content` | string | No | Post content \(HTML or plain text\) |
| `status` | string | No | Post status: publish, draft, pending, private, or future |
| `excerpt` | string | No | Post excerpt |
| `categories` | string | No | Comma-separated category IDs |
| `tags` | string | No | Comma-separated tag IDs |
| `featuredMedia` | number | No | Featured image media ID |
| `slug` | string | No | URL slug for the post |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `post` | object | The created post |
### `wordpress_update_post`
Update an existing blog post in WordPress.com
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Yes | WordPress.com site ID or domain \(e.g., 12345678 or mysite.wordpress.com\) |
| `postId` | number | Yes | The ID of the post to update |
| `title` | string | No | Post title |
| `content` | string | No | Post content \(HTML or plain text\) |
| `status` | string | No | Post status: publish, draft, pending, private, or future |
| `excerpt` | string | No | Post excerpt |
| `categories` | string | No | Comma-separated category IDs |
| `tags` | string | No | Comma-separated tag IDs |
| `featuredMedia` | number | No | Featured image media ID |
| `slug` | string | No | URL slug for the post |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `post` | object | The updated post |
### `wordpress_delete_post`
Delete a blog post from WordPress.com
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Yes | WordPress.com site ID or domain \(e.g., 12345678 or mysite.wordpress.com\) |
| `postId` | number | Yes | The ID of the post to delete |
| `force` | boolean | No | Bypass trash and force delete permanently |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `deleted` | boolean | Whether the post was deleted |
| `post` | object | The deleted post |
### `wordpress_get_post`
Get a single blog post from WordPress.com by ID
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Yes | WordPress.com site ID or domain \(e.g., 12345678 or mysite.wordpress.com\) |
| `postId` | number | Yes | The ID of the post to retrieve |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `post` | object | The retrieved post |
### `wordpress_list_posts`
List blog posts from WordPress.com with optional filters
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Yes | WordPress.com site ID or domain \(e.g., 12345678 or mysite.wordpress.com\) |
| `perPage` | number | No | Number of posts per page \(default: 10, max: 100\) |
| `page` | number | No | Page number for pagination |
| `status` | string | No | Post status filter: publish, draft, pending, private |
| `author` | number | No | Filter by author ID |
| `categories` | string | No | Comma-separated category IDs to filter by |
| `tags` | string | No | Comma-separated tag IDs to filter by |
| `search` | string | No | Search term to filter posts |
| `orderBy` | string | No | Order by field: date, id, title, slug, modified |
| `order` | string | No | Order direction: asc or desc |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `posts` | array | List of posts |
### `wordpress_create_page`
Create a new page in WordPress.com
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Yes | WordPress.com site ID or domain \(e.g., 12345678 or mysite.wordpress.com\) |
| `title` | string | Yes | Page title |
| `content` | string | No | Page content \(HTML or plain text\) |
| `status` | string | No | Page status: publish, draft, pending, private |
| `excerpt` | string | No | Page excerpt |
| `parent` | number | No | Parent page ID for hierarchical pages |
| `menuOrder` | number | No | Order in page menu |
| `featuredMedia` | number | No | Featured image media ID |
| `slug` | string | No | URL slug for the page |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `page` | object | The created page |
### `wordpress_update_page`
Update an existing page in WordPress.com
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Yes | WordPress.com site ID or domain \(e.g., 12345678 or mysite.wordpress.com\) |
| `pageId` | number | Yes | The ID of the page to update |
| `title` | string | No | Page title |
| `content` | string | No | Page content \(HTML or plain text\) |
| `status` | string | No | Page status: publish, draft, pending, private |
| `excerpt` | string | No | Page excerpt |
| `parent` | number | No | Parent page ID for hierarchical pages |
| `menuOrder` | number | No | Order in page menu |
| `featuredMedia` | number | No | Featured image media ID |
| `slug` | string | No | URL slug for the page |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `page` | object | The updated page |
### `wordpress_delete_page`
Delete a page from WordPress.com
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Yes | WordPress.com site ID or domain \(e.g., 12345678 or mysite.wordpress.com\) |
| `pageId` | number | Yes | The ID of the page to delete |
| `force` | boolean | No | Bypass trash and force delete permanently |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `deleted` | boolean | Whether the page was deleted |
| `page` | object | The deleted page |
### `wordpress_get_page`
Get a single page from WordPress.com by ID
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Yes | WordPress.com site ID or domain \(e.g., 12345678 or mysite.wordpress.com\) |
| `pageId` | number | Yes | The ID of the page to retrieve |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `page` | object | The retrieved page |
### `wordpress_list_pages`
List pages from WordPress.com with optional filters
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Yes | WordPress.com site ID or domain \(e.g., 12345678 or mysite.wordpress.com\) |
| `perPage` | number | No | Number of pages per request \(default: 10, max: 100\) |
| `page` | number | No | Page number for pagination |
| `status` | string | No | Page status filter: publish, draft, pending, private |
| `parent` | number | No | Filter by parent page ID |
| `search` | string | No | Search term to filter pages |
| `orderBy` | string | No | Order by field: date, id, title, slug, modified, menu_order |
| `order` | string | No | Order direction: asc or desc |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `pages` | array | List of pages |
### `wordpress_upload_media`
Upload a media file (image, video, document) to WordPress.com
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Yes | WordPress.com site ID or domain \(e.g., 12345678 or mysite.wordpress.com\) |
| `file` | string | Yes | Base64 encoded file data or URL to fetch file from |
| `filename` | string | Yes | Filename with extension \(e.g., image.jpg\) |
| `title` | string | No | Media title |
| `caption` | string | No | Media caption |
| `altText` | string | No | Alternative text for accessibility |
| `description` | string | No | Media description |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `media` | object | The uploaded media item |
### `wordpress_get_media`
Get a single media item from WordPress.com by ID
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Yes | WordPress.com site ID or domain \(e.g., 12345678 or mysite.wordpress.com\) |
| `mediaId` | number | Yes | The ID of the media item to retrieve |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `media` | object | The retrieved media item |
### `wordpress_list_media`
List media items from the WordPress.com media library
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Yes | WordPress.com site ID or domain \(e.g., 12345678 or mysite.wordpress.com\) |
| `perPage` | number | No | Number of media items per request \(default: 10, max: 100\) |
| `page` | number | No | Page number for pagination |
| `search` | string | No | Search term to filter media |
| `mediaType` | string | No | Filter by media type: image, video, audio, application |
| `mimeType` | string | No | Filter by specific MIME type \(e.g., image/jpeg\) |
| `orderBy` | string | No | Order by field: date, id, title, slug |
| `order` | string | No | Order direction: asc or desc |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `media` | array | List of media items |
### `wordpress_delete_media`
Delete a media item from WordPress.com
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Yes | WordPress.com site ID or domain \(e.g., 12345678 or mysite.wordpress.com\) |
| `mediaId` | number | Yes | The ID of the media item to delete |
| `force` | boolean | No | Force delete \(media has no trash, so deletion is permanent\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `deleted` | boolean | Whether the media was deleted |
| `media` | object | The deleted media item |
### `wordpress_create_comment`
Create a new comment on a WordPress.com post
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Yes | WordPress.com site ID or domain \(e.g., 12345678 or mysite.wordpress.com\) |
| `postId` | number | Yes | The ID of the post to comment on |
| `content` | string | Yes | Comment content |
| `parent` | number | No | Parent comment ID for replies |
| `authorName` | string | No | Comment author display name |
| `authorEmail` | string | No | Comment author email |
| `authorUrl` | string | No | Comment author URL |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `comment` | object | The created comment |
### `wordpress_list_comments`
List comments from WordPress.com with optional filters
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Yes | WordPress.com site ID or domain \(e.g., 12345678 or mysite.wordpress.com\) |
| `perPage` | number | No | Number of comments per request \(default: 10, max: 100\) |
| `page` | number | No | Page number for pagination |
| `postId` | number | No | Filter by post ID |
| `status` | string | No | Filter by comment status: approved, hold, spam, trash |
| `search` | string | No | Search term to filter comments |
| `orderBy` | string | No | Order by field: date, id, parent |
| `order` | string | No | Order direction: asc or desc |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `comments` | array | List of comments |
### `wordpress_update_comment`
Update a comment in WordPress.com (content or status)
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Yes | WordPress.com site ID or domain \(e.g., 12345678 or mysite.wordpress.com\) |
| `commentId` | number | Yes | The ID of the comment to update |
| `content` | string | No | Updated comment content |
| `status` | string | No | Comment status: approved, hold, spam, trash |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `comment` | object | The updated comment |
### `wordpress_delete_comment`
Delete a comment from WordPress.com
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Yes | WordPress.com site ID or domain \(e.g., 12345678 or mysite.wordpress.com\) |
| `commentId` | number | Yes | The ID of the comment to delete |
| `force` | boolean | No | Bypass trash and force delete permanently |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `deleted` | boolean | Whether the comment was deleted |
| `comment` | object | The deleted comment |
### `wordpress_create_category`
Create a new category in WordPress.com
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Yes | WordPress.com site ID or domain \(e.g., 12345678 or mysite.wordpress.com\) |
| `name` | string | Yes | Category name |
| `description` | string | No | Category description |
| `parent` | number | No | Parent category ID for hierarchical categories |
| `slug` | string | No | URL slug for the category |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `category` | object | The created category |
### `wordpress_list_categories`
List categories from WordPress.com
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Yes | WordPress.com site ID or domain \(e.g., 12345678 or mysite.wordpress.com\) |
| `perPage` | number | No | Number of categories per request \(default: 10, max: 100\) |
| `page` | number | No | Page number for pagination |
| `search` | string | No | Search term to filter categories |
| `order` | string | No | Order direction: asc or desc |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `categories` | array | List of categories |
### `wordpress_create_tag`
Create a new tag in WordPress.com
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Yes | WordPress.com site ID or domain \(e.g., 12345678 or mysite.wordpress.com\) |
| `name` | string | Yes | Tag name |
| `description` | string | No | Tag description |
| `slug` | string | No | URL slug for the tag |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `tag` | object | The created tag |
### `wordpress_list_tags`
List tags from WordPress.com
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Yes | WordPress.com site ID or domain \(e.g., 12345678 or mysite.wordpress.com\) |
| `perPage` | number | No | Number of tags per request \(default: 10, max: 100\) |
| `page` | number | No | Page number for pagination |
| `search` | string | No | Search term to filter tags |
| `order` | string | No | Order direction: asc or desc |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `tags` | array | List of tags |
### `wordpress_get_current_user`
Get information about the currently authenticated WordPress.com user
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Yes | WordPress.com site ID or domain \(e.g., 12345678 or mysite.wordpress.com\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `user` | object | The current user |
### `wordpress_list_users`
List users from WordPress.com (requires admin privileges)
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Yes | WordPress.com site ID or domain \(e.g., 12345678 or mysite.wordpress.com\) |
| `perPage` | number | No | Number of users per request \(default: 10, max: 100\) |
| `page` | number | No | Page number for pagination |
| `search` | string | No | Search term to filter users |
| `roles` | string | No | Comma-separated role names to filter by |
| `order` | string | No | Order direction: asc or desc |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `users` | array | List of users |
### `wordpress_get_user`
Get a specific user from WordPress.com by ID
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Yes | WordPress.com site ID or domain \(e.g., 12345678 or mysite.wordpress.com\) |
| `userId` | number | Yes | The ID of the user to retrieve |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `user` | object | The retrieved user |
### `wordpress_search_content`
Search across all content types in WordPress.com (posts, pages, media)
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Yes | WordPress.com site ID or domain \(e.g., 12345678 or mysite.wordpress.com\) |
| `query` | string | Yes | Search query |
| `perPage` | number | No | Number of results per request \(default: 10, max: 100\) |
| `page` | number | No | Page number for pagination |
| `type` | string | No | Filter by content type: post, page, attachment |
| `subtype` | string | No | Filter by post type slug \(e.g., post, page\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `results` | array | Search results |
## Notes
- Category: `tools`
- Type: `wordpress`

View File

@@ -0,0 +1,275 @@
---
title: Zapier
description: Execute actions across 7,000+ apps using Zapier AI Actions
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="zapier"
color="#FFFFFF"
/>
{/* MANUAL-CONTENT-START:intro */}
[Zapier](https://zapier.com/) connects 7,000+ apps and automates workflows without manual coding. The Zapier integration in Sim empowers you to execute, search, build, and manage powerful AI-driven actions across thousands of applications—all with plain English instructions.
With Zapier AI Actions in Sim, you can:
- **Execute Actions:** Instantly trigger any stored AI Action in your Zapier account. Launch emails, messages, project updates, document workflows, CRM updates, and much more.
- **List Actions:** Retrieve a list of your available AI Actions configured in Zapier. Discover what's possible and find the right tool for your workflow.
- **Search Apps:** Find apps in Zapiers ecosystem by name or keyword. Easily check if the app you need is supported before building automations.
- **Find Actions (Guess):** Describe what you want to accomplish in plain English (e.g., "send a Slack message", "create a Google Sheet row"), and let Zapiers AI suggest matching actions—even across unfamiliar apps or APIs.
- **Create Actions:** Programmatically define new AI Actions by specifying the target app, action type (write, read, search), and required parameters, directly from your workflow.
By combining these capabilities, you can search for apps, define new AI Actions, discover possible automations, list available actions, and execute any workflow—fully automated, with the power of both Sim and Zapier.
{/* MANUAL-CONTENT-END */}
## Usage Instructions
Connect to Zapier AI Actions to execute any of 30,000+ actions across 7,000+ apps. Send emails, create documents, update CRMs, post messages, and more - all through natural language instructions. Requires a Zapier AI Actions API key.
## Tools
### `zapier_execute_action`
Execute a stored AI Action in Zapier. Runs any of the 30,000+ actions across 7,000+ apps that Zapier supports.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Zapier AI Actions API key from actions.zapier.com/credentials |
| `actionId` | string | Yes | The ID of the AI Action to execute |
| `instructions` | string | Yes | Plain English instructions for what the action should do \(e.g., "Send a message about the weekly report to #general"\) |
| `previewOnly` | boolean | No | If true, preview the execution without actually running it |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `executionLogId` | string | Unique identifier for this execution \(can be used for feedback\) |
| `actionUsed` | string | Name of the action that was executed |
| `inputParams` | json | Parameters that were passed to the API |
| `resolvedParams` | json | Parameters that the AI resolved for execution |
| `results` | json | Results from the action execution |
| `resultFieldLabels` | json | Human-readable labels for result fields |
| `status` | string | Execution status: success, error, empty, preview, or halted |
| `error` | string | Error message if execution failed |
### `zapier_list_actions`
List all AI Actions configured in your Zapier account. Returns stored actions that can be executed.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Zapier AI Actions API key from actions.zapier.com/credentials |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `actions` | json | Array of configured AI Actions with id, description, actionType, app, appLabel, action, actionLabel, params, accountId, authenticationId, needs |
| `configurationLink` | string | Link to configure more actions in Zapier |
### `zapier_search_apps`
Search for apps available in Zapier. Returns apps with their available action counts.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Zapier AI Actions API key from actions.zapier.com/credentials |
| `query` | string | No | Optional search query to filter apps by name |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `apps` | json | Array of apps with app, name, logoUrl, authType, actions \(raw counts by type\), actionCount, writeActionCount, searchActionCount, readActionCount |
### `zapier_guess_actions`
Find relevant Zapier actions using natural language. Searches across 30,000+ actions to find the best matches for your query.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Zapier AI Actions API key from actions.zapier.com/credentials |
| `query` | string | Yes | Natural language description of what you want to do \(e.g., "send a Slack message", "create a Google Doc"\) |
| `actionTypes` | array | No | Types of actions to search for: write, search, read. If not specified, returns all types. |
| `count` | number | No | Maximum number of results to return \(default: 25\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `actions` | json | Array of matching actions with app, action, actionType, name \(combined app/action name\), description, image, and score |
### `zapier_create_action`
Create a new stored AI Action in Zapier. The action can then be executed with zapier_execute_action.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Zapier AI Actions API key from actions.zapier.com/credentials |
| `app` | string | Yes | The app identifier \(e.g., "slack", "gmail", "google-docs"\) |
| `action` | string | Yes | The action identifier \(e.g., "send_channel_message", "send_email"\) |
| `actionType` | string | No | Type of action: write, search, or read. Defaults to write. |
| `accountId` | number | No | Zapier account ID |
| `authenticationId` | number | No | Authentication ID for the app connection |
| `meta` | json | No | Metadata object with params labels, app_label, action_label, authentication_label, app_needs_auth |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `id` | string | The ID of the created AI Action \(use this with execute_action\) |
| `description` | string | Description of the action |
| `actionType` | string | Type of action \(write, search, read, read_bulk, search_or_write, search_and_write\) |
| `app` | string | App identifier |
| `appLabel` | string | Human-readable app label from meta |
| `action` | string | Action identifier |
| `actionLabel` | string | Human-readable action label from meta |
### `zapier_stateless_execute`
Execute any Zapier action directly without creating a stored AI Action first. Provide the app, action, and instructions.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Zapier AI Actions API key from actions.zapier.com/credentials |
| `app` | string | Yes | The app to use \(e.g., "SlackAPI", "GoogleSheetsV2API", "GmailV2API"\) |
| `action` | string | Yes | The action to run \(e.g., "direct_message", "add_row", "send_email"\) |
| `instructions` | string | Yes | Plain English instructions about how to run the action \(e.g., "Send a message saying hello to #general"\) |
| `actionType` | string | No | Type of action: write, search, read, read_bulk, search_or_write, search_and_write |
| `previewOnly` | boolean | No | If true, preview the execution without actually running it |
| `authenticationId` | number | No | Authentication ID for the app connection |
| `accountId` | number | No | Zapier account ID |
| `providerId` | string | No | Provider ID for AI Actions |
| `tokenBudget` | number | No | Max tokens per field \(default: 1000\) |
| `skipParamGuessing` | boolean | No | Skip AI parameter guessing |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `executionLogId` | string | Unique identifier for this execution |
| `actionUsed` | string | Name of the action that was executed |
| `inputParams` | json | Parameters that were passed to the API |
| `resolvedParams` | json | Parameters that the AI resolved for execution |
| `results` | json | Results from the action execution |
| `resultFieldLabels` | json | Human-readable labels for result fields |
| `status` | string | Execution status: success, error, empty, preview, or halted |
| `error` | string | Error message if execution failed |
### `zapier_search_app_actions`
Search for available actions within a specific Zapier app. Returns all actions the app supports.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Zapier AI Actions API key from actions.zapier.com/credentials |
| `app` | string | Yes | The app identifier to search actions for \(e.g., "SlackAPI", "GmailV2API"\) |
| `query` | string | No | Optional search query to filter actions by name or description |
| `actionTypes` | array | No | Filter by action types: write, search, read, read_bulk, search_or_write, search_and_write. Defaults to write and search. |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `actions` | json | Array of actions with app, action, actionType, displayName, description, relevancyScore, appNeedsAuth, appInfo |
### `zapier_get_action_details`
Get detailed information about a specific action including its required inputs (needs) and outputs (gives).
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Zapier AI Actions API key from actions.zapier.com/credentials |
| `app` | string | Yes | The app identifier \(e.g., "SlackAPI", "GmailV2API"\) |
| `action` | string | Yes | The action identifier \(e.g., "send_channel_message", "send_email"\) |
| `actionType` | string | No | Type of action: write, search, read. Defaults to write. |
| `includeNeeds` | boolean | No | Include input requirements \(needs\). Defaults to true. |
| `includeGives` | boolean | No | Include output specifications \(gives\). Defaults to false. |
| `includeSample` | boolean | No | Include sample execution result. Defaults to false. |
| `accountId` | number | No | Zapier account ID |
| `authenticationId` | number | No | Authentication ID for the app connection |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `action` | json | Action metadata including type, key, name, noun, and description |
| `needs` | json | Array of input requirements with key, type, label, required, helpText, defaultValue, choices, dependsOn |
| `gives` | json | Array of output fields with key, label, type, important, sample |
| `sample` | json | Sample execution result if requested |
| `customNeedsProbability` | number | Probability \(0-1\) that this action has custom/dynamic input fields |
### `zapier_update_action`
Update an existing stored AI Action configuration in Zapier.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Zapier AI Actions API key from actions.zapier.com/credentials |
| `actionId` | string | Yes | The ID of the AI Action to update |
| `app` | string | Yes | The app identifier \(e.g., "SlackAPI", "GmailV2API"\) |
| `action` | string | Yes | The action identifier \(e.g., "send_channel_message", "send_email"\) |
| `actionType` | string | No | Type of action: write, search, read, read_bulk, search_or_write, search_and_write |
| `accountId` | number | No | Zapier account ID |
| `authenticationId` | number | No | Authentication ID for the app connection |
| `meta` | json | No | Metadata object with params labels, app_label, action_label, authentication_label, app_needs_auth |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `id` | string | The ID of the updated AI Action |
| `description` | string | Description of the action |
| `actionType` | string | Type of action |
| `app` | string | App identifier |
| `appLabel` | string | Human-readable app label |
| `action` | string | Action identifier |
| `actionLabel` | string | Human-readable action label |
### `zapier_delete_action`
Delete a stored AI Action from Zapier.
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `apiKey` | string | Yes | Zapier AI Actions API key from actions.zapier.com/credentials |
| `actionId` | string | Yes | The ID of the AI Action to delete |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `deleted` | boolean | Whether the action was successfully deleted |
| `message` | string | Status message |
## Notes
- Category: `tools`
- Type: `zapier`

View File

@@ -117,6 +117,9 @@ Create a new ticket in Zendesk with support for custom fields
| `type` | string | No | Type \(problem, incident, question, task\) |
| `tags` | string | No | Comma-separated tags |
| `assigneeId` | string | No | Assignee user ID |
| `groupId` | string | No | Group ID |
| `requesterId` | string | No | Requester user ID |
| `customFields` | string | No | Custom fields as JSON object \(e.g., \{"field_id": "value"\}\) |
#### Output

View File

@@ -0,0 +1,255 @@
---
title: Zoom
description: Create and manage Zoom meetings and recordings
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="zoom"
color="#2D8CFF"
/>
{/* MANUAL-CONTENT-START:intro */}
[Zoom](https://zoom.us/) is a leading cloud-based communications platform for video meetings, webinars, and online collaboration. It allows users and organizations to easily schedule, host, and manage meetings, providing tools for screen sharing, chat, recordings, and more.
With Zoom, you can:
- **Schedule and manage meetings**: Create instant or scheduled meetings, including recurring events
- **Configure meeting options**: Set meeting passwords, enable waiting rooms, and control participant video/audio
- **Send invitations and share details**: Retrieve meeting invitations and information for easy sharing
- **Get and update meeting data**: Access meeting details, modify existing meetings, and manage settings programmatically
In Sim, the Zoom integration empowers your agents to automate scheduling and meeting management. Use tool actions to:
- Programmatically create new meetings with custom settings
- List all meetings for a specific user (or yourself)
- Retrieve details or invitations for any meeting
- Update or delete existing meetings directly from your automations
These capabilities let you streamline remote collaboration, automate recurring video sessions, and manage your organization's Zoom environment all as part of your workflows.
{/* MANUAL-CONTENT-END */}
## Usage Instructions
Integrate Zoom into workflows. Create, list, update, and delete Zoom meetings. Get meeting details, invitations, recordings, and participants. Manage cloud recordings programmatically.
## Tools
### `zoom_create_meeting`
Create a new Zoom meeting
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `userId` | string | Yes | The user ID or email address. Use "me" for the authenticated user. |
| `topic` | string | Yes | Meeting topic |
| `type` | number | No | Meeting type: 1=instant, 2=scheduled, 3=recurring no fixed time, 8=recurring fixed time |
| `startTime` | string | No | Meeting start time in ISO 8601 format \(e.g., 2025-06-03T10:00:00Z\) |
| `duration` | number | No | Meeting duration in minutes |
| `timezone` | string | No | Timezone for the meeting \(e.g., America/Los_Angeles\) |
| `password` | string | No | Meeting password |
| `agenda` | string | No | Meeting agenda |
| `hostVideo` | boolean | No | Start with host video on |
| `participantVideo` | boolean | No | Start with participant video on |
| `joinBeforeHost` | boolean | No | Allow participants to join before host |
| `muteUponEntry` | boolean | No | Mute participants upon entry |
| `waitingRoom` | boolean | No | Enable waiting room |
| `autoRecording` | string | No | Auto recording setting: local, cloud, or none |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `meeting` | object | The created meeting with all its properties |
### `zoom_list_meetings`
List all meetings for a Zoom user
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `userId` | string | Yes | The user ID or email address. Use "me" for the authenticated user. |
| `type` | string | No | Meeting type filter: scheduled, live, upcoming, upcoming_meetings, or previous_meetings |
| `pageSize` | number | No | Number of records per page \(max 300\) |
| `nextPageToken` | string | No | Token for pagination to get next page of results |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `meetings` | array | List of meetings |
| `pageInfo` | object | Pagination information |
### `zoom_get_meeting`
Get details of a specific Zoom meeting
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `meetingId` | string | Yes | The meeting ID |
| `occurrenceId` | string | No | Occurrence ID for recurring meetings |
| `showPreviousOccurrences` | boolean | No | Show previous occurrences for recurring meetings |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `meeting` | object | The meeting details |
### `zoom_update_meeting`
Update an existing Zoom meeting
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `meetingId` | string | Yes | The meeting ID to update |
| `topic` | string | No | Meeting topic |
| `type` | number | No | Meeting type: 1=instant, 2=scheduled, 3=recurring no fixed time, 8=recurring fixed time |
| `startTime` | string | No | Meeting start time in ISO 8601 format \(e.g., 2025-06-03T10:00:00Z\) |
| `duration` | number | No | Meeting duration in minutes |
| `timezone` | string | No | Timezone for the meeting \(e.g., America/Los_Angeles\) |
| `password` | string | No | Meeting password |
| `agenda` | string | No | Meeting agenda |
| `hostVideo` | boolean | No | Start with host video on |
| `participantVideo` | boolean | No | Start with participant video on |
| `joinBeforeHost` | boolean | No | Allow participants to join before host |
| `muteUponEntry` | boolean | No | Mute participants upon entry |
| `waitingRoom` | boolean | No | Enable waiting room |
| `autoRecording` | string | No | Auto recording setting: local, cloud, or none |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the meeting was updated successfully |
### `zoom_delete_meeting`
Delete or cancel a Zoom meeting
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `meetingId` | string | Yes | The meeting ID to delete |
| `occurrenceId` | string | No | Occurrence ID for deleting a specific occurrence of a recurring meeting |
| `scheduleForReminder` | boolean | No | Send cancellation reminder email to registrants |
| `cancelMeetingReminder` | boolean | No | Send cancellation email to registrants and alternative hosts |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the meeting was deleted successfully |
### `zoom_get_meeting_invitation`
Get the meeting invitation text for a Zoom meeting
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `meetingId` | string | Yes | The meeting ID |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `invitation` | string | The meeting invitation text |
### `zoom_list_recordings`
List all cloud recordings for a Zoom user
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `userId` | string | Yes | The user ID or email address. Use "me" for the authenticated user. |
| `from` | string | No | Start date in yyyy-mm-dd format \(within last 6 months\) |
| `to` | string | No | End date in yyyy-mm-dd format |
| `pageSize` | number | No | Number of records per page \(max 300\) |
| `nextPageToken` | string | No | Token for pagination to get next page of results |
| `trash` | boolean | No | Set to true to list recordings from trash |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `recordings` | array | List of recordings |
| `pageInfo` | object | Pagination information |
### `zoom_get_meeting_recordings`
Get all recordings for a specific Zoom meeting
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `meetingId` | string | Yes | The meeting ID or meeting UUID |
| `includeFolderItems` | boolean | No | Include items within a folder |
| `ttl` | number | No | Time to live for download URLs in seconds \(max 604800\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `recording` | object | The meeting recording with all files |
### `zoom_delete_recording`
Delete cloud recordings for a Zoom meeting
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `meetingId` | string | Yes | The meeting ID or meeting UUID |
| `recordingId` | string | No | Specific recording file ID to delete. If not provided, deletes all recordings. |
| `action` | string | No | Delete action: "trash" \(move to trash\) or "delete" \(permanently delete\) |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `success` | boolean | Whether the recording was deleted successfully |
### `zoom_list_past_participants`
List participants from a past Zoom meeting
#### Input
| Parameter | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `meetingId` | string | Yes | The past meeting ID or UUID |
| `pageSize` | number | No | Number of records per page \(max 300\) |
| `nextPageToken` | string | No | Token for pagination to get next page of results |
#### Output
| Parameter | Type | Description |
| --------- | ---- | ----------- |
| `participants` | array | List of meeting participants |
| `pageInfo` | object | Pagination information |
## Notes
- Category: `tools`
- Type: `zoom`

Some files were not shown because too many files have changed in this diff Show More