naftiko: 1.0.0-alpha2 info: label: Zulip REST API — server_and_organizations description: 'Zulip REST API — server_and_organizations. 24 operations. Lead operation: Get all data exports. Self-contained Naftiko capability covering one Zulip business surface.' tags: - Zulip - server_and_organizations created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: ZULIP_API_KEY: ZULIP_API_KEY capability: consumes: - type: http namespace: zulip-server-and-organizations baseUri: https://{subdomain}.zulipchat.com/api/v1 description: Zulip REST API — server_and_organizations business capability. Self-contained, no shared references. resources: - name: export-realm path: /export/realm operations: - name: getrealmexports method: GET description: Get all data exports outputRawFormat: json outputParameters: - name: result type: object value: $. - name: exportrealm method: POST description: Create a data export outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: export-realm-consents path: /export/realm/consents operations: - name: getrealmexportconsents method: GET description: Get data export consent state outputRawFormat: json outputParameters: - name: result type: object value: $. - name: realm-domains path: /realm/domains operations: - name: getrealmdomains method: GET description: Get allowed domains outputRawFormat: json outputParameters: - name: result type: object value: $. - name: addrealmdomain method: POST description: Add an allowed domain outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: realm-domains-domain path: /realm/domains/{domain} operations: - name: patchrealmdomain method: PATCH description: Update an allowed domain outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: domain in: path type: string description: The domain to update. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deleterealmdomain method: DELETE description: Remove an allowed domain outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: domain in: path type: string description: The domain to remove. required: true - name: realm-emoji path: /realm/emoji operations: - name: getcustomemoji method: GET description: Get all custom emoji outputRawFormat: json outputParameters: - name: result type: object value: $. - name: realm-emoji-emoji_name path: /realm/emoji/{emoji_name} operations: - name: uploadcustomemoji method: POST description: Upload custom emoji outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: emoji_name in: path type: string description: The name that should be associated with the uploaded emoji image/gif. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: deactivatecustomemoji method: DELETE description: Deactivate custom emoji outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: emoji_name in: path type: string description: The name of the custom emoji to deactivate. required: true - name: realm-filters path: /realm/filters operations: - name: addlinkifier method: POST description: Add a linkifier outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: realm-filters-filter_id path: /realm/filters/{filter_id} operations: - name: removelinkifier method: DELETE description: Remove a linkifier outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: filter_id in: path type: integer description: The ID of the linkifier that you want to remove. required: true - name: updatelinkifier method: PATCH description: Update a linkifier outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: filter_id in: path type: integer description: The ID of the linkifier that you want to update. required: true - name: body in: body type: object description: Request body (JSON). required: true - name: realm-linkifiers path: /realm/linkifiers operations: - name: getlinkifiers method: GET description: Get linkifiers outputRawFormat: json outputParameters: - name: result type: object value: $. - name: reorderlinkifiers method: PATCH description: Reorder linkifiers outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: realm-playgrounds path: /realm/playgrounds operations: - name: addcodeplayground method: POST description: Add a code playground outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: realm-playgrounds-playground_id path: /realm/playgrounds/{playground_id} operations: - name: removecodeplayground method: DELETE description: Remove a code playground outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: playground_id in: path type: integer description: The ID of the playground that you want to remove. required: true - name: realm-presence path: /realm/presence operations: - name: getpresence method: GET description: Get presence of all users outputRawFormat: json outputParameters: - name: result type: object value: $. - name: realm-profile_fields path: /realm/profile_fields operations: - name: getcustomprofilefields method: GET description: Get all custom profile fields outputRawFormat: json outputParameters: - name: result type: object value: $. - name: reordercustomprofilefields method: PATCH description: Reorder custom profile fields outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: createcustomprofilefield method: POST description: Create a custom profile field outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: realm-test_welcome_bot_custom_message path: /realm/test_welcome_bot_custom_message operations: - name: testwelcomebotcustommessage method: POST description: Test welcome bot custom message outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: realm-user_settings_defaults path: /realm/user_settings_defaults operations: - name: updaterealmusersettingsdefaults method: PATCH description: Update realm-level defaults of user settings outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: server_settings path: /server_settings operations: - name: getserversettings method: GET description: Get server settings outputRawFormat: json outputParameters: - name: result type: object value: $. authentication: type: basic username: '{{env.ZULIP_USER}}' password: '{{env.ZULIP_PASS}}' exposes: - type: rest namespace: zulip-server-and-organizations-rest port: 8080 description: REST adapter for Zulip REST API — server_and_organizations. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/export/realm name: export-realm description: REST surface for export-realm. operations: - method: GET name: getrealmexports description: Get all data exports call: zulip-server-and-organizations.getrealmexports outputParameters: - type: object mapping: $. - method: POST name: exportrealm description: Create a data export call: zulip-server-and-organizations.exportrealm with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/export/realm/consents name: export-realm-consents description: REST surface for export-realm-consents. operations: - method: GET name: getrealmexportconsents description: Get data export consent state call: zulip-server-and-organizations.getrealmexportconsents outputParameters: - type: object mapping: $. - path: /v1/realm/domains name: realm-domains description: REST surface for realm-domains. operations: - method: GET name: getrealmdomains description: Get allowed domains call: zulip-server-and-organizations.getrealmdomains outputParameters: - type: object mapping: $. - method: POST name: addrealmdomain description: Add an allowed domain call: zulip-server-and-organizations.addrealmdomain with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/realm/domains/{domain} name: realm-domains-domain description: REST surface for realm-domains-domain. operations: - method: PATCH name: patchrealmdomain description: Update an allowed domain call: zulip-server-and-organizations.patchrealmdomain with: domain: rest.domain body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deleterealmdomain description: Remove an allowed domain call: zulip-server-and-organizations.deleterealmdomain with: domain: rest.domain outputParameters: - type: object mapping: $. - path: /v1/realm/emoji name: realm-emoji description: REST surface for realm-emoji. operations: - method: GET name: getcustomemoji description: Get all custom emoji call: zulip-server-and-organizations.getcustomemoji outputParameters: - type: object mapping: $. - path: /v1/realm/emoji/{emoji-name} name: realm-emoji-emoji-name description: REST surface for realm-emoji-emoji_name. operations: - method: POST name: uploadcustomemoji description: Upload custom emoji call: zulip-server-and-organizations.uploadcustomemoji with: emoji_name: rest.emoji_name body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deactivatecustomemoji description: Deactivate custom emoji call: zulip-server-and-organizations.deactivatecustomemoji with: emoji_name: rest.emoji_name outputParameters: - type: object mapping: $. - path: /v1/realm/filters name: realm-filters description: REST surface for realm-filters. operations: - method: POST name: addlinkifier description: Add a linkifier call: zulip-server-and-organizations.addlinkifier with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/realm/filters/{filter-id} name: realm-filters-filter-id description: REST surface for realm-filters-filter_id. operations: - method: DELETE name: removelinkifier description: Remove a linkifier call: zulip-server-and-organizations.removelinkifier with: filter_id: rest.filter_id outputParameters: - type: object mapping: $. - method: PATCH name: updatelinkifier description: Update a linkifier call: zulip-server-and-organizations.updatelinkifier with: filter_id: rest.filter_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/realm/linkifiers name: realm-linkifiers description: REST surface for realm-linkifiers. operations: - method: GET name: getlinkifiers description: Get linkifiers call: zulip-server-and-organizations.getlinkifiers outputParameters: - type: object mapping: $. - method: PATCH name: reorderlinkifiers description: Reorder linkifiers call: zulip-server-and-organizations.reorderlinkifiers with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/realm/playgrounds name: realm-playgrounds description: REST surface for realm-playgrounds. operations: - method: POST name: addcodeplayground description: Add a code playground call: zulip-server-and-organizations.addcodeplayground with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/realm/playgrounds/{playground-id} name: realm-playgrounds-playground-id description: REST surface for realm-playgrounds-playground_id. operations: - method: DELETE name: removecodeplayground description: Remove a code playground call: zulip-server-and-organizations.removecodeplayground with: playground_id: rest.playground_id outputParameters: - type: object mapping: $. - path: /v1/realm/presence name: realm-presence description: REST surface for realm-presence. operations: - method: GET name: getpresence description: Get presence of all users call: zulip-server-and-organizations.getpresence outputParameters: - type: object mapping: $. - path: /v1/realm/profile-fields name: realm-profile-fields description: REST surface for realm-profile_fields. operations: - method: GET name: getcustomprofilefields description: Get all custom profile fields call: zulip-server-and-organizations.getcustomprofilefields outputParameters: - type: object mapping: $. - method: PATCH name: reordercustomprofilefields description: Reorder custom profile fields call: zulip-server-and-organizations.reordercustomprofilefields with: body: rest.body outputParameters: - type: object mapping: $. - method: POST name: createcustomprofilefield description: Create a custom profile field call: zulip-server-and-organizations.createcustomprofilefield with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/realm/test-welcome-bot-custom-message name: realm-test-welcome-bot-custom-message description: REST surface for realm-test_welcome_bot_custom_message. operations: - method: POST name: testwelcomebotcustommessage description: Test welcome bot custom message call: zulip-server-and-organizations.testwelcomebotcustommessage with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/realm/user-settings-defaults name: realm-user-settings-defaults description: REST surface for realm-user_settings_defaults. operations: - method: PATCH name: updaterealmusersettingsdefaults description: Update realm-level defaults of user settings call: zulip-server-and-organizations.updaterealmusersettingsdefaults with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/server-settings name: server-settings description: REST surface for server_settings. operations: - method: GET name: getserversettings description: Get server settings call: zulip-server-and-organizations.getserversettings outputParameters: - type: object mapping: $. - type: mcp namespace: zulip-server-and-organizations-mcp port: 9090 transport: http description: MCP adapter for Zulip REST API — server_and_organizations. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-all-data-exports description: Get all data exports hints: readOnly: true destructive: false idempotent: true call: zulip-server-and-organizations.getrealmexports outputParameters: - type: object mapping: $. - name: create-data-export description: Create a data export hints: readOnly: false destructive: false idempotent: false call: zulip-server-and-organizations.exportrealm with: body: tools.body outputParameters: - type: object mapping: $. - name: get-data-export-consent-state description: Get data export consent state hints: readOnly: true destructive: false idempotent: true call: zulip-server-and-organizations.getrealmexportconsents outputParameters: - type: object mapping: $. - name: get-allowed-domains description: Get allowed domains hints: readOnly: true destructive: false idempotent: true call: zulip-server-and-organizations.getrealmdomains outputParameters: - type: object mapping: $. - name: add-allowed-domain description: Add an allowed domain hints: readOnly: false destructive: false idempotent: false call: zulip-server-and-organizations.addrealmdomain with: body: tools.body outputParameters: - type: object mapping: $. - name: update-allowed-domain description: Update an allowed domain hints: readOnly: false destructive: false idempotent: true call: zulip-server-and-organizations.patchrealmdomain with: domain: tools.domain body: tools.body outputParameters: - type: object mapping: $. - name: remove-allowed-domain description: Remove an allowed domain hints: readOnly: false destructive: true idempotent: true call: zulip-server-and-organizations.deleterealmdomain with: domain: tools.domain outputParameters: - type: object mapping: $. - name: get-all-custom-emoji description: Get all custom emoji hints: readOnly: true destructive: false idempotent: true call: zulip-server-and-organizations.getcustomemoji outputParameters: - type: object mapping: $. - name: upload-custom-emoji description: Upload custom emoji hints: readOnly: false destructive: false idempotent: false call: zulip-server-and-organizations.uploadcustomemoji with: emoji_name: tools.emoji_name body: tools.body outputParameters: - type: object mapping: $. - name: deactivate-custom-emoji description: Deactivate custom emoji hints: readOnly: false destructive: true idempotent: true call: zulip-server-and-organizations.deactivatecustomemoji with: emoji_name: tools.emoji_name outputParameters: - type: object mapping: $. - name: add-linkifier description: Add a linkifier hints: readOnly: false destructive: false idempotent: false call: zulip-server-and-organizations.addlinkifier with: body: tools.body outputParameters: - type: object mapping: $. - name: remove-linkifier description: Remove a linkifier hints: readOnly: false destructive: true idempotent: true call: zulip-server-and-organizations.removelinkifier with: filter_id: tools.filter_id outputParameters: - type: object mapping: $. - name: update-linkifier description: Update a linkifier hints: readOnly: false destructive: false idempotent: true call: zulip-server-and-organizations.updatelinkifier with: filter_id: tools.filter_id body: tools.body outputParameters: - type: object mapping: $. - name: get-linkifiers description: Get linkifiers hints: readOnly: true destructive: false idempotent: true call: zulip-server-and-organizations.getlinkifiers outputParameters: - type: object mapping: $. - name: reorder-linkifiers description: Reorder linkifiers hints: readOnly: false destructive: false idempotent: true call: zulip-server-and-organizations.reorderlinkifiers with: body: tools.body outputParameters: - type: object mapping: $. - name: add-code-playground description: Add a code playground hints: readOnly: false destructive: false idempotent: false call: zulip-server-and-organizations.addcodeplayground with: body: tools.body outputParameters: - type: object mapping: $. - name: remove-code-playground description: Remove a code playground hints: readOnly: false destructive: true idempotent: true call: zulip-server-and-organizations.removecodeplayground with: playground_id: tools.playground_id outputParameters: - type: object mapping: $. - name: get-presence-all-users description: Get presence of all users hints: readOnly: true destructive: false idempotent: true call: zulip-server-and-organizations.getpresence outputParameters: - type: object mapping: $. - name: get-all-custom-profile-fields description: Get all custom profile fields hints: readOnly: true destructive: false idempotent: true call: zulip-server-and-organizations.getcustomprofilefields outputParameters: - type: object mapping: $. - name: reorder-custom-profile-fields description: Reorder custom profile fields hints: readOnly: false destructive: false idempotent: true call: zulip-server-and-organizations.reordercustomprofilefields with: body: tools.body outputParameters: - type: object mapping: $. - name: create-custom-profile-field description: Create a custom profile field hints: readOnly: false destructive: false idempotent: false call: zulip-server-and-organizations.createcustomprofilefield with: body: tools.body outputParameters: - type: object mapping: $. - name: test-welcome-bot-custom-message description: Test welcome bot custom message hints: readOnly: true destructive: false idempotent: false call: zulip-server-and-organizations.testwelcomebotcustommessage with: body: tools.body outputParameters: - type: object mapping: $. - name: update-realm-level-defaults-user description: Update realm-level defaults of user settings hints: readOnly: false destructive: false idempotent: true call: zulip-server-and-organizations.updaterealmusersettingsdefaults with: body: tools.body outputParameters: - type: object mapping: $. - name: get-server-settings description: Get server settings hints: readOnly: true destructive: false idempotent: true call: zulip-server-and-organizations.getserversettings outputParameters: - type: object mapping: $.