@cubis/foundry 0.3.34 → 0.3.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +56 -11
- package/bin/cubis.js +2824 -966
- package/mcp/.dockerignore +5 -0
- package/mcp/Dockerfile +19 -0
- package/mcp/README.md +550 -11
- package/mcp/config.json +18 -0
- package/mcp/dist/index.d.ts +1 -0
- package/mcp/dist/index.js +1488 -0
- package/mcp/package.json +36 -0
- package/mcp/src/cbxConfig/index.ts +23 -0
- package/mcp/src/cbxConfig/paths.ts +45 -0
- package/mcp/src/cbxConfig/reader.ts +149 -0
- package/mcp/src/cbxConfig/readerWriter.test.ts +147 -0
- package/mcp/src/cbxConfig/serviceConfig.test.ts +42 -0
- package/mcp/src/cbxConfig/serviceConfig.ts +157 -0
- package/mcp/src/cbxConfig/types.ts +44 -0
- package/mcp/src/cbxConfig/writer.ts +90 -0
- package/mcp/src/config/index.test.ts +81 -0
- package/mcp/src/config/index.ts +45 -0
- package/mcp/src/config/schema.ts +55 -0
- package/mcp/src/gateway/catalog.ts +37 -0
- package/mcp/src/gateway/config.ts +247 -0
- package/mcp/src/gateway/manager.ts +255 -0
- package/mcp/src/gateway/types.ts +54 -0
- package/mcp/src/gateway/upstreamClient.ts +80 -0
- package/mcp/src/index.ts +211 -0
- package/mcp/src/server.ts +219 -0
- package/mcp/src/tools/configTools.test.ts +166 -0
- package/mcp/src/tools/future/README.md +21 -0
- package/mcp/src/tools/future/index.ts +8 -0
- package/mcp/src/tools/index.ts +76 -0
- package/mcp/src/tools/mcpGateway.ts +44 -0
- package/mcp/src/tools/postmanGetMode.ts +82 -0
- package/mcp/src/tools/postmanGetStatus.ts +65 -0
- package/mcp/src/tools/postmanModes.ts +28 -0
- package/mcp/src/tools/postmanSetMode.ts +71 -0
- package/mcp/src/tools/skillBrowseCategory.ts +54 -0
- package/mcp/src/tools/skillGet.ts +43 -0
- package/mcp/src/tools/skillListCategories.ts +40 -0
- package/mcp/src/tools/skillSearch.ts +72 -0
- package/mcp/src/tools/skillTools.test.ts +126 -0
- package/mcp/src/tools/stitchGetMode.ts +58 -0
- package/mcp/src/tools/stitchGetStatus.ts +70 -0
- package/mcp/src/tools/stitchSetProfile.ts +82 -0
- package/mcp/src/transports/stdio.ts +9 -0
- package/mcp/src/transports/streamableHttp.ts +43 -0
- package/mcp/src/upstream/passthrough.ts +273 -0
- package/mcp/src/utils/errors.ts +38 -0
- package/mcp/src/utils/logger.ts +63 -0
- package/mcp/src/vault/manifest.test.ts +126 -0
- package/mcp/src/vault/manifest.ts +99 -0
- package/mcp/src/vault/scanner.test.ts +70 -0
- package/mcp/src/vault/scanner.ts +145 -0
- package/mcp/src/vault/types.ts +21 -0
- package/package.json +9 -2
- package/workflows/scripts/generate-powers.mjs +27 -18
- package/workflows/skills/postman/SKILL.md +11 -12
- package/workflows/skills/skills_index.json +11 -93
- package/workflows/skills/stitch/SKILL.md +17 -0
- package/workflows/workflows/agent-environment-setup/manifest.json +0 -24
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/nextjs-react-expert/SKILL.md +1 -1
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/SKILL.md +9 -232
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/skills_index.json +0 -102
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/stitch/SKILL.md +17 -0
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/nextjs-react-expert/SKILL.md +1 -1
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/SKILL.md +9 -232
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/skills_index.json +0 -102
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/stitch/SKILL.md +17 -0
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/nextjs-react-expert/SKILL.md +1 -1
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/SKILL.md +9 -232
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/skills_index.json +0 -102
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/stitch/SKILL.md +17 -0
- package/mcp/catalogs/default.json +0 -14
- package/mcp/powers/atlassian-mcp/POWER.md +0 -91
- package/mcp/powers/atlassian-mcp/SKILL.md +0 -88
- package/mcp/powers/atlassian-mcp/steering/authentication-patterns.md +0 -520
- package/mcp/powers/atlassian-mcp/steering/common-workflows.md +0 -660
- package/mcp/powers/atlassian-mcp/steering/confluence-operations.md +0 -528
- package/mcp/powers/atlassian-mcp/steering/jira-queries.md +0 -421
- package/mcp/powers/atlassian-mcp/steering/mcp-server-setup.md +0 -292
- package/mcp/powers/building-mcp-server-on-cloudflare/POWER.md +0 -261
- package/mcp/powers/building-mcp-server-on-cloudflare/SKILL.md +0 -258
- package/mcp/powers/building-mcp-server-on-cloudflare/steering/examples.md +0 -115
- package/mcp/powers/building-mcp-server-on-cloudflare/steering/oauth-setup.md +0 -338
- package/mcp/powers/building-mcp-server-on-cloudflare/steering/troubleshooting.md +0 -317
- package/mcp/powers/datadog-automation/POWER.md +0 -238
- package/mcp/powers/datadog-automation/SKILL.md +0 -235
- package/mcp/powers/github-automation/POWER.md +0 -230
- package/mcp/powers/github-automation/SKILL.md +0 -227
- package/mcp/powers/mcp-builder/LICENSE.txt +0 -202
- package/mcp/powers/mcp-builder/POWER.md +0 -179
- package/mcp/powers/mcp-builder/SKILL.md +0 -176
- package/mcp/powers/mcp-builder/reference/evaluation.md +0 -602
- package/mcp/powers/mcp-builder/reference/mcp_best_practices.md +0 -915
- package/mcp/powers/mcp-builder/reference/node_mcp_server.md +0 -916
- package/mcp/powers/mcp-builder/reference/python_mcp_server.md +0 -752
- package/mcp/powers/mcp-builder/scripts/connections.py +0 -151
- package/mcp/powers/mcp-builder/scripts/evaluation.py +0 -373
- package/mcp/powers/mcp-builder/scripts/example_evaluation.xml +0 -22
- package/mcp/powers/mcp-builder/scripts/requirements.txt +0 -2
- package/mcp/powers/mcp-developer/POWER.md +0 -88
- package/mcp/powers/mcp-developer/SKILL.md +0 -85
- package/mcp/powers/mcp-developer/steering/protocol.md +0 -244
- package/mcp/powers/mcp-developer/steering/python-sdk.md +0 -367
- package/mcp/powers/mcp-developer/steering/resources.md +0 -554
- package/mcp/powers/mcp-developer/steering/tools.md +0 -480
- package/mcp/powers/mcp-developer/steering/typescript-sdk.md +0 -350
- package/mcp/powers/postman/POWER.md +0 -243
- package/mcp/powers/postman/SKILL.md +0 -240
- package/mcp/powers/postman/flutter-expert/POWER.md +0 -89
- package/mcp/powers/postman/flutter-expert/SKILL.md +0 -77
- package/mcp/powers/postman/flutter-expert/steering/bloc-state.md +0 -259
- package/mcp/powers/postman/flutter-expert/steering/engineering-principles.md +0 -82
- package/mcp/powers/postman/flutter-expert/steering/gorouter-navigation.md +0 -157
- package/mcp/powers/postman/flutter-expert/steering/performance.md +0 -99
- package/mcp/powers/postman/flutter-expert/steering/project-structure.md +0 -77
- package/mcp/powers/postman/flutter-expert/steering/riverpod-state.md +0 -404
- package/mcp/powers/postman/flutter-expert/steering/widget-patterns.md +0 -123
- package/mcp/powers/postman/flutter-security-reviewer/POWER.md +0 -204
- package/mcp/powers/postman/flutter-security-reviewer/SKILL.md +0 -180
- package/mcp/powers/postman/flutter-security-reviewer/steering/log_redaction.md +0 -17
- package/mcp/powers/postman/flutter-security-reviewer/steering/network_hardening.md +0 -13
- package/mcp/powers/postman/flutter-security-reviewer/steering/secret-scanning.md +0 -123
- package/mcp/powers/postman/flutter-security-reviewer/steering/secure_storage_policy.md +0 -16
- package/mcp/powers/postman/flutter-security-reviewer/steering/vulnerability-patterns.md +0 -189
- package/mcp/powers/postman/flutter-security-reviewer/templates/security_review_response.md +0 -31
- package/mcp/powers/postman/flutter-test-master/POWER.md +0 -527
- package/mcp/powers/postman/flutter-test-master/SKILL.md +0 -513
- package/mcp/powers/postman/flutter-test-master/steering/golden-testing.md +0 -444
- package/mcp/powers/postman/flutter-test-master/steering/integration-testing.md +0 -688
- package/mcp/powers/postman/flutter-test-master/steering/property-testing.md +0 -408
- package/mcp/powers/postman/flutter-test-master/steering/riverpod-testing.md +0 -606
- package/mcp/powers/postman/flutter-test-master/steering/test-utilities.md +0 -566
- package/mcp/powers/postman/flutter-test-master/steering/unit-testing.md +0 -511
- package/mcp/powers/postman/flutter-test-master/steering/widget-testing.md +0 -601
- package/mcp/powers/postman/git-commit/POWER.md +0 -47
- package/mcp/powers/postman/git-commit/SKILL.md +0 -46
- package/mcp/powers/postman/gorouter-restoration/POWER.md +0 -227
- package/mcp/powers/postman/gorouter-restoration/SKILL.md +0 -217
- package/mcp/powers/postman/gorouter-restoration/steering/guard_patterns.md +0 -14
- package/mcp/powers/postman/gorouter-restoration/steering/tab_preservation.md +0 -12
- package/mcp/powers/postman/gorouter-restoration/templates/guard_redirect.md +0 -30
- package/mcp/powers/postman/gorouter-restoration/templates/stateful_shell_skeleton.md +0 -40
- package/mcp/powers/postman/mcp.json +0 -11
- package/mcp/powers/postman/microservices-architect/POWER.md +0 -109
- package/mcp/powers/postman/microservices-architect/SKILL.md +0 -93
- package/mcp/powers/postman/microservices-architect/steering/communication.md +0 -499
- package/mcp/powers/postman/microservices-architect/steering/data.md +0 -721
- package/mcp/powers/postman/microservices-architect/steering/decomposition.md +0 -344
- package/mcp/powers/postman/microservices-architect/steering/observability.md +0 -805
- package/mcp/powers/postman/microservices-architect/steering/patterns.md +0 -603
- package/mcp/powers/postman/nestjs-expert/POWER.md +0 -130
- package/mcp/powers/postman/nestjs-expert/SKILL.md +0 -114
- package/mcp/powers/postman/nestjs-expert/steering/authentication.md +0 -461
- package/mcp/powers/postman/nestjs-expert/steering/controllers-routing.md +0 -114
- package/mcp/powers/postman/nestjs-expert/steering/dtos-validation.md +0 -156
- package/mcp/powers/postman/nestjs-expert/steering/migration-from-express.md +0 -1240
- package/mcp/powers/postman/nestjs-expert/steering/secure-sessions.md +0 -56
- package/mcp/powers/postman/nestjs-expert/steering/services-di.md +0 -143
- package/mcp/powers/postman/nestjs-expert/steering/strangler-fig-pattern.md +0 -47
- package/mcp/powers/postman/nestjs-expert/steering/testing-patterns.md +0 -189
- package/mcp/powers/postman/oneup-design/POWER.md +0 -72
- package/mcp/powers/postman/oneup-design/SKILL.md +0 -71
- package/mcp/powers/postman/oneup-design/steering/colors.md +0 -41
- package/mcp/powers/postman/oneup-design/steering/components.md +0 -53
- package/mcp/powers/postman/oneup-design/steering/spacing.md +0 -84
- package/mcp/powers/postman/openapi-docs/POWER.md +0 -78
- package/mcp/powers/postman/openapi-docs/SKILL.md +0 -68
- package/mcp/powers/postman/openapi-docs/steering/crud-templates.md +0 -43
- package/mcp/powers/postman/openapi-docs/steering/framework-express.md +0 -19
- package/mcp/powers/postman/openapi-docs/steering/framework-fastapi.md +0 -20
- package/mcp/powers/postman/openapi-docs/steering/framework-nestjs.md +0 -20
- package/mcp/powers/postman/openapi-docs/steering/framework-raw-openapi.md +0 -14
- package/mcp/powers/postman/openapi-docs/steering/openapi-checklist.md +0 -33
- package/mcp/powers/postman/openapi-docs/steering/stoplight-ui.md +0 -21
- package/mcp/powers/postman/steering/steering.md +0 -26
- package/mcp/powers/sentry-automation/POWER.md +0 -235
- package/mcp/powers/sentry-automation/SKILL.md +0 -232
- package/mcp/skills/atlassian-mcp/SKILL.md +0 -88
- package/mcp/skills/atlassian-mcp/references/authentication-patterns.md +0 -520
- package/mcp/skills/atlassian-mcp/references/common-workflows.md +0 -660
- package/mcp/skills/atlassian-mcp/references/confluence-operations.md +0 -528
- package/mcp/skills/atlassian-mcp/references/jira-queries.md +0 -421
- package/mcp/skills/atlassian-mcp/references/mcp-server-setup.md +0 -292
- package/mcp/skills/building-mcp-server-on-cloudflare/SKILL.md +0 -258
- package/mcp/skills/building-mcp-server-on-cloudflare/references/examples.md +0 -115
- package/mcp/skills/building-mcp-server-on-cloudflare/references/oauth-setup.md +0 -338
- package/mcp/skills/building-mcp-server-on-cloudflare/references/tool-patterns.md +0 -29
- package/mcp/skills/building-mcp-server-on-cloudflare/references/troubleshooting.md +0 -317
- package/mcp/skills/datadog-automation/SKILL.md +0 -235
- package/mcp/skills/github-automation/SKILL.md +0 -227
- package/mcp/skills/mcp-builder/LICENSE.txt +0 -202
- package/mcp/skills/mcp-builder/SKILL.md +0 -176
- package/mcp/skills/mcp-builder/reference/evaluation.md +0 -602
- package/mcp/skills/mcp-builder/reference/mcp_best_practices.md +0 -915
- package/mcp/skills/mcp-builder/reference/node_mcp_server.md +0 -916
- package/mcp/skills/mcp-builder/reference/python_mcp_server.md +0 -752
- package/mcp/skills/mcp-builder/scripts/connections.py +0 -151
- package/mcp/skills/mcp-builder/scripts/evaluation.py +0 -373
- package/mcp/skills/mcp-builder/scripts/example_evaluation.xml +0 -22
- package/mcp/skills/mcp-builder/scripts/requirements.txt +0 -2
- package/mcp/skills/mcp-developer/SKILL.md +0 -85
- package/mcp/skills/mcp-developer/references/protocol.md +0 -244
- package/mcp/skills/mcp-developer/references/python-sdk.md +0 -367
- package/mcp/skills/mcp-developer/references/resources.md +0 -554
- package/mcp/skills/mcp-developer/references/tools.md +0 -480
- package/mcp/skills/mcp-developer/references/typescript-sdk.md +0 -350
- package/mcp/skills/postman/POWER.md +0 -242
- package/mcp/skills/postman/SKILL.md +0 -240
- package/mcp/skills/postman/flutter-expert/POWER.md +0 -89
- package/mcp/skills/postman/flutter-expert/SKILL.md +0 -77
- package/mcp/skills/postman/flutter-expert/references/bloc-state.md +0 -259
- package/mcp/skills/postman/flutter-expert/references/engineering-principles.md +0 -82
- package/mcp/skills/postman/flutter-expert/references/gorouter-navigation.md +0 -157
- package/mcp/skills/postman/flutter-expert/references/performance.md +0 -99
- package/mcp/skills/postman/flutter-expert/references/project-structure.md +0 -77
- package/mcp/skills/postman/flutter-expert/references/riverpod-state.md +0 -404
- package/mcp/skills/postman/flutter-expert/references/widget-patterns.md +0 -123
- package/mcp/skills/postman/flutter-security-reviewer/POWER.md +0 -204
- package/mcp/skills/postman/flutter-security-reviewer/SKILL.md +0 -180
- package/mcp/skills/postman/flutter-security-reviewer/references/log_redaction.md +0 -17
- package/mcp/skills/postman/flutter-security-reviewer/references/network_hardening.md +0 -13
- package/mcp/skills/postman/flutter-security-reviewer/references/secret-scanning.md +0 -123
- package/mcp/skills/postman/flutter-security-reviewer/references/secure_storage_policy.md +0 -16
- package/mcp/skills/postman/flutter-security-reviewer/references/vulnerability-patterns.md +0 -189
- package/mcp/skills/postman/flutter-security-reviewer/templates/security_review_response.md +0 -31
- package/mcp/skills/postman/flutter-test-master/POWER.md +0 -527
- package/mcp/skills/postman/flutter-test-master/SKILL.md +0 -513
- package/mcp/skills/postman/flutter-test-master/references/golden-testing.md +0 -444
- package/mcp/skills/postman/flutter-test-master/references/integration-testing.md +0 -688
- package/mcp/skills/postman/flutter-test-master/references/property-testing.md +0 -408
- package/mcp/skills/postman/flutter-test-master/references/riverpod-testing.md +0 -606
- package/mcp/skills/postman/flutter-test-master/references/test-utilities.md +0 -566
- package/mcp/skills/postman/flutter-test-master/references/unit-testing.md +0 -511
- package/mcp/skills/postman/flutter-test-master/references/widget-testing.md +0 -601
- package/mcp/skills/postman/git-commit/POWER.md +0 -47
- package/mcp/skills/postman/git-commit/SKILL.md +0 -46
- package/mcp/skills/postman/gorouter-restoration/POWER.md +0 -227
- package/mcp/skills/postman/gorouter-restoration/SKILL.md +0 -217
- package/mcp/skills/postman/gorouter-restoration/references/guard_patterns.md +0 -14
- package/mcp/skills/postman/gorouter-restoration/references/tab_preservation.md +0 -12
- package/mcp/skills/postman/gorouter-restoration/templates/guard_redirect.md +0 -30
- package/mcp/skills/postman/gorouter-restoration/templates/stateful_shell_skeleton.md +0 -40
- package/mcp/skills/postman/mcp.json +0 -11
- package/mcp/skills/postman/microservices-architect/POWER.md +0 -109
- package/mcp/skills/postman/microservices-architect/SKILL.md +0 -93
- package/mcp/skills/postman/microservices-architect/references/communication.md +0 -499
- package/mcp/skills/postman/microservices-architect/references/data.md +0 -721
- package/mcp/skills/postman/microservices-architect/references/decomposition.md +0 -344
- package/mcp/skills/postman/microservices-architect/references/observability.md +0 -805
- package/mcp/skills/postman/microservices-architect/references/patterns.md +0 -603
- package/mcp/skills/postman/nestjs-expert/POWER.md +0 -130
- package/mcp/skills/postman/nestjs-expert/SKILL.md +0 -114
- package/mcp/skills/postman/nestjs-expert/references/authentication.md +0 -461
- package/mcp/skills/postman/nestjs-expert/references/controllers-routing.md +0 -114
- package/mcp/skills/postman/nestjs-expert/references/dtos-validation.md +0 -156
- package/mcp/skills/postman/nestjs-expert/references/migration-from-express.md +0 -1240
- package/mcp/skills/postman/nestjs-expert/references/secure-sessions.md +0 -56
- package/mcp/skills/postman/nestjs-expert/references/services-di.md +0 -143
- package/mcp/skills/postman/nestjs-expert/references/strangler-fig-pattern.md +0 -47
- package/mcp/skills/postman/nestjs-expert/references/testing-patterns.md +0 -189
- package/mcp/skills/postman/oneup-design/POWER.md +0 -72
- package/mcp/skills/postman/oneup-design/SKILL.md +0 -71
- package/mcp/skills/postman/oneup-design/references/colors.md +0 -41
- package/mcp/skills/postman/oneup-design/references/components.md +0 -53
- package/mcp/skills/postman/oneup-design/references/spacing.md +0 -84
- package/mcp/skills/postman/openapi-docs/POWER.md +0 -78
- package/mcp/skills/postman/openapi-docs/SKILL.md +0 -68
- package/mcp/skills/postman/openapi-docs/references/crud-templates.md +0 -43
- package/mcp/skills/postman/openapi-docs/references/framework-express.md +0 -19
- package/mcp/skills/postman/openapi-docs/references/framework-fastapi.md +0 -20
- package/mcp/skills/postman/openapi-docs/references/framework-nestjs.md +0 -20
- package/mcp/skills/postman/openapi-docs/references/framework-raw-openapi.md +0 -14
- package/mcp/skills/postman/openapi-docs/references/openapi-checklist.md +0 -33
- package/mcp/skills/postman/openapi-docs/references/stoplight-ui.md +0 -21
- package/mcp/skills/postman/references/steering.md +0 -26
- package/mcp/skills/sentry-automation/SKILL.md +0 -232
- package/workflows/powers/atlassian-mcp/POWER.md +0 -21
- package/workflows/powers/atlassian-mcp/SKILL.md +0 -18
- package/workflows/powers/building-mcp-server-on-cloudflare/POWER.md +0 -21
- package/workflows/powers/building-mcp-server-on-cloudflare/SKILL.md +0 -18
- package/workflows/powers/datadog-automation/POWER.md +0 -21
- package/workflows/powers/datadog-automation/SKILL.md +0 -18
- package/workflows/powers/github-automation/POWER.md +0 -21
- package/workflows/powers/github-automation/SKILL.md +0 -18
- package/workflows/powers/mcp-builder/POWER.md +0 -21
- package/workflows/powers/mcp-builder/SKILL.md +0 -18
- package/workflows/powers/mcp-developer/POWER.md +0 -21
- package/workflows/powers/mcp-developer/SKILL.md +0 -18
- package/workflows/powers/postman/POWER.md +0 -21
- package/workflows/powers/postman/SKILL.md +0 -18
- package/workflows/powers/sentry-automation/POWER.md +0 -21
- package/workflows/powers/sentry-automation/SKILL.md +0 -18
- package/workflows/skills/atlassian-mcp/SKILL.md +0 -18
- package/workflows/skills/building-mcp-server-on-cloudflare/SKILL.md +0 -18
- package/workflows/skills/datadog-automation/SKILL.md +0 -18
- package/workflows/skills/github-automation/SKILL.md +0 -18
- package/workflows/skills/mcp-builder/SKILL.md +0 -18
- package/workflows/skills/mcp-developer/SKILL.md +0 -18
- package/workflows/skills/sentry-automation/SKILL.md +0 -18
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/atlassian-mcp/SKILL.md +0 -88
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/atlassian-mcp/references/authentication-patterns.md +0 -520
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/atlassian-mcp/references/common-workflows.md +0 -660
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/atlassian-mcp/references/confluence-operations.md +0 -528
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/atlassian-mcp/references/jira-queries.md +0 -421
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/atlassian-mcp/references/mcp-server-setup.md +0 -292
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/building-mcp-server-on-cloudflare/SKILL.md +0 -258
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/building-mcp-server-on-cloudflare/references/examples.md +0 -115
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/building-mcp-server-on-cloudflare/references/oauth-setup.md +0 -338
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/building-mcp-server-on-cloudflare/references/tool-patterns.md +0 -29
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/building-mcp-server-on-cloudflare/references/troubleshooting.md +0 -317
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/datadog-automation/SKILL.md +0 -235
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/github-automation/SKILL.md +0 -227
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/mcp-builder/LICENSE.txt +0 -202
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/mcp-builder/SKILL.md +0 -176
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/mcp-builder/reference/evaluation.md +0 -602
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/mcp-builder/reference/mcp_best_practices.md +0 -915
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/mcp-builder/reference/node_mcp_server.md +0 -916
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/mcp-builder/reference/python_mcp_server.md +0 -752
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/mcp-builder/scripts/connections.py +0 -151
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/mcp-builder/scripts/evaluation.py +0 -373
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/mcp-builder/scripts/example_evaluation.xml +0 -22
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/mcp-builder/scripts/requirements.txt +0 -2
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/mcp-developer/SKILL.md +0 -85
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/mcp-developer/references/protocol.md +0 -244
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/mcp-developer/references/python-sdk.md +0 -367
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/mcp-developer/references/resources.md +0 -554
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/mcp-developer/references/tools.md +0 -480
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/mcp-developer/references/typescript-sdk.md +0 -350
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/POWER.md +0 -242
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-expert/POWER.md +0 -89
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-expert/SKILL.md +0 -77
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-expert/references/bloc-state.md +0 -259
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-expert/references/engineering-principles.md +0 -82
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-expert/references/gorouter-navigation.md +0 -157
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-expert/references/performance.md +0 -99
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-expert/references/project-structure.md +0 -77
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-expert/references/riverpod-state.md +0 -404
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-expert/references/widget-patterns.md +0 -123
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-security-reviewer/POWER.md +0 -204
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-security-reviewer/SKILL.md +0 -180
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-security-reviewer/references/log_redaction.md +0 -17
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-security-reviewer/references/network_hardening.md +0 -13
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-security-reviewer/references/secret-scanning.md +0 -123
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-security-reviewer/references/secure_storage_policy.md +0 -16
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-security-reviewer/references/vulnerability-patterns.md +0 -189
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-security-reviewer/templates/security_review_response.md +0 -31
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-test-master/POWER.md +0 -527
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-test-master/SKILL.md +0 -513
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-test-master/references/golden-testing.md +0 -444
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-test-master/references/integration-testing.md +0 -688
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-test-master/references/property-testing.md +0 -408
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-test-master/references/riverpod-testing.md +0 -606
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-test-master/references/test-utilities.md +0 -566
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-test-master/references/unit-testing.md +0 -511
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/flutter-test-master/references/widget-testing.md +0 -601
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/git-commit/POWER.md +0 -47
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/git-commit/SKILL.md +0 -46
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/gorouter-restoration/POWER.md +0 -227
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/gorouter-restoration/SKILL.md +0 -217
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/gorouter-restoration/references/guard_patterns.md +0 -14
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/gorouter-restoration/references/tab_preservation.md +0 -12
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/gorouter-restoration/templates/guard_redirect.md +0 -30
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/gorouter-restoration/templates/stateful_shell_skeleton.md +0 -40
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/mcp.json +0 -11
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/microservices-architect/POWER.md +0 -109
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/microservices-architect/SKILL.md +0 -93
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/microservices-architect/references/communication.md +0 -499
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/microservices-architect/references/data.md +0 -721
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/microservices-architect/references/decomposition.md +0 -344
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/microservices-architect/references/observability.md +0 -805
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/microservices-architect/references/patterns.md +0 -603
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/nestjs-expert/POWER.md +0 -130
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/nestjs-expert/SKILL.md +0 -114
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/nestjs-expert/references/authentication.md +0 -461
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/nestjs-expert/references/controllers-routing.md +0 -114
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/nestjs-expert/references/dtos-validation.md +0 -156
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/nestjs-expert/references/migration-from-express.md +0 -1240
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/nestjs-expert/references/secure-sessions.md +0 -56
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/nestjs-expert/references/services-di.md +0 -143
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/nestjs-expert/references/strangler-fig-pattern.md +0 -47
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/nestjs-expert/references/testing-patterns.md +0 -189
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/oneup-design/POWER.md +0 -72
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/oneup-design/SKILL.md +0 -71
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/oneup-design/references/colors.md +0 -41
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/oneup-design/references/components.md +0 -53
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/oneup-design/references/spacing.md +0 -84
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/openapi-docs/POWER.md +0 -78
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/openapi-docs/SKILL.md +0 -68
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/openapi-docs/references/crud-templates.md +0 -43
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/openapi-docs/references/framework-express.md +0 -19
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/openapi-docs/references/framework-fastapi.md +0 -20
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/openapi-docs/references/framework-nestjs.md +0 -20
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/openapi-docs/references/framework-raw-openapi.md +0 -14
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/openapi-docs/references/openapi-checklist.md +0 -33
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/openapi-docs/references/stoplight-ui.md +0 -21
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/postman/references/steering.md +0 -26
- package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/sentry-automation/SKILL.md +0 -232
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/atlassian-mcp/SKILL.md +0 -88
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/atlassian-mcp/references/authentication-patterns.md +0 -520
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/atlassian-mcp/references/common-workflows.md +0 -660
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/atlassian-mcp/references/confluence-operations.md +0 -528
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/atlassian-mcp/references/jira-queries.md +0 -421
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/atlassian-mcp/references/mcp-server-setup.md +0 -292
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/building-mcp-server-on-cloudflare/SKILL.md +0 -258
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/building-mcp-server-on-cloudflare/references/examples.md +0 -115
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/building-mcp-server-on-cloudflare/references/oauth-setup.md +0 -338
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/building-mcp-server-on-cloudflare/references/tool-patterns.md +0 -29
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/building-mcp-server-on-cloudflare/references/troubleshooting.md +0 -317
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/datadog-automation/SKILL.md +0 -235
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/github-automation/SKILL.md +0 -227
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/mcp-builder/LICENSE.txt +0 -202
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/mcp-builder/SKILL.md +0 -176
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/mcp-builder/reference/evaluation.md +0 -602
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/mcp-builder/reference/mcp_best_practices.md +0 -915
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/mcp-builder/reference/node_mcp_server.md +0 -916
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/mcp-builder/reference/python_mcp_server.md +0 -752
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/mcp-builder/scripts/connections.py +0 -151
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/mcp-builder/scripts/evaluation.py +0 -373
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/mcp-builder/scripts/example_evaluation.xml +0 -22
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/mcp-builder/scripts/requirements.txt +0 -2
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/mcp-developer/SKILL.md +0 -85
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/mcp-developer/references/protocol.md +0 -244
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/mcp-developer/references/python-sdk.md +0 -367
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/mcp-developer/references/resources.md +0 -554
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/mcp-developer/references/tools.md +0 -480
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/mcp-developer/references/typescript-sdk.md +0 -350
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/POWER.md +0 -242
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-expert/POWER.md +0 -89
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-expert/SKILL.md +0 -77
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-expert/references/bloc-state.md +0 -259
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-expert/references/engineering-principles.md +0 -82
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-expert/references/gorouter-navigation.md +0 -157
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-expert/references/performance.md +0 -99
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-expert/references/project-structure.md +0 -77
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-expert/references/riverpod-state.md +0 -404
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-expert/references/widget-patterns.md +0 -123
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-security-reviewer/POWER.md +0 -204
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-security-reviewer/SKILL.md +0 -180
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-security-reviewer/references/log_redaction.md +0 -17
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-security-reviewer/references/network_hardening.md +0 -13
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-security-reviewer/references/secret-scanning.md +0 -123
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-security-reviewer/references/secure_storage_policy.md +0 -16
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-security-reviewer/references/vulnerability-patterns.md +0 -189
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-security-reviewer/templates/security_review_response.md +0 -31
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-test-master/POWER.md +0 -527
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-test-master/SKILL.md +0 -513
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-test-master/references/golden-testing.md +0 -444
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-test-master/references/integration-testing.md +0 -688
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-test-master/references/property-testing.md +0 -408
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-test-master/references/riverpod-testing.md +0 -606
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-test-master/references/test-utilities.md +0 -566
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-test-master/references/unit-testing.md +0 -511
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/flutter-test-master/references/widget-testing.md +0 -601
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/git-commit/POWER.md +0 -47
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/git-commit/SKILL.md +0 -46
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/gorouter-restoration/POWER.md +0 -227
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/gorouter-restoration/SKILL.md +0 -217
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/gorouter-restoration/references/guard_patterns.md +0 -14
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/gorouter-restoration/references/tab_preservation.md +0 -12
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/gorouter-restoration/templates/guard_redirect.md +0 -30
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/gorouter-restoration/templates/stateful_shell_skeleton.md +0 -40
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/mcp.json +0 -11
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/microservices-architect/POWER.md +0 -109
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/microservices-architect/SKILL.md +0 -93
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/microservices-architect/references/communication.md +0 -499
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/microservices-architect/references/data.md +0 -721
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/microservices-architect/references/decomposition.md +0 -344
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/microservices-architect/references/observability.md +0 -805
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/microservices-architect/references/patterns.md +0 -603
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/nestjs-expert/POWER.md +0 -130
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/nestjs-expert/SKILL.md +0 -114
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/nestjs-expert/references/authentication.md +0 -461
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/nestjs-expert/references/controllers-routing.md +0 -114
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/nestjs-expert/references/dtos-validation.md +0 -156
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/nestjs-expert/references/migration-from-express.md +0 -1240
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/nestjs-expert/references/secure-sessions.md +0 -56
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/nestjs-expert/references/services-di.md +0 -143
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/nestjs-expert/references/strangler-fig-pattern.md +0 -47
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/nestjs-expert/references/testing-patterns.md +0 -189
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/oneup-design/POWER.md +0 -72
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/oneup-design/SKILL.md +0 -71
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/oneup-design/references/colors.md +0 -41
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/oneup-design/references/components.md +0 -53
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/oneup-design/references/spacing.md +0 -84
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/openapi-docs/POWER.md +0 -78
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/openapi-docs/SKILL.md +0 -68
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/openapi-docs/references/crud-templates.md +0 -43
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/openapi-docs/references/framework-express.md +0 -19
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/openapi-docs/references/framework-fastapi.md +0 -20
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/openapi-docs/references/framework-nestjs.md +0 -20
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/openapi-docs/references/framework-raw-openapi.md +0 -14
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/openapi-docs/references/openapi-checklist.md +0 -33
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/openapi-docs/references/stoplight-ui.md +0 -21
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/postman/references/steering.md +0 -26
- package/workflows/workflows/agent-environment-setup/platforms/cursor/skills/sentry-automation/SKILL.md +0 -232
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/atlassian-mcp/SKILL.md +0 -88
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/atlassian-mcp/references/authentication-patterns.md +0 -520
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/atlassian-mcp/references/common-workflows.md +0 -660
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/atlassian-mcp/references/confluence-operations.md +0 -528
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/atlassian-mcp/references/jira-queries.md +0 -421
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/atlassian-mcp/references/mcp-server-setup.md +0 -292
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/building-mcp-server-on-cloudflare/SKILL.md +0 -258
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/building-mcp-server-on-cloudflare/references/examples.md +0 -115
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/building-mcp-server-on-cloudflare/references/oauth-setup.md +0 -338
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/building-mcp-server-on-cloudflare/references/tool-patterns.md +0 -29
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/building-mcp-server-on-cloudflare/references/troubleshooting.md +0 -317
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/datadog-automation/SKILL.md +0 -235
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/github-automation/SKILL.md +0 -227
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/mcp-builder/LICENSE.txt +0 -202
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/mcp-builder/SKILL.md +0 -176
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/mcp-builder/reference/evaluation.md +0 -602
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/mcp-builder/reference/mcp_best_practices.md +0 -915
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/mcp-builder/reference/node_mcp_server.md +0 -916
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/mcp-builder/reference/python_mcp_server.md +0 -752
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/mcp-builder/scripts/connections.py +0 -151
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/mcp-builder/scripts/evaluation.py +0 -373
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/mcp-builder/scripts/example_evaluation.xml +0 -22
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/mcp-builder/scripts/requirements.txt +0 -2
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/mcp-developer/SKILL.md +0 -85
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/mcp-developer/references/protocol.md +0 -244
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/mcp-developer/references/python-sdk.md +0 -367
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/mcp-developer/references/resources.md +0 -554
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/mcp-developer/references/tools.md +0 -480
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/mcp-developer/references/typescript-sdk.md +0 -350
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/POWER.md +0 -242
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-expert/POWER.md +0 -89
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-expert/SKILL.md +0 -77
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-expert/references/bloc-state.md +0 -259
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-expert/references/engineering-principles.md +0 -82
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-expert/references/gorouter-navigation.md +0 -157
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-expert/references/performance.md +0 -99
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-expert/references/project-structure.md +0 -77
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-expert/references/riverpod-state.md +0 -404
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-expert/references/widget-patterns.md +0 -123
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-security-reviewer/POWER.md +0 -204
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-security-reviewer/SKILL.md +0 -180
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-security-reviewer/references/log_redaction.md +0 -17
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-security-reviewer/references/network_hardening.md +0 -13
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-security-reviewer/references/secret-scanning.md +0 -123
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-security-reviewer/references/secure_storage_policy.md +0 -16
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-security-reviewer/references/vulnerability-patterns.md +0 -189
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-security-reviewer/templates/security_review_response.md +0 -31
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-test-master/POWER.md +0 -527
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-test-master/SKILL.md +0 -513
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-test-master/references/golden-testing.md +0 -444
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-test-master/references/integration-testing.md +0 -688
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-test-master/references/property-testing.md +0 -408
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-test-master/references/riverpod-testing.md +0 -606
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-test-master/references/test-utilities.md +0 -566
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-test-master/references/unit-testing.md +0 -511
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/flutter-test-master/references/widget-testing.md +0 -601
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/git-commit/POWER.md +0 -47
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/git-commit/SKILL.md +0 -46
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/gorouter-restoration/POWER.md +0 -227
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/gorouter-restoration/SKILL.md +0 -217
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/gorouter-restoration/references/guard_patterns.md +0 -14
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/gorouter-restoration/references/tab_preservation.md +0 -12
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/gorouter-restoration/templates/guard_redirect.md +0 -30
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/gorouter-restoration/templates/stateful_shell_skeleton.md +0 -40
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/mcp.json +0 -11
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/microservices-architect/POWER.md +0 -109
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/microservices-architect/SKILL.md +0 -93
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/microservices-architect/references/communication.md +0 -499
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/microservices-architect/references/data.md +0 -721
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/microservices-architect/references/decomposition.md +0 -344
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/microservices-architect/references/observability.md +0 -805
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/microservices-architect/references/patterns.md +0 -603
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/nestjs-expert/POWER.md +0 -130
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/nestjs-expert/SKILL.md +0 -114
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/nestjs-expert/references/authentication.md +0 -461
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/nestjs-expert/references/controllers-routing.md +0 -114
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/nestjs-expert/references/dtos-validation.md +0 -156
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/nestjs-expert/references/migration-from-express.md +0 -1240
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/nestjs-expert/references/secure-sessions.md +0 -56
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/nestjs-expert/references/services-di.md +0 -143
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/nestjs-expert/references/strangler-fig-pattern.md +0 -47
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/nestjs-expert/references/testing-patterns.md +0 -189
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/oneup-design/POWER.md +0 -72
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/oneup-design/SKILL.md +0 -71
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/oneup-design/references/colors.md +0 -41
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/oneup-design/references/components.md +0 -53
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/oneup-design/references/spacing.md +0 -84
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/openapi-docs/POWER.md +0 -78
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/openapi-docs/SKILL.md +0 -68
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/openapi-docs/references/crud-templates.md +0 -43
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/openapi-docs/references/framework-express.md +0 -19
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/openapi-docs/references/framework-fastapi.md +0 -20
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/openapi-docs/references/framework-nestjs.md +0 -20
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/openapi-docs/references/framework-raw-openapi.md +0 -14
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/openapi-docs/references/openapi-checklist.md +0 -33
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/openapi-docs/references/stoplight-ui.md +0 -21
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/postman/references/steering.md +0 -26
- package/workflows/workflows/agent-environment-setup/platforms/windsurf/skills/sentry-automation/SKILL.md +0 -232
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cubis Foundry MCP Server – Streamable HTTP transport adapter.
|
|
3
|
+
*
|
|
4
|
+
* Uses the SDK's StreamableHTTPServerTransport for remote connections.
|
|
5
|
+
* Binds to localhost by default (security: prevents DNS rebinding).
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { createServer, type Server } from "node:http";
|
|
9
|
+
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
|
|
10
|
+
import { logger } from "../utils/logger.js";
|
|
11
|
+
|
|
12
|
+
export interface HttpTransportOptions {
|
|
13
|
+
port: number;
|
|
14
|
+
host: string;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function createStreamableHttpTransport(options: HttpTransportOptions): {
|
|
18
|
+
transport: StreamableHTTPServerTransport;
|
|
19
|
+
httpServer: Server;
|
|
20
|
+
} {
|
|
21
|
+
const transport = new StreamableHTTPServerTransport({
|
|
22
|
+
sessionIdGenerator: () => crypto.randomUUID(),
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
const httpServer = createServer(async (req, res) => {
|
|
26
|
+
// Only handle the /mcp endpoint
|
|
27
|
+
const url = new URL(req.url ?? "/", `http://${req.headers.host}`);
|
|
28
|
+
if (url.pathname !== "/mcp") {
|
|
29
|
+
res.writeHead(404, { "Content-Type": "text/plain" });
|
|
30
|
+
res.end("Not Found");
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
await transport.handleRequest(req, res);
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
httpServer.listen(options.port, options.host, () => {
|
|
37
|
+
logger.info(
|
|
38
|
+
`Streamable HTTP transport listening on http://${options.host}:${options.port}/mcp`,
|
|
39
|
+
);
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
return { transport, httpServer };
|
|
43
|
+
}
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cubis Foundry MCP Server – upstream Postman/Stitch passthrough support.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import { mkdir, writeFile } from "node:fs/promises";
|
|
6
|
+
import path from "node:path";
|
|
7
|
+
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
|
|
8
|
+
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
|
|
9
|
+
import {
|
|
10
|
+
parsePostmanState,
|
|
11
|
+
parseStitchState,
|
|
12
|
+
readEffectiveConfig,
|
|
13
|
+
} from "../cbxConfig/index.js";
|
|
14
|
+
import type { CbxConfig } from "../cbxConfig/types.js";
|
|
15
|
+
|
|
16
|
+
type ServiceId = "postman" | "stitch";
|
|
17
|
+
|
|
18
|
+
export interface UpstreamToolInfo {
|
|
19
|
+
name: string;
|
|
20
|
+
namespacedName: string;
|
|
21
|
+
description?: string;
|
|
22
|
+
inputSchema?: unknown;
|
|
23
|
+
outputSchema?: unknown;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface UpstreamCatalog {
|
|
27
|
+
service: ServiceId;
|
|
28
|
+
configured: boolean;
|
|
29
|
+
mcpUrl: string | null;
|
|
30
|
+
activeProfileName: string | null;
|
|
31
|
+
envVar: string | null;
|
|
32
|
+
scope: "global" | "project" | null;
|
|
33
|
+
configPath: string | null;
|
|
34
|
+
toolCount: number;
|
|
35
|
+
tools: UpstreamToolInfo[];
|
|
36
|
+
discoveryError?: string;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
function resolveCatalogDir(configPath: string): string {
|
|
40
|
+
const configDir = path.dirname(configPath);
|
|
41
|
+
if (path.basename(configDir) === ".cbx") {
|
|
42
|
+
return path.join(configDir, "mcp", "catalog");
|
|
43
|
+
}
|
|
44
|
+
return path.join(configDir, ".cbx", "mcp", "catalog");
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function getServiceAuth(config: CbxConfig, service: ServiceId): {
|
|
48
|
+
mcpUrl: string | null;
|
|
49
|
+
activeProfileName: string | null;
|
|
50
|
+
envVar: string | null;
|
|
51
|
+
headers: Record<string, string>;
|
|
52
|
+
configured: boolean;
|
|
53
|
+
error?: string;
|
|
54
|
+
} {
|
|
55
|
+
if (service === "postman") {
|
|
56
|
+
const state = parsePostmanState(config);
|
|
57
|
+
const activeProfile = state.activeProfile;
|
|
58
|
+
const envVar = activeProfile?.apiKeyEnvVar ?? "POSTMAN_API_KEY";
|
|
59
|
+
const token = process.env[envVar]?.trim();
|
|
60
|
+
if (!token) {
|
|
61
|
+
return {
|
|
62
|
+
mcpUrl: state.mcpUrl,
|
|
63
|
+
activeProfileName: state.activeProfileName,
|
|
64
|
+
envVar,
|
|
65
|
+
headers: {},
|
|
66
|
+
configured: false,
|
|
67
|
+
error: `Missing Postman key env var: ${envVar}`,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
return {
|
|
71
|
+
mcpUrl: state.mcpUrl,
|
|
72
|
+
activeProfileName: state.activeProfileName,
|
|
73
|
+
envVar,
|
|
74
|
+
headers: { Authorization: `Bearer ${token}` },
|
|
75
|
+
configured: Boolean(state.mcpUrl),
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
const state = parseStitchState(config);
|
|
80
|
+
const activeProfile = state.activeProfile;
|
|
81
|
+
const envVar = activeProfile?.apiKeyEnvVar ?? "STITCH_API_KEY";
|
|
82
|
+
const token = process.env[envVar]?.trim();
|
|
83
|
+
if (!token && !state.useSystemGcloud) {
|
|
84
|
+
return {
|
|
85
|
+
mcpUrl: state.mcpUrl,
|
|
86
|
+
activeProfileName: state.activeProfileName,
|
|
87
|
+
envVar,
|
|
88
|
+
headers: {},
|
|
89
|
+
configured: false,
|
|
90
|
+
error: `Missing Stitch key env var: ${envVar}`,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
return {
|
|
94
|
+
mcpUrl: state.mcpUrl,
|
|
95
|
+
activeProfileName: state.activeProfileName,
|
|
96
|
+
envVar,
|
|
97
|
+
headers: token ? { "X-Goog-Api-Key": token } : {},
|
|
98
|
+
configured: Boolean(state.mcpUrl),
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
async function withUpstreamClient<T>({
|
|
103
|
+
url,
|
|
104
|
+
headers,
|
|
105
|
+
fn,
|
|
106
|
+
}: {
|
|
107
|
+
url: string;
|
|
108
|
+
headers: Record<string, string>;
|
|
109
|
+
fn: (client: Client) => Promise<T>;
|
|
110
|
+
}): Promise<T> {
|
|
111
|
+
const client = new Client(
|
|
112
|
+
{
|
|
113
|
+
name: "cubis-foundry-mcp-passthrough",
|
|
114
|
+
version: "0.1.0",
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
capabilities: {},
|
|
118
|
+
},
|
|
119
|
+
);
|
|
120
|
+
const transport = new StreamableHTTPClientTransport(new URL(url), {
|
|
121
|
+
requestInit: { headers },
|
|
122
|
+
});
|
|
123
|
+
await client.connect(transport);
|
|
124
|
+
try {
|
|
125
|
+
return await fn(client);
|
|
126
|
+
} finally {
|
|
127
|
+
await client.close();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
async function persistCatalog(catalog: UpstreamCatalog): Promise<void> {
|
|
132
|
+
if (!catalog.configPath) return;
|
|
133
|
+
const catalogDir = resolveCatalogDir(catalog.configPath);
|
|
134
|
+
const catalogPath = path.join(catalogDir, `${catalog.service}.json`);
|
|
135
|
+
const payload = {
|
|
136
|
+
schemaVersion: 1,
|
|
137
|
+
generatedAt: new Date().toISOString(),
|
|
138
|
+
generatedBy: "cubis-foundry-mcp startup discovery",
|
|
139
|
+
service: catalog.service,
|
|
140
|
+
scope: catalog.scope,
|
|
141
|
+
mcpUrl: catalog.mcpUrl,
|
|
142
|
+
activeProfileName: catalog.activeProfileName,
|
|
143
|
+
envVar: catalog.envVar,
|
|
144
|
+
toolCount: catalog.toolCount,
|
|
145
|
+
tools: catalog.tools.map((tool) => ({
|
|
146
|
+
name: tool.name,
|
|
147
|
+
description: tool.description ?? null,
|
|
148
|
+
inputSchema: tool.inputSchema ?? null,
|
|
149
|
+
outputSchema: tool.outputSchema ?? null,
|
|
150
|
+
})),
|
|
151
|
+
discoveryError: catalog.discoveryError ?? null,
|
|
152
|
+
};
|
|
153
|
+
await mkdir(catalogDir, { recursive: true });
|
|
154
|
+
await writeFile(catalogPath, `${JSON.stringify(payload, null, 2)}\n`, "utf8");
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
export async function discoverUpstreamCatalogs(): Promise<{
|
|
158
|
+
postman: UpstreamCatalog;
|
|
159
|
+
stitch: UpstreamCatalog;
|
|
160
|
+
}> {
|
|
161
|
+
const effective = readEffectiveConfig("auto");
|
|
162
|
+
if (!effective) {
|
|
163
|
+
const missing: UpstreamCatalog = {
|
|
164
|
+
service: "postman",
|
|
165
|
+
configured: false,
|
|
166
|
+
mcpUrl: null,
|
|
167
|
+
activeProfileName: null,
|
|
168
|
+
envVar: null,
|
|
169
|
+
scope: null,
|
|
170
|
+
configPath: null,
|
|
171
|
+
toolCount: 0,
|
|
172
|
+
tools: [],
|
|
173
|
+
discoveryError: "cbx_config.json not found",
|
|
174
|
+
};
|
|
175
|
+
const missingStitch: UpstreamCatalog = { ...missing, service: "stitch" };
|
|
176
|
+
return {
|
|
177
|
+
postman: missing,
|
|
178
|
+
stitch: missingStitch,
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
const baseInfo = {
|
|
183
|
+
scope: effective.scope,
|
|
184
|
+
configPath: effective.path,
|
|
185
|
+
} as const;
|
|
186
|
+
|
|
187
|
+
const discoverOne = async (service: ServiceId): Promise<UpstreamCatalog> => {
|
|
188
|
+
const auth = getServiceAuth(effective.config, service);
|
|
189
|
+
const catalog: UpstreamCatalog = {
|
|
190
|
+
service,
|
|
191
|
+
configured: auth.configured,
|
|
192
|
+
mcpUrl: auth.mcpUrl,
|
|
193
|
+
activeProfileName: auth.activeProfileName,
|
|
194
|
+
envVar: auth.envVar,
|
|
195
|
+
scope: baseInfo.scope,
|
|
196
|
+
configPath: baseInfo.configPath,
|
|
197
|
+
toolCount: 0,
|
|
198
|
+
tools: [],
|
|
199
|
+
discoveryError: auth.error,
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
if (!auth.configured || !auth.mcpUrl || auth.error) {
|
|
203
|
+
await persistCatalog(catalog);
|
|
204
|
+
return catalog;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
try {
|
|
208
|
+
const listed = await withUpstreamClient({
|
|
209
|
+
url: auth.mcpUrl,
|
|
210
|
+
headers: auth.headers,
|
|
211
|
+
fn: async (client) => client.listTools(),
|
|
212
|
+
});
|
|
213
|
+
const rawTools = Array.isArray(listed.tools) ? listed.tools : [];
|
|
214
|
+
catalog.tools = rawTools
|
|
215
|
+
.map((tool) => {
|
|
216
|
+
const name = typeof tool?.name === "string" ? tool.name.trim() : "";
|
|
217
|
+
if (!name) return null;
|
|
218
|
+
return {
|
|
219
|
+
name,
|
|
220
|
+
namespacedName: `${service}.${name}`,
|
|
221
|
+
description:
|
|
222
|
+
typeof tool?.description === "string" ? tool.description : undefined,
|
|
223
|
+
inputSchema: tool?.inputSchema ?? undefined,
|
|
224
|
+
outputSchema: tool?.outputSchema ?? undefined,
|
|
225
|
+
} satisfies UpstreamToolInfo;
|
|
226
|
+
})
|
|
227
|
+
.filter((tool): tool is UpstreamToolInfo => Boolean(tool));
|
|
228
|
+
catalog.toolCount = catalog.tools.length;
|
|
229
|
+
} catch (error) {
|
|
230
|
+
catalog.discoveryError = `Tool discovery failed: ${String(error)}`;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
await persistCatalog(catalog);
|
|
234
|
+
return catalog;
|
|
235
|
+
};
|
|
236
|
+
|
|
237
|
+
return {
|
|
238
|
+
postman: await discoverOne("postman"),
|
|
239
|
+
stitch: await discoverOne("stitch"),
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
export async function callUpstreamTool({
|
|
244
|
+
service,
|
|
245
|
+
name,
|
|
246
|
+
argumentsValue,
|
|
247
|
+
}: {
|
|
248
|
+
service: ServiceId;
|
|
249
|
+
name: string;
|
|
250
|
+
argumentsValue: Record<string, unknown>;
|
|
251
|
+
}) {
|
|
252
|
+
const effective = readEffectiveConfig("auto");
|
|
253
|
+
if (!effective) {
|
|
254
|
+
throw new Error("cbx_config.json not found");
|
|
255
|
+
}
|
|
256
|
+
const auth = getServiceAuth(effective.config, service);
|
|
257
|
+
if (!auth.configured || !auth.mcpUrl) {
|
|
258
|
+
throw new Error(auth.error || `${service} is not configured`);
|
|
259
|
+
}
|
|
260
|
+
if (auth.error) {
|
|
261
|
+
throw new Error(auth.error);
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
return withUpstreamClient({
|
|
265
|
+
url: auth.mcpUrl,
|
|
266
|
+
headers: auth.headers,
|
|
267
|
+
fn: async (client) =>
|
|
268
|
+
client.callTool({
|
|
269
|
+
name,
|
|
270
|
+
arguments: argumentsValue,
|
|
271
|
+
}),
|
|
272
|
+
});
|
|
273
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cubis Foundry MCP Server – error utilities.
|
|
3
|
+
*
|
|
4
|
+
* Provides structured MCP-compatible error helpers.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { McpError, ErrorCode } from "@modelcontextprotocol/sdk/types.js";
|
|
8
|
+
|
|
9
|
+
/** Throw when a tool receives invalid input that passes Zod but fails domain validation. */
|
|
10
|
+
export function invalidInput(message: string): never {
|
|
11
|
+
throw new McpError(ErrorCode.InvalidParams, message);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/** Throw when a required config file is missing. */
|
|
15
|
+
export function configNotFound(): never {
|
|
16
|
+
throw new McpError(
|
|
17
|
+
ErrorCode.InternalError,
|
|
18
|
+
"cbx_config.json not found. Run cbx workflows config --scope global --show to diagnose.",
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/** Throw for unknown Postman mode URL found in config. */
|
|
23
|
+
export function unknownPostmanMode(url: string): never {
|
|
24
|
+
throw new McpError(
|
|
25
|
+
ErrorCode.InvalidParams,
|
|
26
|
+
`Unknown Postman MCP URL in config: "${url}". Expected one of: https://mcp.postman.com/minimal, https://mcp.postman.com/code, https://mcp.postman.com/mcp`,
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/** Throw when a vault skill or category is not found. */
|
|
31
|
+
export function notFound(entity: string, id: string): never {
|
|
32
|
+
throw new McpError(ErrorCode.InvalidParams, `${entity} not found: "${id}"`);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/** Throw for any internal server error with a message. */
|
|
36
|
+
export function internalError(message: string): never {
|
|
37
|
+
throw new McpError(ErrorCode.InternalError, message);
|
|
38
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cubis Foundry MCP Server – utilities / structured logger.
|
|
3
|
+
*
|
|
4
|
+
* ALL log output goes to stderr so stdio transport stays clean.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
export type LogLevel = "debug" | "info" | "warn" | "error";
|
|
8
|
+
|
|
9
|
+
const LEVEL_ORDER: Record<LogLevel, number> = {
|
|
10
|
+
debug: 0,
|
|
11
|
+
info: 1,
|
|
12
|
+
warn: 2,
|
|
13
|
+
error: 3,
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
let currentLevel: LogLevel = "info";
|
|
17
|
+
|
|
18
|
+
export function setLogLevel(level: LogLevel): void {
|
|
19
|
+
currentLevel = level;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function shouldLog(level: LogLevel): boolean {
|
|
23
|
+
return LEVEL_ORDER[level] >= LEVEL_ORDER[currentLevel];
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function ts(): string {
|
|
27
|
+
return new Date().toISOString();
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export const logger = {
|
|
31
|
+
debug(msg: string, data?: unknown): void {
|
|
32
|
+
if (shouldLog("debug")) {
|
|
33
|
+
process.stderr.write(
|
|
34
|
+
`[${ts()}] DEBUG ${msg}${data ? ` ${JSON.stringify(data)}` : ""}\n`,
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
info(msg: string, data?: unknown): void {
|
|
39
|
+
if (shouldLog("info")) {
|
|
40
|
+
process.stderr.write(
|
|
41
|
+
`[${ts()}] INFO ${msg}${data ? ` ${JSON.stringify(data)}` : ""}\n`,
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
warn(msg: string, data?: unknown): void {
|
|
46
|
+
if (shouldLog("warn")) {
|
|
47
|
+
process.stderr.write(
|
|
48
|
+
`[${ts()}] WARN ${msg}${data ? ` ${JSON.stringify(data)}` : ""}\n`,
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
error(msg: string, data?: unknown): void {
|
|
53
|
+
if (shouldLog("error")) {
|
|
54
|
+
process.stderr.write(
|
|
55
|
+
`[${ts()}] ERROR ${msg}${data ? ` ${JSON.stringify(data)}` : ""}\n`,
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
/** Raw line to stderr (no timestamp/level prefix). Used for startup banners. */
|
|
60
|
+
raw(msg: string): void {
|
|
61
|
+
process.stderr.write(`${msg}\n`);
|
|
62
|
+
},
|
|
63
|
+
};
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { afterEach, describe, expect, it } from "vitest";
|
|
2
|
+
import { mkdtempSync, rmSync, writeFileSync } from "node:fs";
|
|
3
|
+
import os from "node:os";
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
import {
|
|
6
|
+
enrichWithDescriptions,
|
|
7
|
+
extractDescription,
|
|
8
|
+
parseDescriptionFromFrontmatter,
|
|
9
|
+
readFullSkillContent,
|
|
10
|
+
} from "./manifest.js";
|
|
11
|
+
|
|
12
|
+
const tempDirs: string[] = [];
|
|
13
|
+
|
|
14
|
+
function createTempDir(prefix: string): string {
|
|
15
|
+
const dir = mkdtempSync(path.join(os.tmpdir(), prefix));
|
|
16
|
+
tempDirs.push(dir);
|
|
17
|
+
return dir;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
afterEach(() => {
|
|
21
|
+
while (tempDirs.length > 0) {
|
|
22
|
+
const dir = tempDirs.pop();
|
|
23
|
+
if (dir) {
|
|
24
|
+
rmSync(dir, { recursive: true, force: true });
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
describe("frontmatter description parsing", () => {
|
|
30
|
+
it("extracts a quoted description", () => {
|
|
31
|
+
const content = [
|
|
32
|
+
"---",
|
|
33
|
+
'name: "react-expert"',
|
|
34
|
+
'description: "React architecture and performance best practices"',
|
|
35
|
+
"---",
|
|
36
|
+
"# React Expert",
|
|
37
|
+
].join("\n");
|
|
38
|
+
|
|
39
|
+
expect(parseDescriptionFromFrontmatter(content, 200)).toBe(
|
|
40
|
+
"React architecture and performance best practices",
|
|
41
|
+
);
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
it("truncates long descriptions with ellipsis", () => {
|
|
45
|
+
const content = [
|
|
46
|
+
"---",
|
|
47
|
+
"name: long-skill",
|
|
48
|
+
"description: This is a very long description for testing truncation behavior",
|
|
49
|
+
"---",
|
|
50
|
+
].join("\n");
|
|
51
|
+
|
|
52
|
+
expect(parseDescriptionFromFrontmatter(content, 24)).toBe(
|
|
53
|
+
"This is a very long d...",
|
|
54
|
+
);
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
it("returns undefined when frontmatter description is missing", () => {
|
|
58
|
+
const content = ["---", "name: no-description", "---", "# Body"].join("\n");
|
|
59
|
+
expect(parseDescriptionFromFrontmatter(content, 100)).toBeUndefined();
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
describe("skill content IO", () => {
|
|
64
|
+
it("extracts description from file content", async () => {
|
|
65
|
+
const dir = createTempDir("mcp-manifest-");
|
|
66
|
+
const file = path.join(dir, "SKILL.md");
|
|
67
|
+
writeFileSync(
|
|
68
|
+
file,
|
|
69
|
+
["---", "name: test-skill", "description: Fast API design patterns", "---"].join(
|
|
70
|
+
"\n",
|
|
71
|
+
),
|
|
72
|
+
"utf8",
|
|
73
|
+
);
|
|
74
|
+
|
|
75
|
+
await expect(extractDescription(file, 100)).resolves.toBe(
|
|
76
|
+
"Fast API design patterns",
|
|
77
|
+
);
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
it("returns undefined when file cannot be read", async () => {
|
|
81
|
+
await expect(extractDescription("/missing/skill.md", 100)).resolves.toBeUndefined();
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
it("returns full skill file contents", async () => {
|
|
85
|
+
const dir = createTempDir("mcp-full-read-");
|
|
86
|
+
const file = path.join(dir, "SKILL.md");
|
|
87
|
+
const body = "---\nname: full-read\ndescription: Full body\n---\n# Content";
|
|
88
|
+
writeFileSync(file, body, "utf8");
|
|
89
|
+
|
|
90
|
+
await expect(readFullSkillContent(file)).resolves.toBe(body);
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
describe("manifest enrichment", () => {
|
|
95
|
+
it("enriches missing descriptions and keeps existing descriptions", async () => {
|
|
96
|
+
const dir = createTempDir("mcp-enrich-");
|
|
97
|
+
const fileA = path.join(dir, "a.md");
|
|
98
|
+
const fileB = path.join(dir, "b.md");
|
|
99
|
+
writeFileSync(
|
|
100
|
+
fileA,
|
|
101
|
+
["---", "name: alpha", "description: Alpha description", "---"].join("\n"),
|
|
102
|
+
"utf8",
|
|
103
|
+
);
|
|
104
|
+
writeFileSync(
|
|
105
|
+
fileB,
|
|
106
|
+
["---", "name: beta", "description: Beta description", "---"].join("\n"),
|
|
107
|
+
"utf8",
|
|
108
|
+
);
|
|
109
|
+
|
|
110
|
+
const enriched = await enrichWithDescriptions(
|
|
111
|
+
[
|
|
112
|
+
{ id: "alpha", category: "general", path: fileA },
|
|
113
|
+
{
|
|
114
|
+
id: "beta",
|
|
115
|
+
category: "general",
|
|
116
|
+
path: fileB,
|
|
117
|
+
description: "Already populated",
|
|
118
|
+
},
|
|
119
|
+
],
|
|
120
|
+
100,
|
|
121
|
+
);
|
|
122
|
+
|
|
123
|
+
expect(enriched[0].description).toBe("Alpha description");
|
|
124
|
+
expect(enriched[1].description).toBe("Already populated");
|
|
125
|
+
});
|
|
126
|
+
});
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cubis Foundry MCP Server – vault manifest.
|
|
3
|
+
*
|
|
4
|
+
* Browse/search operations extract frontmatter description only (truncated).
|
|
5
|
+
* Full SKILL.md content is read only by skill_get.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { readFile } from "node:fs/promises";
|
|
9
|
+
import type { SkillPointer, VaultManifest } from "./types.js";
|
|
10
|
+
import { logger } from "../utils/logger.js";
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Build a VaultManifest from scanned skill pointers.
|
|
14
|
+
* Categories are derived from the pointers.
|
|
15
|
+
*/
|
|
16
|
+
export function buildManifest(skills: SkillPointer[]): VaultManifest {
|
|
17
|
+
const categorySet = new Set<string>();
|
|
18
|
+
for (const skill of skills) {
|
|
19
|
+
categorySet.add(skill.category);
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
categories: [...categorySet].sort(),
|
|
23
|
+
skills,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Extract the frontmatter `description` from a SKILL.md file.
|
|
29
|
+
* Reads only the YAML frontmatter block (between `---` delimiters).
|
|
30
|
+
* Returns the description truncated to maxLength, or undefined if not found.
|
|
31
|
+
*/
|
|
32
|
+
export async function extractDescription(
|
|
33
|
+
skillPath: string,
|
|
34
|
+
maxLength: number,
|
|
35
|
+
): Promise<string | undefined> {
|
|
36
|
+
try {
|
|
37
|
+
const content = await readFile(skillPath, "utf8");
|
|
38
|
+
return parseDescriptionFromFrontmatter(content, maxLength);
|
|
39
|
+
} catch (err) {
|
|
40
|
+
logger.debug(`Failed to read description from ${skillPath}: ${err}`);
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Parse the description field from YAML frontmatter.
|
|
47
|
+
*/
|
|
48
|
+
export function parseDescriptionFromFrontmatter(
|
|
49
|
+
content: string,
|
|
50
|
+
maxLength: number,
|
|
51
|
+
): string | undefined {
|
|
52
|
+
// Match YAML frontmatter block
|
|
53
|
+
const fmMatch = content.match(/^---\s*\n([\s\S]*?)\n---/);
|
|
54
|
+
if (!fmMatch) return undefined;
|
|
55
|
+
|
|
56
|
+
const frontmatter = fmMatch[1];
|
|
57
|
+
|
|
58
|
+
// Extract description field (handles both single-line and multi-line)
|
|
59
|
+
const descMatch = frontmatter.match(/^description:\s*(.+)$/m);
|
|
60
|
+
if (!descMatch) return undefined;
|
|
61
|
+
|
|
62
|
+
let desc = descMatch[1].trim();
|
|
63
|
+
// Remove surrounding quotes if present
|
|
64
|
+
if (
|
|
65
|
+
(desc.startsWith('"') && desc.endsWith('"')) ||
|
|
66
|
+
(desc.startsWith("'") && desc.endsWith("'"))
|
|
67
|
+
) {
|
|
68
|
+
desc = desc.slice(1, -1);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
if (desc.length > maxLength) {
|
|
72
|
+
return desc.slice(0, maxLength - 3) + "...";
|
|
73
|
+
}
|
|
74
|
+
return desc;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Read the full content of a SKILL.md file.
|
|
79
|
+
* This is the ONLY function that reads full file content (lazy model).
|
|
80
|
+
*/
|
|
81
|
+
export async function readFullSkillContent(skillPath: string): Promise<string> {
|
|
82
|
+
return readFile(skillPath, "utf8");
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Enrich skill pointers with descriptions (for browse/search results).
|
|
87
|
+
*/
|
|
88
|
+
export async function enrichWithDescriptions(
|
|
89
|
+
skills: SkillPointer[],
|
|
90
|
+
maxLength: number,
|
|
91
|
+
): Promise<SkillPointer[]> {
|
|
92
|
+
return Promise.all(
|
|
93
|
+
skills.map(async (skill) => {
|
|
94
|
+
if (skill.description) return skill;
|
|
95
|
+
const description = await extractDescription(skill.path, maxLength);
|
|
96
|
+
return { ...skill, description };
|
|
97
|
+
}),
|
|
98
|
+
);
|
|
99
|
+
}
|