diff --git a/.changeset/upset-bugs-dress.md b/.changeset/upset-bugs-dress.md new file mode 100644 index 00000000..d5fe2807 --- /dev/null +++ b/.changeset/upset-bugs-dress.md @@ -0,0 +1,23 @@ +--- +'workers-observability': patch +'cloudflare-casb-mcp-server': patch +'cloudflare-browser-mcp-server': patch +'containers-mcp': patch +'workers-bindings': patch +'docs-vectorize': patch +'workers-builds': patch +'@repo/mcp-common': patch +'dns-analytics': patch +'dex-analysis': patch +'docs-autorag': patch +'cloudflare-ai-gateway-mcp-server': patch +'auditlogs': patch +'demo-day': patch +'cloudflare-autorag-mcp-server': patch +'logpush': patch +'cloudflare-radar-mcp-server': patch +--- + +chore: add suffixes to common files in apps and packages + +It can be confusing switching between 16 files named 'index.ts', or 3 files named workers.ts. This change renames common files to have suffixes such as .types.ts, .api.ts, etc. to make it easier to work across files in the monorepo. diff --git a/apps/ai-gateway/src/index.ts b/apps/ai-gateway/src/ai-gateway.app.ts similarity index 95% rename from apps/ai-gateway/src/index.ts rename to apps/ai-gateway/src/ai-gateway.app.ts index 8deac108..39ba51d1 100644 --- a/apps/ai-gateway/src/index.ts +++ b/apps/ai-gateway/src/ai-gateway.app.ts @@ -6,17 +6,17 @@ import { handleTokenExchangeCallback, } from '@repo/mcp-common/src/cloudflare-oauth-handler' import { handleDevMode } from '@repo/mcp-common/src/dev-mode' -import { getUserDetails, UserDetails } from '@repo/mcp-common/src/durable-objects/user_details' +import { getUserDetails, UserDetails } from '@repo/mcp-common/src/durable-objects/user_details.do' import { getEnv } from '@repo/mcp-common/src/env' import { RequiredScopes } from '@repo/mcp-common/src/scopes' import { CloudflareMCPServer } from '@repo/mcp-common/src/server' -import { registerAccountTools } from '@repo/mcp-common/src/tools/account' +import { registerAccountTools } from '@repo/mcp-common/src/tools/account.tools' import { MetricsTracker } from '../../../packages/mcp-observability/src' -import { registerAIGatewayTools } from './tools/ai-gateway' +import { registerAIGatewayTools } from './tools/ai-gateway.tools' import type { AuthProps } from '@repo/mcp-common/src/cloudflare-oauth-handler' -import type { Env } from './context' +import type { Env } from './ai-gateway.context' const env = getEnv() diff --git a/apps/ai-gateway/src/context.ts b/apps/ai-gateway/src/ai-gateway.context.ts similarity index 86% rename from apps/ai-gateway/src/context.ts rename to apps/ai-gateway/src/ai-gateway.context.ts index 5275533c..c4c6db84 100644 --- a/apps/ai-gateway/src/context.ts +++ b/apps/ai-gateway/src/ai-gateway.context.ts @@ -1,5 +1,5 @@ -import type { UserDetails } from '@repo/mcp-common/src/durable-objects/user_details' -import type { AIGatewayMCP } from './index' +import type { UserDetails } from '@repo/mcp-common/src/durable-objects/user_details.do' +import type { AIGatewayMCP } from './ai-gateway.app' export interface Env { OAUTH_KV: KVNamespace diff --git a/apps/ai-gateway/src/tools/ai-gateway.ts b/apps/ai-gateway/src/tools/ai-gateway.tools.ts similarity index 98% rename from apps/ai-gateway/src/tools/ai-gateway.ts rename to apps/ai-gateway/src/tools/ai-gateway.tools.ts index ea1fafe1..5e3f63bb 100644 --- a/apps/ai-gateway/src/tools/ai-gateway.ts +++ b/apps/ai-gateway/src/tools/ai-gateway.tools.ts @@ -3,7 +3,7 @@ import { getCloudflareClient } from '@repo/mcp-common/src/cloudflare-api' import { GatewayIdParam, ListLogsParams, LogIdParam, pageParam, perPageParam } from '../types' import type { LogListParams } from 'cloudflare/resources/ai-gateway' -import type { AIGatewayMCP } from '../index' +import type { AIGatewayMCP } from '../ai-gateway.app' export function registerAIGatewayTools(agent: AIGatewayMCP) { agent.server.tool( diff --git a/apps/ai-gateway/vitest.config.ts b/apps/ai-gateway/vitest.config.ts index c201c144..ad7e3b5a 100644 --- a/apps/ai-gateway/vitest.config.ts +++ b/apps/ai-gateway/vitest.config.ts @@ -1,6 +1,6 @@ import { defineWorkersConfig } from '@cloudflare/vitest-pool-workers/config' -import type { Env } from './src/context' +import type { Env } from './src/ai-gateway.context' export interface TestEnv extends Env { CLOUDFLARE_MOCK_ACCOUNT_ID: string diff --git a/apps/ai-gateway/wrangler.jsonc b/apps/ai-gateway/wrangler.jsonc index 3d14bfbd..727e6620 100644 --- a/apps/ai-gateway/wrangler.jsonc +++ b/apps/ai-gateway/wrangler.jsonc @@ -4,7 +4,7 @@ */ { "$schema": "node_modules/wrangler/config-schema.json", - "main": "src/index.ts", + "main": "src/ai-gateway.app.ts", "compatibility_date": "2025-03-10", "compatibility_flags": ["nodejs_compat"], "name": "mcp-cloudflare-ai-gateway-dev", diff --git a/apps/auditlogs/src/index.ts b/apps/auditlogs/src/auditlogs.app.ts similarity index 95% rename from apps/auditlogs/src/index.ts rename to apps/auditlogs/src/auditlogs.app.ts index f0200083..9a8ba4cc 100644 --- a/apps/auditlogs/src/index.ts +++ b/apps/auditlogs/src/auditlogs.app.ts @@ -6,17 +6,17 @@ import { handleTokenExchangeCallback, } from '@repo/mcp-common/src/cloudflare-oauth-handler' import { handleDevMode } from '@repo/mcp-common/src/dev-mode' -import { getUserDetails, UserDetails } from '@repo/mcp-common/src/durable-objects/user_details' +import { getUserDetails, UserDetails } from '@repo/mcp-common/src/durable-objects/user_details.do' import { getEnv } from '@repo/mcp-common/src/env' import { RequiredScopes } from '@repo/mcp-common/src/scopes' import { CloudflareMCPServer } from '@repo/mcp-common/src/server' -import { registerAccountTools } from '@repo/mcp-common/src/tools/account' +import { registerAccountTools } from '@repo/mcp-common/src/tools/account.tools' import { MetricsTracker } from '../../../packages/mcp-observability/src' -import { registerAuditLogTools } from './tools/auditlogs' +import { registerAuditLogTools } from './tools/auditlogs.tools' import type { AuthProps } from '@repo/mcp-common/src/cloudflare-oauth-handler' -import type { Env } from './context' +import type { Env } from './auditlogs.context' const env = getEnv() diff --git a/apps/auditlogs/src/context.ts b/apps/auditlogs/src/auditlogs.context.ts similarity index 87% rename from apps/auditlogs/src/context.ts rename to apps/auditlogs/src/auditlogs.context.ts index 313f2d90..be701d04 100644 --- a/apps/auditlogs/src/context.ts +++ b/apps/auditlogs/src/auditlogs.context.ts @@ -1,5 +1,5 @@ -import type { UserDetails } from '@repo/mcp-common/src/durable-objects/user_details' -import type { AuditlogMCP } from './index' +import type { UserDetails } from '@repo/mcp-common/src/durable-objects/user_details.do' +import type { AuditlogMCP } from './auditlogs.app' export interface Env { OAUTH_KV: KVNamespace diff --git a/apps/auditlogs/src/tools/auditlogs.ts b/apps/auditlogs/src/tools/auditlogs.tools.ts similarity index 99% rename from apps/auditlogs/src/tools/auditlogs.ts rename to apps/auditlogs/src/tools/auditlogs.tools.ts index 2fe93261..02620232 100644 --- a/apps/auditlogs/src/tools/auditlogs.ts +++ b/apps/auditlogs/src/tools/auditlogs.tools.ts @@ -2,7 +2,7 @@ import { z } from 'zod' import { fetchCloudflareApi } from '@repo/mcp-common/src/cloudflare-api' -import type { AuditlogMCP } from '../index' +import type { AuditlogMCP } from '../auditlogs.app' export const actionResults = z.enum(['success', 'failure', '']) export const actionTypes = z.enum(['create', 'delete', 'view', 'update', 'login']) diff --git a/apps/auditlogs/vitest.config.ts b/apps/auditlogs/vitest.config.ts index c201c144..c57ade2f 100644 --- a/apps/auditlogs/vitest.config.ts +++ b/apps/auditlogs/vitest.config.ts @@ -1,6 +1,6 @@ import { defineWorkersConfig } from '@cloudflare/vitest-pool-workers/config' -import type { Env } from './src/context' +import type { Env } from './src/auditlogs.context' export interface TestEnv extends Env { CLOUDFLARE_MOCK_ACCOUNT_ID: string diff --git a/apps/auditlogs/wrangler.jsonc b/apps/auditlogs/wrangler.jsonc index e7dc5ad1..bfcc887b 100644 --- a/apps/auditlogs/wrangler.jsonc +++ b/apps/auditlogs/wrangler.jsonc @@ -4,7 +4,7 @@ */ { "$schema": "node_modules/wrangler/config-schema.json", - "main": "src/index.ts", + "main": "src/auditlogs.app.ts", "compatibility_date": "2025-03-10", "compatibility_flags": ["nodejs_compat"], "name": "mcp-cloudflare-auditlogs-dev", diff --git a/apps/autorag/src/index.ts b/apps/autorag/src/autorag.app.ts similarity index 95% rename from apps/autorag/src/index.ts rename to apps/autorag/src/autorag.app.ts index 2fe55d14..63455523 100644 --- a/apps/autorag/src/index.ts +++ b/apps/autorag/src/autorag.app.ts @@ -6,17 +6,17 @@ import { handleTokenExchangeCallback, } from '@repo/mcp-common/src/cloudflare-oauth-handler' import { handleDevMode } from '@repo/mcp-common/src/dev-mode' -import { getUserDetails, UserDetails } from '@repo/mcp-common/src/durable-objects/user_details' +import { getUserDetails, UserDetails } from '@repo/mcp-common/src/durable-objects/user_details.do' import { getEnv } from '@repo/mcp-common/src/env' import { RequiredScopes } from '@repo/mcp-common/src/scopes' import { CloudflareMCPServer } from '@repo/mcp-common/src/server' -import { registerAccountTools } from '@repo/mcp-common/src/tools/account' +import { registerAccountTools } from '@repo/mcp-common/src/tools/account.tools' import { MetricsTracker } from '../../../packages/mcp-observability/src' -import { registerAutoRAGTools } from './tools/autorag' +import { registerAutoRAGTools } from './tools/autorag.tools' import type { AuthProps } from '@repo/mcp-common/src/cloudflare-oauth-handler' -import type { Env } from './context' +import type { Env } from './autorag.context' const env = getEnv() diff --git a/apps/autorag/src/context.ts b/apps/autorag/src/autorag.context.ts similarity index 87% rename from apps/autorag/src/context.ts rename to apps/autorag/src/autorag.context.ts index 4d34ead4..cdf8e90b 100644 --- a/apps/autorag/src/context.ts +++ b/apps/autorag/src/autorag.context.ts @@ -1,5 +1,5 @@ -import type { UserDetails } from '@repo/mcp-common/src/durable-objects/user_details' -import type { AutoRAGMCP } from './index' +import type { UserDetails } from '@repo/mcp-common/src/durable-objects/user_details.do' +import type { AutoRAGMCP } from './autorag.app' export interface Env { OAUTH_KV: KVNamespace diff --git a/apps/autorag/src/tools/autorag.ts b/apps/autorag/src/tools/autorag.tools.ts similarity index 98% rename from apps/autorag/src/tools/autorag.ts rename to apps/autorag/src/tools/autorag.tools.ts index 9c71b6df..6d1301f3 100644 --- a/apps/autorag/src/tools/autorag.ts +++ b/apps/autorag/src/tools/autorag.tools.ts @@ -5,7 +5,7 @@ import { getCloudflareClient } from '@repo/mcp-common/src/cloudflare-api' import { pageParam, perPageParam } from '../types' -import type { AutoRAGMCP } from '../index' +import type { AutoRAGMCP } from '../autorag.app' import V4PagePaginationArray = Cloudflare.V4PagePaginationArray diff --git a/apps/autorag/vitest.config.ts b/apps/autorag/vitest.config.ts index c201c144..908a50ce 100644 --- a/apps/autorag/vitest.config.ts +++ b/apps/autorag/vitest.config.ts @@ -1,6 +1,6 @@ import { defineWorkersConfig } from '@cloudflare/vitest-pool-workers/config' -import type { Env } from './src/context' +import type { Env } from './src/autorag.context' export interface TestEnv extends Env { CLOUDFLARE_MOCK_ACCOUNT_ID: string diff --git a/apps/autorag/wrangler.jsonc b/apps/autorag/wrangler.jsonc index ab9ea715..d0b058f8 100644 --- a/apps/autorag/wrangler.jsonc +++ b/apps/autorag/wrangler.jsonc @@ -4,7 +4,7 @@ */ { "$schema": "node_modules/wrangler/config-schema.json", - "main": "src/index.ts", + "main": "src/autorag.app.ts", "compatibility_date": "2025-03-10", "compatibility_flags": ["nodejs_compat"], "name": "mcp-cloudflare-autorag-dev", diff --git a/apps/browser-rendering/src/index.ts b/apps/browser-rendering/src/browser.app.ts similarity index 95% rename from apps/browser-rendering/src/index.ts rename to apps/browser-rendering/src/browser.app.ts index adbcc1c7..79b28e8b 100644 --- a/apps/browser-rendering/src/index.ts +++ b/apps/browser-rendering/src/browser.app.ts @@ -6,17 +6,17 @@ import { handleTokenExchangeCallback, } from '@repo/mcp-common/src/cloudflare-oauth-handler' import { handleDevMode } from '@repo/mcp-common/src/dev-mode' -import { getUserDetails, UserDetails } from '@repo/mcp-common/src/durable-objects/user_details' +import { getUserDetails, UserDetails } from '@repo/mcp-common/src/durable-objects/user_details.do' import { getEnv } from '@repo/mcp-common/src/env' import { RequiredScopes } from '@repo/mcp-common/src/scopes' import { CloudflareMCPServer } from '@repo/mcp-common/src/server' -import { registerAccountTools } from '@repo/mcp-common/src/tools/account' +import { registerAccountTools } from '@repo/mcp-common/src/tools/account.tools' import { MetricsTracker } from '../../../packages/mcp-observability/src' -import { registerBrowserTools } from './tools/browser' +import { registerBrowserTools } from './tools/browser.tools' import type { AuthProps } from '@repo/mcp-common/src/cloudflare-oauth-handler' -import type { Env } from './context' +import type { Env } from './browser.context' const env = getEnv() diff --git a/apps/browser-rendering/src/context.ts b/apps/browser-rendering/src/browser.context.ts similarity index 87% rename from apps/browser-rendering/src/context.ts rename to apps/browser-rendering/src/browser.context.ts index 5d64e0b0..d1faba9c 100644 --- a/apps/browser-rendering/src/context.ts +++ b/apps/browser-rendering/src/browser.context.ts @@ -1,5 +1,5 @@ -import type { UserDetails } from '@repo/mcp-common/src/durable-objects/user_details' -import type { BrowserMCP } from './index' +import type { UserDetails } from '@repo/mcp-common/src/durable-objects/user_details.do' +import type { BrowserMCP } from './browser.app' export interface Env { OAUTH_KV: KVNamespace diff --git a/apps/browser-rendering/src/tools/browser.ts b/apps/browser-rendering/src/tools/browser.tools.ts similarity index 98% rename from apps/browser-rendering/src/tools/browser.ts rename to apps/browser-rendering/src/tools/browser.tools.ts index 1b51a6c0..463fecee 100644 --- a/apps/browser-rendering/src/tools/browser.ts +++ b/apps/browser-rendering/src/tools/browser.tools.ts @@ -2,7 +2,7 @@ import { z } from 'zod' import { getCloudflareClient } from '@repo/mcp-common/src/cloudflare-api' -import type { BrowserMCP } from '../index' +import type { BrowserMCP } from '../browser.app' export function registerBrowserTools(agent: BrowserMCP) { agent.server.tool( diff --git a/apps/browser-rendering/vitest.config.ts b/apps/browser-rendering/vitest.config.ts index c201c144..3e37b49d 100644 --- a/apps/browser-rendering/vitest.config.ts +++ b/apps/browser-rendering/vitest.config.ts @@ -1,6 +1,6 @@ import { defineWorkersConfig } from '@cloudflare/vitest-pool-workers/config' -import type { Env } from './src/context' +import type { Env } from './src/browser.context' export interface TestEnv extends Env { CLOUDFLARE_MOCK_ACCOUNT_ID: string diff --git a/apps/browser-rendering/wrangler.jsonc b/apps/browser-rendering/wrangler.jsonc index 04f4eb3c..ee6dc585 100644 --- a/apps/browser-rendering/wrangler.jsonc +++ b/apps/browser-rendering/wrangler.jsonc @@ -4,7 +4,7 @@ */ { "$schema": "node_modules/wrangler/config-schema.json", - "main": "src/index.ts", + "main": "src/browser.app.ts", "compatibility_date": "2025-03-10", "compatibility_flags": ["nodejs_compat"], "name": "mcp-cloudflare-browser-dev", diff --git a/apps/cloudflare-one-casb/README.md b/apps/cloudflare-one-casb/README.md index 57c413bf..d4aafe13 100644 --- a/apps/cloudflare-one-casb/README.md +++ b/apps/cloudflare-one-casb/README.md @@ -2,7 +2,7 @@ This is a [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction) server that supports remote MCP connections, with Cloudflare OAuth built-in. -You should use this as a template to build an MCP server for Cloudflare, provided by Cloudflare at `server-name.mcp.cloudflare.com`. It has a basic set of tools `apps/template-start-here/src/tools/logs.ts` — you can modify these to do what you need +You should use this as a template to build an MCP server for Cloudflare, provided by Cloudflare at `server-name.mcp.cloudflare.com`. It has a basic set of tools `apps/template-start-here/src/tools/logpush.tools.ts` — you can modify these to do what you need ## Getting Started diff --git a/apps/cloudflare-one-casb/src/index.ts b/apps/cloudflare-one-casb/src/cf1-casb.app.ts similarity index 95% rename from apps/cloudflare-one-casb/src/index.ts rename to apps/cloudflare-one-casb/src/cf1-casb.app.ts index c76bd820..3a448ada 100644 --- a/apps/cloudflare-one-casb/src/index.ts +++ b/apps/cloudflare-one-casb/src/cf1-casb.app.ts @@ -6,17 +6,17 @@ import { handleTokenExchangeCallback, } from '@repo/mcp-common/src/cloudflare-oauth-handler' import { handleDevMode } from '@repo/mcp-common/src/dev-mode' -import { getUserDetails, UserDetails } from '@repo/mcp-common/src/durable-objects/user_details' +import { getUserDetails, UserDetails } from '@repo/mcp-common/src/durable-objects/user_details.do' import { getEnv } from '@repo/mcp-common/src/env' import { RequiredScopes } from '@repo/mcp-common/src/scopes' import { CloudflareMCPServer } from '@repo/mcp-common/src/server' -import { registerAccountTools } from '@repo/mcp-common/src/tools/account' +import { registerAccountTools } from '@repo/mcp-common/src/tools/account.tools' import { MetricsTracker } from '../../../packages/mcp-observability/src' -import { registerIntegrationsTools } from './tools/integrations' +import { registerIntegrationsTools } from './tools/integrations.tools' import type { AuthProps } from '@repo/mcp-common/src/cloudflare-oauth-handler' -import type { Env } from './context' +import type { Env } from './cf1-casb.context' export { UserDetails } diff --git a/apps/cloudflare-one-casb/src/context.ts b/apps/cloudflare-one-casb/src/cf1-casb.context.ts similarity index 87% rename from apps/cloudflare-one-casb/src/context.ts rename to apps/cloudflare-one-casb/src/cf1-casb.context.ts index b8bda3f0..6bce5fc8 100644 --- a/apps/cloudflare-one-casb/src/context.ts +++ b/apps/cloudflare-one-casb/src/cf1-casb.context.ts @@ -1,4 +1,4 @@ -import type { CASBMCP, UserDetails } from './index' +import type { CASBMCP, UserDetails } from './cf1-casb.app' export interface Env { ENVIRONMENT: 'development' | 'staging' | 'production' diff --git a/apps/cloudflare-one-casb/src/tools/integrations.ts b/apps/cloudflare-one-casb/src/tools/integrations.tools.ts similarity index 96% rename from apps/cloudflare-one-casb/src/tools/integrations.ts rename to apps/cloudflare-one-casb/src/tools/integrations.tools.ts index 0d8072a0..d38521c6 100644 --- a/apps/cloudflare-one-casb/src/tools/integrations.ts +++ b/apps/cloudflare-one-casb/src/tools/integrations.tools.ts @@ -1,6 +1,6 @@ import { z } from 'zod' -import { withAccountCheck } from '@repo/mcp-common/src/api/account' +import { withAccountCheck } from '@repo/mcp-common/src/api/account.api' import { handleAssetById, handleAssetCategories, @@ -10,14 +10,14 @@ import { handleAssetsSearch, handleIntegrationById, handleIntegrations, -} from '@repo/mcp-common/src/api/cf1-integration' +} from '@repo/mcp-common/src/api/cf1-integration.api' import { assetCategoryTypeParam, assetCategoryVendorParam, -} from '@repo/mcp-common/src/schemas/cf1-integrations' +} from '@repo/mcp-common/src/types/cf1-integrations.types' -import type { ToolDefinition } from '@repo/mcp-common/src/types/tools' -import type { CASBMCP } from '../index' +import type { ToolDefinition } from '@repo/mcp-common/src/types/tools.types' +import type { CASBMCP } from '../cf1-casb.app' const PAGE_SIZE = 3 diff --git a/apps/cloudflare-one-casb/vitest.config.ts b/apps/cloudflare-one-casb/vitest.config.ts index c201c144..20e9e31b 100644 --- a/apps/cloudflare-one-casb/vitest.config.ts +++ b/apps/cloudflare-one-casb/vitest.config.ts @@ -1,6 +1,6 @@ import { defineWorkersConfig } from '@cloudflare/vitest-pool-workers/config' -import type { Env } from './src/context' +import type { Env } from './src/cf1-casb.context' export interface TestEnv extends Env { CLOUDFLARE_MOCK_ACCOUNT_ID: string diff --git a/apps/cloudflare-one-casb/wrangler.jsonc b/apps/cloudflare-one-casb/wrangler.jsonc index bdec102c..c17a423f 100644 --- a/apps/cloudflare-one-casb/wrangler.jsonc +++ b/apps/cloudflare-one-casb/wrangler.jsonc @@ -4,7 +4,7 @@ */ { "$schema": "node_modules/wrangler/config-schema.json", - "main": "src/index.ts", + "main": "src/cf1-casb.app.ts", "compatibility_date": "2025-03-10", "compatibility_flags": ["nodejs_compat"], "migrations": [ diff --git a/apps/demo-day/src/index.ts b/apps/demo-day/src/demo-day.app.ts similarity index 100% rename from apps/demo-day/src/index.ts rename to apps/demo-day/src/demo-day.app.ts diff --git a/apps/demo-day/tsconfig.json b/apps/demo-day/tsconfig.json index adc5f137..e607bfb0 100644 --- a/apps/demo-day/tsconfig.json +++ b/apps/demo-day/tsconfig.json @@ -1,6 +1,6 @@ { "extends": "@repo/typescript-config/workers.json", - "include": ["src/index.ts"], + "include": ["src/demo-day.app.ts"], "compilerOptions": { "types": ["@types/node"] } diff --git a/apps/demo-day/wrangler.json b/apps/demo-day/wrangler.json index d67c5cae..86828ec0 100644 --- a/apps/demo-day/wrangler.json +++ b/apps/demo-day/wrangler.json @@ -1,6 +1,6 @@ { "$schema": "node_modules/wrangler/config-schema.json", - "main": "src/index.ts", + "main": "src/demo-day.app.ts", "compatibility_date": "2025-03-10", "compatibility_flags": ["nodejs_compat"], "account_id": "6702657b6aa048cf3081ff3ff3c9c52f", diff --git a/apps/dex-analysis/src/index.ts b/apps/dex-analysis/src/dex-analysis.app.ts similarity index 95% rename from apps/dex-analysis/src/index.ts rename to apps/dex-analysis/src/dex-analysis.app.ts index 5804677e..f40b33af 100644 --- a/apps/dex-analysis/src/index.ts +++ b/apps/dex-analysis/src/dex-analysis.app.ts @@ -6,17 +6,17 @@ import { handleTokenExchangeCallback, } from '@repo/mcp-common/src/cloudflare-oauth-handler' import { handleDevMode } from '@repo/mcp-common/src/dev-mode' -import { getUserDetails, UserDetails } from '@repo/mcp-common/src/durable-objects/user_details' +import { getUserDetails, UserDetails } from '@repo/mcp-common/src/durable-objects/user_details.do' import { getEnv } from '@repo/mcp-common/src/env' import { RequiredScopes } from '@repo/mcp-common/src/scopes' import { CloudflareMCPServer } from '@repo/mcp-common/src/server' -import { registerAccountTools } from '@repo/mcp-common/src/tools/account' +import { registerAccountTools } from '@repo/mcp-common/src/tools/account.tools' import { MetricsTracker } from '@repo/mcp-observability' -import { registerDEXTools } from './tools/dex' +import { registerDEXTools } from './tools/dex-analysis.tools' import type { AuthProps } from '@repo/mcp-common/src/cloudflare-oauth-handler' -import type { Env } from './context' +import type { Env } from './dex-analysis.context' export { UserDetails } diff --git a/apps/dex-analysis/src/context.ts b/apps/dex-analysis/src/dex-analysis.context.ts similarity index 86% rename from apps/dex-analysis/src/context.ts rename to apps/dex-analysis/src/dex-analysis.context.ts index b2fbe2a7..5aa20b04 100644 --- a/apps/dex-analysis/src/context.ts +++ b/apps/dex-analysis/src/dex-analysis.context.ts @@ -1,5 +1,5 @@ -import type { UserDetails } from '@repo/mcp-common/src/durable-objects/user_details' -import type { CloudflareDEXMCP } from './index' +import type { UserDetails } from '@repo/mcp-common/src/durable-objects/user_details.do' +import type { CloudflareDEXMCP } from './dex-analysis.app' export interface Env { OAUTH_KV: KVNamespace diff --git a/apps/dex-analysis/src/tools/dex.ts b/apps/dex-analysis/src/tools/dex-analysis.tools.ts similarity index 98% rename from apps/dex-analysis/src/tools/dex.ts rename to apps/dex-analysis/src/tools/dex-analysis.tools.ts index 6354d366..e18e0910 100644 --- a/apps/dex-analysis/src/tools/dex.ts +++ b/apps/dex-analysis/src/tools/dex-analysis.tools.ts @@ -2,7 +2,7 @@ import { z } from 'zod' import { fetchDexTestAnalyzation, fetchDexTests } from '../api/dex' -import type { CloudflareDEXMCP } from '../index' +import type { CloudflareDEXMCP } from '../dex-analysis.app' // DEX parameter schema const dexTestIdParam = z.string().describe('The DEX Test ID to analyze details of.') diff --git a/apps/dex-analysis/vitest.config.ts b/apps/dex-analysis/vitest.config.ts index c201c144..c705a874 100644 --- a/apps/dex-analysis/vitest.config.ts +++ b/apps/dex-analysis/vitest.config.ts @@ -1,6 +1,6 @@ import { defineWorkersConfig } from '@cloudflare/vitest-pool-workers/config' -import type { Env } from './src/context' +import type { Env } from './src/dex-analysis.context' export interface TestEnv extends Env { CLOUDFLARE_MOCK_ACCOUNT_ID: string diff --git a/apps/dex-analysis/wrangler.jsonc b/apps/dex-analysis/wrangler.jsonc index 1429356e..018165e9 100644 --- a/apps/dex-analysis/wrangler.jsonc +++ b/apps/dex-analysis/wrangler.jsonc @@ -4,7 +4,7 @@ */ { "$schema": "node_modules/wrangler/config-schema.json", - "main": "src/index.ts", + "main": "src/dex-analysis.app.ts", "compatibility_date": "2025-03-10", "compatibility_flags": ["nodejs_compat"], "migrations": [ diff --git a/apps/dns-analytics/src/index.ts b/apps/dns-analytics/src/dns-analytics.app.ts similarity index 95% rename from apps/dns-analytics/src/index.ts rename to apps/dns-analytics/src/dns-analytics.app.ts index 67dc5fee..4e4ad372 100644 --- a/apps/dns-analytics/src/index.ts +++ b/apps/dns-analytics/src/dns-analytics.app.ts @@ -6,18 +6,18 @@ import { handleTokenExchangeCallback, } from '@repo/mcp-common/src/cloudflare-oauth-handler' import { handleDevMode } from '@repo/mcp-common/src/dev-mode' -import { getUserDetails, UserDetails } from '@repo/mcp-common/src/durable-objects/user_details' +import { getUserDetails, UserDetails } from '@repo/mcp-common/src/durable-objects/user_details.do' import { getEnv } from '@repo/mcp-common/src/env' import { RequiredScopes } from '@repo/mcp-common/src/scopes' import { CloudflareMCPServer } from '@repo/mcp-common/src/server' -import { registerAccountTools } from '@repo/mcp-common/src/tools/account' -import { registerZoneTools } from '@repo/mcp-common/src/tools/zone' +import { registerAccountTools } from '@repo/mcp-common/src/tools/account.tools' +import { registerZoneTools } from '@repo/mcp-common/src/tools/zone.tools' import { MetricsTracker } from '../../../packages/mcp-observability/src' -import { registerAnalyticTools } from './tools/analytics' +import { registerAnalyticTools } from './tools/dex-analytics.tools' import type { AuthProps } from '@repo/mcp-common/src/cloudflare-oauth-handler' -import type { Env } from './context' +import type { Env } from './dns-analytics.context' export { UserDetails } diff --git a/apps/dns-analytics/src/context.ts b/apps/dns-analytics/src/dns-analytics.context.ts similarity index 88% rename from apps/dns-analytics/src/context.ts rename to apps/dns-analytics/src/dns-analytics.context.ts index 27c56cb5..4ed98d66 100644 --- a/apps/dns-analytics/src/context.ts +++ b/apps/dns-analytics/src/dns-analytics.context.ts @@ -1,5 +1,5 @@ -import type { UserDetails } from '@repo/mcp-common/src/durable-objects/user_details' -import type { DNSAnalyticsMCP } from './index' +import type { UserDetails } from '@repo/mcp-common/src/durable-objects/user_details.do' +import type { DNSAnalyticsMCP } from './dns-analytics.app' export interface Env { OAUTH_KV: KVNamespace diff --git a/apps/dns-analytics/src/tools/analytics.ts b/apps/dns-analytics/src/tools/dex-analytics.tools.ts similarity index 96% rename from apps/dns-analytics/src/tools/analytics.ts rename to apps/dns-analytics/src/tools/dex-analytics.tools.ts index 02a67d40..7f7acd5a 100644 --- a/apps/dns-analytics/src/tools/analytics.ts +++ b/apps/dns-analytics/src/tools/dex-analytics.tools.ts @@ -6,8 +6,8 @@ import { getEnv } from '@repo/mcp-common/src/env' import type { AccountGetParams } from 'cloudflare/resources/accounts/accounts.mjs' import type { ReportGetParams } from 'cloudflare/resources/dns/analytics.mjs' import type { ZoneGetParams } from 'cloudflare/resources/dns/settings.mjs' -import type { Env } from '../context' -import type { DNSAnalyticsMCP } from '../index' +import type { DNSAnalyticsMCP } from '../dns-analytics.app' +import type { Env } from '../dns-analytics.context' const env = getEnv() diff --git a/apps/dns-analytics/worker-configuration.d.ts b/apps/dns-analytics/worker-configuration.d.ts index 4aba3e6d..c3e3fa01 100644 --- a/apps/dns-analytics/worker-configuration.d.ts +++ b/apps/dns-analytics/worker-configuration.d.ts @@ -10,7 +10,7 @@ declare namespace Cloudflare { CLOUDFLARE_CLIENT_ID: "PLACEHOLDER"; CLOUDFLARE_CLIENT_SECRET: "PLACEHOLDER"; DEV_CLOUDFLARE_API_TOKEN: "PLACEHOLDER"; - MCP_OBJECT: DurableObjectNamespace; + MCP_OBJECT: DurableObjectNamespace; MCP_METRICS: AnalyticsEngineDataset; } } @@ -4567,7 +4567,7 @@ interface IncomingRequestCfPropertiesTLSClientAuthPlaceholder { certNotAfter: ""; } /** Possible outcomes of TLS verification */ -declare type CertVerificationStatus = +declare type CertVerificationStatus = /** Authentication succeeded */ "SUCCESS" /** No certificate was presented */ @@ -4626,7 +4626,7 @@ interface D1ExecResult { count: number; duration: number; } -type D1SessionConstraint = +type D1SessionConstraint = // Indicates that the first query should go to the primary, and the rest queries // using the same D1DatabaseSession will go to any replica that is consistent with // the bookmark maintained by the session (returned by the first query). @@ -5064,7 +5064,7 @@ declare namespace Rpc { // The reason for using a generic type here is to build a serializable subset of structured // cloneable composite types. This allows types defined with the "interface" keyword to pass the // serializable check as well. Otherwise, only types defined with the "type" keyword would pass. - type Serializable = + type Serializable = // Structured cloneables BaseType // Structured cloneable composites diff --git a/apps/dns-analytics/wrangler.jsonc b/apps/dns-analytics/wrangler.jsonc index f07c3e59..1c33d47d 100644 --- a/apps/dns-analytics/wrangler.jsonc +++ b/apps/dns-analytics/wrangler.jsonc @@ -4,7 +4,7 @@ */ { "$schema": "node_modules/wrangler/config-schema.json", - "main": "src/index.ts", + "main": "src/dns-analytics.app.ts", "compatibility_date": "2025-03-10", "compatibility_flags": ["nodejs_compat"], "name": "mcp-cloudflare-dns-analytics-dev", diff --git a/apps/docs-autorag/src/index.ts b/apps/docs-autorag/src/docs-autorag.app.ts similarity index 87% rename from apps/docs-autorag/src/index.ts rename to apps/docs-autorag/src/docs-autorag.app.ts index dc7bea2a..a200823d 100644 --- a/apps/docs-autorag/src/index.ts +++ b/apps/docs-autorag/src/docs-autorag.app.ts @@ -4,9 +4,9 @@ import { createApiHandler } from '@repo/mcp-common/src/api-handler' import { getEnv } from '@repo/mcp-common/src/env' import { CloudflareMCPServer } from '@repo/mcp-common/src/server' -import { registerDocsTools } from './tools/docs' +import { registerDocsTools } from './tools/docs-autorag.tools' -import type { Env } from './context' +import type { Env } from './docs-autorag.context' const env = getEnv() diff --git a/apps/docs-autorag/src/context.ts b/apps/docs-autorag/src/docs-autorag.context.ts similarity index 80% rename from apps/docs-autorag/src/context.ts rename to apps/docs-autorag/src/docs-autorag.context.ts index 85ef234e..6205c127 100644 --- a/apps/docs-autorag/src/context.ts +++ b/apps/docs-autorag/src/docs-autorag.context.ts @@ -1,4 +1,4 @@ -import type { CloudflareDocumentationMCP } from './index' +import type { CloudflareDocumentationMCP } from './docs-autorag.app' export interface Env { ENVIRONMENT: 'development' | 'staging' | 'production' diff --git a/apps/docs-autorag/src/tools/docs.ts b/apps/docs-autorag/src/tools/docs-autorag.tools.ts similarity index 95% rename from apps/docs-autorag/src/tools/docs.ts rename to apps/docs-autorag/src/tools/docs-autorag.tools.ts index 19ac1a43..5c308f27 100644 --- a/apps/docs-autorag/src/tools/docs.ts +++ b/apps/docs-autorag/src/tools/docs-autorag.tools.ts @@ -2,7 +2,7 @@ import { type EmbeddedResource } from '@modelcontextprotocol/sdk/types.js' import mime from 'mime' import { z } from 'zod' -import type { CloudflareDocumentationMCP } from '../index' +import type { CloudflareDocumentationMCP } from '../docs-autorag.app' /** * Registers the docs search tool with the MCP server @@ -12,8 +12,8 @@ export function registerDocsTools(agent: CloudflareDocumentationMCP) { // Register the worker logs analysis tool by worker name agent.server.tool( 'search_cloudflare_documentation', - `Search the Cloudflare documentation. - + `Search the Cloudflare documentation. + You should use this tool when: - A user asks questions about Cloudflare products (Workers, Developer Platform, Zero Trust, CDN, etc) - A user requests information about a Cloudflare feature diff --git a/apps/docs-autorag/vitest.config.ts b/apps/docs-autorag/vitest.config.ts index c201c144..f25d33ea 100644 --- a/apps/docs-autorag/vitest.config.ts +++ b/apps/docs-autorag/vitest.config.ts @@ -1,6 +1,6 @@ import { defineWorkersConfig } from '@cloudflare/vitest-pool-workers/config' -import type { Env } from './src/context' +import type { Env } from './src/docs-autorag.context' export interface TestEnv extends Env { CLOUDFLARE_MOCK_ACCOUNT_ID: string diff --git a/apps/docs-autorag/wrangler.jsonc b/apps/docs-autorag/wrangler.jsonc index 43ea6eee..f3f37ffb 100644 --- a/apps/docs-autorag/wrangler.jsonc +++ b/apps/docs-autorag/wrangler.jsonc @@ -4,7 +4,7 @@ */ { "$schema": "node_modules/wrangler/config-schema.json", - "main": "src/index.ts", + "main": "src/docs-autorag.app.ts", "compatibility_date": "2025-03-10", "compatibility_flags": ["nodejs_compat"], "name": "mcp-cloudflare-docs-autorag-dev", diff --git a/apps/docs-vectorize/src/index.ts b/apps/docs-vectorize/src/docs-vectorize.app.ts similarity index 87% rename from apps/docs-vectorize/src/index.ts rename to apps/docs-vectorize/src/docs-vectorize.app.ts index dc7bea2a..181dce4d 100644 --- a/apps/docs-vectorize/src/index.ts +++ b/apps/docs-vectorize/src/docs-vectorize.app.ts @@ -4,9 +4,9 @@ import { createApiHandler } from '@repo/mcp-common/src/api-handler' import { getEnv } from '@repo/mcp-common/src/env' import { CloudflareMCPServer } from '@repo/mcp-common/src/server' -import { registerDocsTools } from './tools/docs' +import { registerDocsTools } from './tools/docs-vectorize.tools' -import type { Env } from './context' +import type { Env } from './docs-vectorize.context' const env = getEnv() diff --git a/apps/docs-vectorize/src/context.ts b/apps/docs-vectorize/src/docs-vectorize.context.ts similarity index 79% rename from apps/docs-vectorize/src/context.ts rename to apps/docs-vectorize/src/docs-vectorize.context.ts index b932560e..2aee7fd0 100644 --- a/apps/docs-vectorize/src/context.ts +++ b/apps/docs-vectorize/src/docs-vectorize.context.ts @@ -1,4 +1,4 @@ -import type { CloudflareDocumentationMCP } from './index' +import type { CloudflareDocumentationMCP } from './docs-vectorize.app' export interface Env { ENVIRONMENT: 'development' | 'staging' | 'production' diff --git a/apps/docs-vectorize/src/tools/docs.ts b/apps/docs-vectorize/src/tools/docs-vectorize.tools.ts similarity index 97% rename from apps/docs-vectorize/src/tools/docs.ts rename to apps/docs-vectorize/src/tools/docs-vectorize.tools.ts index 717e0b91..3806b912 100644 --- a/apps/docs-vectorize/src/tools/docs.ts +++ b/apps/docs-vectorize/src/tools/docs-vectorize.tools.ts @@ -1,6 +1,6 @@ import { z } from 'zod' -import type { CloudflareDocumentationMCP } from '../index' +import type { CloudflareDocumentationMCP } from '../docs-vectorize.app' // Always return 10 results for simplicity, don't make it configurable const TOP_K = 10 diff --git a/apps/docs-vectorize/vitest.config.ts b/apps/docs-vectorize/vitest.config.ts index c201c144..8643a897 100644 --- a/apps/docs-vectorize/vitest.config.ts +++ b/apps/docs-vectorize/vitest.config.ts @@ -1,6 +1,6 @@ import { defineWorkersConfig } from '@cloudflare/vitest-pool-workers/config' -import type { Env } from './src/context' +import type { Env } from './src/docs-vectorize.context' export interface TestEnv extends Env { CLOUDFLARE_MOCK_ACCOUNT_ID: string diff --git a/apps/docs-vectorize/wrangler.jsonc b/apps/docs-vectorize/wrangler.jsonc index b30d5bd4..bf99ac86 100644 --- a/apps/docs-vectorize/wrangler.jsonc +++ b/apps/docs-vectorize/wrangler.jsonc @@ -4,7 +4,7 @@ */ { "$schema": "node_modules/wrangler/config-schema.json", - "main": "src/index.ts", + "main": "src/docs-vectorize.app.ts", "compatibility_date": "2025-03-10", "compatibility_flags": ["nodejs_compat"], "name": "mcp-cloudflare-docs-vectorize-dev", diff --git a/apps/logpush/src/index.ts b/apps/logpush/src/logpush.app.ts similarity index 95% rename from apps/logpush/src/index.ts rename to apps/logpush/src/logpush.app.ts index 7b619c24..2947b119 100644 --- a/apps/logpush/src/index.ts +++ b/apps/logpush/src/logpush.app.ts @@ -6,17 +6,17 @@ import { handleTokenExchangeCallback, } from '@repo/mcp-common/src/cloudflare-oauth-handler' import { handleDevMode } from '@repo/mcp-common/src/dev-mode' -import { getUserDetails, UserDetails } from '@repo/mcp-common/src/durable-objects/user_details' +import { getUserDetails, UserDetails } from '@repo/mcp-common/src/durable-objects/user_details.do' import { getEnv } from '@repo/mcp-common/src/env' import { RequiredScopes } from '@repo/mcp-common/src/scopes' import { CloudflareMCPServer } from '@repo/mcp-common/src/server' -import { registerAccountTools } from '@repo/mcp-common/src/tools/account' +import { registerAccountTools } from '@repo/mcp-common/src/tools/account.tools' import { MetricsTracker } from '../../../packages/mcp-observability/src' -import { registerLogsTools } from './tools/logs' +import { registerLogsTools } from './tools/logpush.tools' import type { AuthProps } from '@repo/mcp-common/src/cloudflare-oauth-handler' -import type { Env } from './context' +import type { Env } from './logpush.context' const env = getEnv() diff --git a/apps/logpush/src/context.ts b/apps/logpush/src/logpush.context.ts similarity index 88% rename from apps/logpush/src/context.ts rename to apps/logpush/src/logpush.context.ts index 4d9ce5fa..ba9fc70a 100644 --- a/apps/logpush/src/context.ts +++ b/apps/logpush/src/logpush.context.ts @@ -1,5 +1,5 @@ -import type { UserDetails } from '@repo/mcp-common/src/durable-objects/user_details' -import type { LogsMCP } from './index' +import type { UserDetails } from '@repo/mcp-common/src/durable-objects/user_details.do' +import type { LogsMCP } from './logpush.app' export interface Env { OAUTH_KV: KVNamespace diff --git a/apps/logpush/src/tools/logs.ts b/apps/logpush/src/tools/logpush.tools.ts similarity index 98% rename from apps/logpush/src/tools/logs.ts rename to apps/logpush/src/tools/logpush.tools.ts index 008a9f09..76380739 100644 --- a/apps/logpush/src/tools/logs.ts +++ b/apps/logpush/src/tools/logpush.tools.ts @@ -2,7 +2,7 @@ import { z } from 'zod' import { fetchCloudflareApi } from '@repo/mcp-common/src/cloudflare-api' -import type { LogsMCP } from '../index' +import type { LogsMCP } from '../logpush.app' const zJobIdentifier = z.number().int().min(1).optional().describe('Unique id of the job.') const zEnabled = z.boolean().optional().describe('Flag that indicates if the job is enabled.') @@ -104,7 +104,7 @@ export function registerLogsTools(agent: LogsMCP) { agent.server.tool( 'logpush_jobs_by_account_id', `All Logpush jobs by Account ID. - + You should use this tool when: - You have questions or wish to request information about their Cloudflare Logpush jobs by account - You want a condensed version for the output results of your account's Cloudflare Logpush job diff --git a/apps/logpush/vitest.config.ts b/apps/logpush/vitest.config.ts index c201c144..ec58869b 100644 --- a/apps/logpush/vitest.config.ts +++ b/apps/logpush/vitest.config.ts @@ -1,6 +1,6 @@ import { defineWorkersConfig } from '@cloudflare/vitest-pool-workers/config' -import type { Env } from './src/context' +import type { Env } from './src/logpush.context' export interface TestEnv extends Env { CLOUDFLARE_MOCK_ACCOUNT_ID: string diff --git a/apps/logpush/wrangler.jsonc b/apps/logpush/wrangler.jsonc index 36bdbf86..2d9de9a0 100644 --- a/apps/logpush/wrangler.jsonc +++ b/apps/logpush/wrangler.jsonc @@ -4,7 +4,7 @@ */ { "$schema": "node_modules/wrangler/config-schema.json", - "main": "src/index.ts", + "main": "src/logpush.app.ts", "compatibility_date": "2025-03-10", "compatibility_flags": ["nodejs_compat"], "name": "mcp-cloudflare-logpush-dev", diff --git a/apps/radar/src/index.ts b/apps/radar/src/radar.app.ts similarity index 92% rename from apps/radar/src/index.ts rename to apps/radar/src/radar.app.ts index 765ce96c..049d1c74 100644 --- a/apps/radar/src/index.ts +++ b/apps/radar/src/radar.app.ts @@ -6,19 +6,19 @@ import { handleTokenExchangeCallback, } from '@repo/mcp-common/src/cloudflare-oauth-handler' import { handleDevMode } from '@repo/mcp-common/src/dev-mode' -import { getUserDetails, UserDetails } from '@repo/mcp-common/src/durable-objects/user_details' +import { getUserDetails, UserDetails } from '@repo/mcp-common/src/durable-objects/user_details.do' import { getEnv } from '@repo/mcp-common/src/env' import { RequiredScopes } from '@repo/mcp-common/src/scopes' import { CloudflareMCPServer } from '@repo/mcp-common/src/server' -import { registerAccountTools } from '@repo/mcp-common/src/tools/account' +import { registerAccountTools } from '@repo/mcp-common/src/tools/account.tools' import { MetricsTracker } from '@repo/mcp-observability' -import { BASE_INSTRUCTIONS } from './context' -import { registerRadarTools } from './tools/radar' -import { registerUrlScannerTools } from './tools/url-scanner' +import { BASE_INSTRUCTIONS } from './radar.context' +import { registerRadarTools } from './tools/radar.tools' +import { registerUrlScannerTools } from './tools/url-scanner.tools' import type { AuthProps } from '@repo/mcp-common/src/cloudflare-oauth-handler' -import type { Env } from './context' +import type { Env } from './radar.context' const env = getEnv() diff --git a/apps/radar/src/context.ts b/apps/radar/src/radar.context.ts similarity index 96% rename from apps/radar/src/context.ts rename to apps/radar/src/radar.context.ts index 881b4b18..994c4d32 100644 --- a/apps/radar/src/context.ts +++ b/apps/radar/src/radar.context.ts @@ -1,4 +1,4 @@ -import type { RadarMCP, UserDetails } from './index' +import type { RadarMCP, UserDetails } from './radar.app' export interface Env { OAUTH_KV: KVNamespace diff --git a/apps/radar/src/tools/radar.ts b/apps/radar/src/tools/radar.tools.ts similarity index 99% rename from apps/radar/src/tools/radar.ts rename to apps/radar/src/tools/radar.tools.ts index aaaab47c..baf070d3 100644 --- a/apps/radar/src/tools/radar.ts +++ b/apps/radar/src/tools/radar.tools.ts @@ -1,7 +1,10 @@ import { z } from 'zod' import { getCloudflareClient } from '@repo/mcp-common/src/cloudflare-api' -import { PaginationLimitParam, PaginationOffsetParam } from '@repo/mcp-common/src/types/shared' +import { + PaginationLimitParam, + PaginationOffsetParam, +} from '@repo/mcp-common/src/types/shared.types' import { AiDimensionParam, @@ -35,7 +38,7 @@ import { } from '../types/radar' import { resolveAndInvoke } from '../utils' -import type { RadarMCP } from '../index' +import type { RadarMCP } from '../radar.app' export function registerRadarTools(agent: RadarMCP) { agent.server.tool( diff --git a/apps/radar/src/tools/url-scanner.ts b/apps/radar/src/tools/url-scanner.tools.ts similarity index 95% rename from apps/radar/src/tools/url-scanner.ts rename to apps/radar/src/tools/url-scanner.tools.ts index 4d029a47..5825a822 100644 --- a/apps/radar/src/tools/url-scanner.ts +++ b/apps/radar/src/tools/url-scanner.tools.ts @@ -1,9 +1,9 @@ import { getCloudflareClient } from '@repo/mcp-common/src/cloudflare-api' -import { pollUntilReady } from '@repo/mcp-common/src/utils/poll' +import { pollUntilReady } from '@repo/mcp-common/src/poll' import { CreateScanResult, UrlParam } from '../types/url-scanner' -import type { RadarMCP } from '../index' +import type { RadarMCP } from '../radar.app' const MAX_WAIT_SECONDS = 30 const INTERVAL_SECONDS = 2 diff --git a/apps/radar/vitest.config.ts b/apps/radar/vitest.config.ts index c201c144..5f76e45c 100644 --- a/apps/radar/vitest.config.ts +++ b/apps/radar/vitest.config.ts @@ -1,6 +1,6 @@ import { defineWorkersConfig } from '@cloudflare/vitest-pool-workers/config' -import type { Env } from './src/context' +import type { Env } from './src/radar.context' export interface TestEnv extends Env { CLOUDFLARE_MOCK_ACCOUNT_ID: string diff --git a/apps/radar/wrangler.jsonc b/apps/radar/wrangler.jsonc index 32cdd477..6478c484 100644 --- a/apps/radar/wrangler.jsonc +++ b/apps/radar/wrangler.jsonc @@ -4,7 +4,7 @@ */ { "$schema": "node_modules/wrangler/config-schema.json", - "main": "src/index.ts", + "main": "src/radar.app.ts", "compatibility_date": "2025-03-10", "compatibility_flags": ["nodejs_compat"], "name": "mcp-cloudflare-radar-dev", diff --git a/apps/sandbox-container/container/index.ts b/apps/sandbox-container/container/sandbox.container.app.ts similarity index 100% rename from apps/sandbox-container/container/index.ts rename to apps/sandbox-container/container/sandbox.container.app.ts diff --git a/apps/sandbox-container/package.json b/apps/sandbox-container/package.json index c312e04b..2b0a1050 100644 --- a/apps/sandbox-container/package.json +++ b/apps/sandbox-container/package.json @@ -7,15 +7,15 @@ "check:types": "run-tsc", "check:lint": "run-eslint-workers", "deploy": "wrangler deploy", - "dev": "concurrently \"tsx container/index.ts\" \"wrangler dev --var \"ENVIRONMENT:dev\"\"", + "dev": "concurrently \"tsx container/sandbox.container.app.ts\" \"wrangler dev --var \"ENVIRONMENT:dev\"\"", "build:container": "docker build --platform linux/amd64 --tag sandbox-container:$(git rev-parse --short HEAD) -f Dockerfile ../../ && wrangler containers push sandbox-container:$(git rev-parse --short HEAD)", "start": "wrangler dev", - "start:container": "tsx container/index.ts", + "start:container": "tsx container/sandbox.container.app.ts", "postinstall": "mkdir -p workdir", "test": "vitest", "types": "wrangler types --include-env=false", "eval:dev": "start-server-and-test --expect 404 eval:server http://localhost:8976 'vitest --testTimeout=60000 --config vitest.config.evals.ts'", - "eval:server": "concurrently \"tsx container/index.ts\" \"wrangler dev --var ENVIRONMENT:test --var DEV_DISABLE_OAUTH:true --var DEV_CLOUDFLARE_EMAIL:mcp-server-eval-account@workers-for-platforms-dev.cfdata.org\"", + "eval:server": "concurrently \"tsx container/sandbox.container.app.ts\" \"wrangler dev --var ENVIRONMENT:test --var DEV_DISABLE_OAUTH:true --var DEV_CLOUDFLARE_EMAIL:mcp-server-eval-account@workers-for-platforms-dev.cfdata.org\"", "eval:ci": "start-server-and-test --expect 404 eval:server http://localhost:8976 'vitest run --testTimeout=60000 --config vitest.config.evals.ts'" }, "dependencies": { diff --git a/apps/sandbox-container/server/containerManager.ts b/apps/sandbox-container/server/containerManager.ts index b8694bb0..676d1cfa 100644 --- a/apps/sandbox-container/server/containerManager.ts +++ b/apps/sandbox-container/server/containerManager.ts @@ -5,7 +5,7 @@ import { MetricsTracker } from '@repo/mcp-observability' import { ContainerEvent } from './metrics' -import type { Env } from './context' +import type { Env } from './sandbox.server.context' const env = getEnv() export class ContainerManager extends DurableObject { diff --git a/apps/sandbox-container/server/containerMcp.ts b/apps/sandbox-container/server/containerMcp.ts index e701d420..d8663614 100644 --- a/apps/sandbox-container/server/containerMcp.ts +++ b/apps/sandbox-container/server/containerMcp.ts @@ -6,8 +6,8 @@ import { ExecParams, FilePathParam, FileWrite } from '../shared/schema' import { BASE_INSTRUCTIONS } from './prompts' import { stripProtocolFromFilePath } from './utils' -import type { Env } from './context' -import type { Props, UserContainer } from '.' +import type { Props, UserContainer } from './sandbox.server.app' +import type { Env } from './sandbox.server.context' export class ContainerMcpAgent extends McpAgent { _server: CloudflareMCPServer | undefined @@ -50,7 +50,7 @@ export class ContainerMcpAgent extends McpAgent { this.server.tool( 'container_initialize', - `Start or restart the container. + `Start or restart the container. Use this tool to initialize a container before running any python or node.js code that the user requests ro run.`, // @ts-ignore async () => { @@ -77,8 +77,8 @@ export class ContainerMcpAgent extends McpAgent { ) this.server.tool( 'container_exec', - `Run a command in a container and return the results from stdout. - If necessary, set a timeout. To debug, stream back standard error. + `Run a command in a container and return the results from stdout. + If necessary, set a timeout. To debug, stream back standard error. If you're using python, ALWAYS use python3 alongside pip3`, { args: ExecParams }, async ({ args }) => { diff --git a/apps/sandbox-container/server/index.ts b/apps/sandbox-container/server/sandbox.server.app.ts similarity index 97% rename from apps/sandbox-container/server/index.ts rename to apps/sandbox-container/server/sandbox.server.app.ts index 1a2a37d7..deb4ed83 100644 --- a/apps/sandbox-container/server/index.ts +++ b/apps/sandbox-container/server/sandbox.server.app.ts @@ -15,7 +15,7 @@ import { ContainerMcpAgent } from './containerMcp' import { UserContainer } from './userContainer' import type { AuthProps } from '@repo/mcp-common/src/cloudflare-oauth-handler' -import type { Env } from './context' +import type { Env } from './sandbox.server.context' export { ContainerManager, ContainerMcpAgent, UserContainer } diff --git a/apps/sandbox-container/server/context.ts b/apps/sandbox-container/server/sandbox.server.context.ts similarity index 95% rename from apps/sandbox-container/server/context.ts rename to apps/sandbox-container/server/sandbox.server.context.ts index 6bf3323b..4d154354 100644 --- a/apps/sandbox-container/server/context.ts +++ b/apps/sandbox-container/server/sandbox.server.context.ts @@ -1,4 +1,4 @@ -import type { ContainerManager, ContainerMcpAgent, UserContainer } from './index' +import type { ContainerManager, ContainerMcpAgent, UserContainer } from './sandbox.server.app' export interface Env { OAUTH_KV: KVNamespace diff --git a/apps/sandbox-container/server/userContainer.ts b/apps/sandbox-container/server/userContainer.ts index 03b61b43..03e7e087 100644 --- a/apps/sandbox-container/server/userContainer.ts +++ b/apps/sandbox-container/server/userContainer.ts @@ -6,7 +6,7 @@ import { getContainerManager } from './containerManager' import { fileToBase64 } from './utils' import type { ExecParams, FileList, FileWrite } from '../shared/schema' -import type { Env } from './context' +import type { Env } from './sandbox.server.context' export class UserContainer extends DurableObject { constructor( diff --git a/apps/sandbox-container/wrangler.jsonc b/apps/sandbox-container/wrangler.jsonc index 484b6d7b..494f223d 100644 --- a/apps/sandbox-container/wrangler.jsonc +++ b/apps/sandbox-container/wrangler.jsonc @@ -1,7 +1,7 @@ { "$schema": "node_modules/wrangler/config-schema.json", "name": "sandbox-container-dev", - "main": "server/index.ts", + "main": "server/sandbox.server.app.ts", "compatibility_date": "2025-04-03", "compatibility_flags": ["nodejs_compat"], "containers": [ diff --git a/apps/workers-bindings/evals/hyperdrive.eval.ts b/apps/workers-bindings/evals/hyperdrive.eval.ts index 310012f7..c12929b6 100644 --- a/apps/workers-bindings/evals/hyperdrive.eval.ts +++ b/apps/workers-bindings/evals/hyperdrive.eval.ts @@ -4,7 +4,7 @@ import { describeEval } from 'vitest-evals' import { runTask } from '@repo/eval-tools/src/runTask' import { checkFactuality } from '@repo/eval-tools/src/scorers' import { eachModel } from '@repo/eval-tools/src/test-models' -import { HYPERDRIVE_TOOLS } from '@repo/mcp-common/src/tools/hyperdrive' +import { HYPERDRIVE_TOOLS } from '@repo/mcp-common/src/tools/hyperdrive.tools' import { initializeClient } from './utils' // Assuming utils.ts will exist here diff --git a/apps/workers-bindings/evals/kv_namespaces.eval.ts b/apps/workers-bindings/evals/kv_namespaces.eval.ts index bd9ecfd7..ebe76542 100644 --- a/apps/workers-bindings/evals/kv_namespaces.eval.ts +++ b/apps/workers-bindings/evals/kv_namespaces.eval.ts @@ -4,7 +4,7 @@ import { describeEval } from 'vitest-evals' import { runTask } from '@repo/eval-tools/src/runTask' import { checkFactuality } from '@repo/eval-tools/src/scorers' import { eachModel } from '@repo/eval-tools/src/test-models' -import { KV_NAMESPACE_TOOLS } from '@repo/mcp-common/src/tools/kv_namespace' +import { KV_NAMESPACE_TOOLS } from '@repo/mcp-common/src/tools/kv_namespace.tools' import { initializeClient } from './utils' // Assuming utils.ts will exist here diff --git a/apps/workers-bindings/src/index.ts b/apps/workers-bindings/src/bindings.app.ts similarity index 94% rename from apps/workers-bindings/src/index.ts rename to apps/workers-bindings/src/bindings.app.ts index 66cb15a8..1a3e4952 100644 --- a/apps/workers-bindings/src/index.ts +++ b/apps/workers-bindings/src/bindings.app.ts @@ -6,20 +6,20 @@ import { handleTokenExchangeCallback, } from '@repo/mcp-common/src/cloudflare-oauth-handler' import { handleDevMode } from '@repo/mcp-common/src/dev-mode' -import { getUserDetails, UserDetails } from '@repo/mcp-common/src/durable-objects/user_details' +import { getUserDetails, UserDetails } from '@repo/mcp-common/src/durable-objects/user_details.do' import { getEnv } from '@repo/mcp-common/src/env' import { RequiredScopes } from '@repo/mcp-common/src/scopes' import { CloudflareMCPServer } from '@repo/mcp-common/src/server' -import { registerAccountTools } from '@repo/mcp-common/src/tools/account' -import { registerD1Tools } from '@repo/mcp-common/src/tools/d1' -import { registerHyperdriveTools } from '@repo/mcp-common/src/tools/hyperdrive' -import { registerKVTools } from '@repo/mcp-common/src/tools/kv_namespace' -import { registerR2BucketTools } from '@repo/mcp-common/src/tools/r2_bucket' -import { registerWorkersTools } from '@repo/mcp-common/src/tools/worker' +import { registerAccountTools } from '@repo/mcp-common/src/tools/account.tools' +import { registerD1Tools } from '@repo/mcp-common/src/tools/d1.tools' +import { registerHyperdriveTools } from '@repo/mcp-common/src/tools/hyperdrive.tools' +import { registerKVTools } from '@repo/mcp-common/src/tools/kv_namespace.tools' +import { registerR2BucketTools } from '@repo/mcp-common/src/tools/r2_bucket.tools' +import { registerWorkersTools } from '@repo/mcp-common/src/tools/worker.tools' import { MetricsTracker } from '@repo/mcp-observability' import type { AuthProps } from '@repo/mcp-common/src/cloudflare-oauth-handler' -import type { Env } from './context' +import type { Env } from './bindings.context' export { UserDetails } diff --git a/apps/workers-bindings/src/context.ts b/apps/workers-bindings/src/bindings.context.ts similarity index 87% rename from apps/workers-bindings/src/context.ts rename to apps/workers-bindings/src/bindings.context.ts index c0368328..b22e3223 100644 --- a/apps/workers-bindings/src/context.ts +++ b/apps/workers-bindings/src/bindings.context.ts @@ -1,5 +1,5 @@ -import type { UserDetails } from '@repo/mcp-common/src/durable-objects/user_details' -import type { WorkersBindingsMCP } from './index' +import type { UserDetails } from '@repo/mcp-common/src/durable-objects/user_details.do' +import type { WorkersBindingsMCP } from './bindings.app' export interface Env { OAUTH_KV: KVNamespace diff --git a/apps/workers-bindings/vitest.config.ts b/apps/workers-bindings/vitest.config.ts index c201c144..9efac6e2 100644 --- a/apps/workers-bindings/vitest.config.ts +++ b/apps/workers-bindings/vitest.config.ts @@ -1,6 +1,6 @@ import { defineWorkersConfig } from '@cloudflare/vitest-pool-workers/config' -import type { Env } from './src/context' +import type { Env } from './src/bindings.context' export interface TestEnv extends Env { CLOUDFLARE_MOCK_ACCOUNT_ID: string diff --git a/apps/workers-bindings/wrangler.jsonc b/apps/workers-bindings/wrangler.jsonc index a892e6a1..f54af12a 100644 --- a/apps/workers-bindings/wrangler.jsonc +++ b/apps/workers-bindings/wrangler.jsonc @@ -5,7 +5,7 @@ { "$schema": "node_modules/wrangler/config-schema.json", "name": "workers-bindings-dev", - "main": "src/index.ts", + "main": "src/bindings.app.ts", "compatibility_date": "2025-03-10", "compatibility_flags": ["nodejs_compat"], "migrations": [ diff --git a/apps/workers-builds/src/workers-builds.app.ts b/apps/workers-builds/src/workers-builds.app.ts index 858ed396..268e9fa5 100644 --- a/apps/workers-builds/src/workers-builds.app.ts +++ b/apps/workers-builds/src/workers-builds.app.ts @@ -6,20 +6,20 @@ import { handleTokenExchangeCallback, } from '@repo/mcp-common/src/cloudflare-oauth-handler' import { handleDevMode } from '@repo/mcp-common/src/dev-mode' -import { getUserDetails, UserDetails } from '@repo/mcp-common/src/durable-objects/user_details' +import { getUserDetails, UserDetails } from '@repo/mcp-common/src/durable-objects/user_details.do' import { getEnv } from '@repo/mcp-common/src/env' import { fmt } from '@repo/mcp-common/src/format' import { RequiredScopes } from '@repo/mcp-common/src/scopes' import { initSentryWithUser } from '@repo/mcp-common/src/sentry' import { CloudflareMCPServer } from '@repo/mcp-common/src/server' -import { registerAccountTools } from '@repo/mcp-common/src/tools/account' -import { registerWorkersTools } from '@repo/mcp-common/src/tools/worker' +import { registerAccountTools } from '@repo/mcp-common/src/tools/account.tools' +import { registerWorkersTools } from '@repo/mcp-common/src/tools/worker.tools' import { MetricsTracker } from '../../../packages/mcp-observability/src' import { registerBuildsTools } from './tools/workers-builds.tools' import type { AuthProps } from '@repo/mcp-common/src/cloudflare-oauth-handler' -import type { Env } from './context' +import type { Env } from './workers-builds.context' export { UserDetails } diff --git a/apps/workers-builds/src/context.ts b/apps/workers-builds/src/workers-builds.context.ts similarity index 96% rename from apps/workers-builds/src/context.ts rename to apps/workers-builds/src/workers-builds.context.ts index 0cec79af..1233bae0 100644 --- a/apps/workers-builds/src/context.ts +++ b/apps/workers-builds/src/workers-builds.context.ts @@ -1,4 +1,4 @@ -import type { UserDetails } from '@repo/mcp-common/src/durable-objects/user_details' +import type { UserDetails } from '@repo/mcp-common/src/durable-objects/user_details.do' import type { BuildsMCP } from './workers-builds.app' export interface Env { diff --git a/apps/workers-builds/vitest.config.ts b/apps/workers-builds/vitest.config.ts index c201c144..67fa736c 100644 --- a/apps/workers-builds/vitest.config.ts +++ b/apps/workers-builds/vitest.config.ts @@ -1,6 +1,6 @@ import { defineWorkersConfig } from '@cloudflare/vitest-pool-workers/config' -import type { Env } from './src/context' +import type { Env } from './src/workers-builds.context' export interface TestEnv extends Env { CLOUDFLARE_MOCK_ACCOUNT_ID: string diff --git a/apps/workers-observability/src/tools/observability.ts b/apps/workers-observability/src/tools/workers-observability.tools.ts similarity index 97% rename from apps/workers-observability/src/tools/observability.ts rename to apps/workers-observability/src/tools/workers-observability.tools.ts index a50f2fef..f6c81d42 100644 --- a/apps/workers-observability/src/tools/observability.ts +++ b/apps/workers-observability/src/tools/workers-observability.tools.ts @@ -4,14 +4,14 @@ import { handleWorkerLogsKeys, handleWorkerLogsValues, queryWorkersObservability, -} from '@repo/mcp-common/src/api/workers-observability' +} from '@repo/mcp-common/src/api/workers-observability.api' import { zKeysRequest, zQueryRunRequest, zValuesRequest, -} from '@repo/mcp-common/src/types/workers-logs-schemas' +} from '@repo/mcp-common/src/types/workers-logs.types' -import type { ObservabilityMCP } from '../index' +import type { ObservabilityMCP } from '../workers-observability.app' /** * Registers the logs analysis tool with the MCP server diff --git a/apps/workers-observability/src/index.ts b/apps/workers-observability/src/workers-observability.app.ts similarity index 95% rename from apps/workers-observability/src/index.ts rename to apps/workers-observability/src/workers-observability.app.ts index 9b4ee2e1..d9af95bb 100644 --- a/apps/workers-observability/src/index.ts +++ b/apps/workers-observability/src/workers-observability.app.ts @@ -6,19 +6,19 @@ import { handleTokenExchangeCallback, } from '@repo/mcp-common/src/cloudflare-oauth-handler' import { handleDevMode } from '@repo/mcp-common/src/dev-mode' -import { getUserDetails, UserDetails } from '@repo/mcp-common/src/durable-objects/user_details' +import { getUserDetails, UserDetails } from '@repo/mcp-common/src/durable-objects/user_details.do' import { getEnv } from '@repo/mcp-common/src/env' import { RequiredScopes } from '@repo/mcp-common/src/scopes' import { initSentryWithUser } from '@repo/mcp-common/src/sentry' import { CloudflareMCPServer } from '@repo/mcp-common/src/server' -import { registerAccountTools } from '@repo/mcp-common/src/tools/account' -import { registerWorkersTools } from '@repo/mcp-common/src/tools/worker' +import { registerAccountTools } from '@repo/mcp-common/src/tools/account.tools' +import { registerWorkersTools } from '@repo/mcp-common/src/tools/worker.tools' import { MetricsTracker } from '../../../packages/mcp-observability/src' -import { registerObservabilityTools } from './tools/observability' +import { registerObservabilityTools } from './tools/workers-observability.tools' import type { AuthProps } from '@repo/mcp-common/src/cloudflare-oauth-handler' -import type { Env } from './context' +import type { Env } from './workers-observability.context' export { UserDetails } diff --git a/apps/workers-observability/src/context.ts b/apps/workers-observability/src/workers-observability.context.ts similarity index 87% rename from apps/workers-observability/src/context.ts rename to apps/workers-observability/src/workers-observability.context.ts index 52c15885..3f70d82f 100644 --- a/apps/workers-observability/src/context.ts +++ b/apps/workers-observability/src/workers-observability.context.ts @@ -1,5 +1,5 @@ -import type { UserDetails } from '@repo/mcp-common/src/durable-objects/user_details' -import type { ObservabilityMCP } from './index' +import type { UserDetails } from '@repo/mcp-common/src/durable-objects/user_details.do' +import type { ObservabilityMCP } from './workers-observability.app' export interface Env { OAUTH_KV: KVNamespace diff --git a/apps/workers-observability/vitest.config.ts b/apps/workers-observability/vitest.config.ts index c201c144..8026ccbc 100644 --- a/apps/workers-observability/vitest.config.ts +++ b/apps/workers-observability/vitest.config.ts @@ -1,6 +1,6 @@ import { defineWorkersConfig } from '@cloudflare/vitest-pool-workers/config' -import type { Env } from './src/context' +import type { Env } from './src/workers-observability.context' export interface TestEnv extends Env { CLOUDFLARE_MOCK_ACCOUNT_ID: string diff --git a/apps/workers-observability/wrangler.jsonc b/apps/workers-observability/wrangler.jsonc index 078f34ce..9c3e47e5 100644 --- a/apps/workers-observability/wrangler.jsonc +++ b/apps/workers-observability/wrangler.jsonc @@ -4,7 +4,7 @@ */ { "$schema": "node_modules/wrangler/config-schema.json", - "main": "src/index.ts", + "main": "src/wobs.app.ts", "compatibility_date": "2025-03-10", "compatibility_flags": ["nodejs_compat"], "name": "mcp-cloudflare-workers-observability-dev", diff --git a/implementation-guides/tools.md b/implementation-guides/tools.md index b47a22b3..e2a841db 100644 --- a/implementation-guides/tools.md +++ b/implementation-guides/tools.md @@ -112,7 +112,7 @@ export function registerMyServiceTools(agent: CloudflareMcpAgent) { - **Perform Action:** Interact with the relevant service (Cloudflare SDK, database, vector store, etc.). - **Format Response:** Return an object with a `content` property, which is an array of `ContentBlock` objects (usually `type: 'text'` or `type: 'resource'`). - For simple success/failure or structured data, `JSON.stringify` the result in a text block. - - For richer data like search results, use `EmbeddedResource` (`type: 'resource'`) as seen in `docs.ts`. + - For richer data like search results, use `EmbeddedResource` (`type: 'resource'`) as seen in `docs-autorag.tools.ts`. - Return clear error messages in the `text` property of a content block upon failure. ## Best Practices diff --git a/implementation-guides/type-validators.md b/implementation-guides/type-validators.md index ceaddc32..66069e63 100644 --- a/implementation-guides/type-validators.md +++ b/implementation-guides/type-validators.md @@ -22,7 +22,7 @@ When a tool parameter corresponds directly to a parameter in the Cloudflare Node - **Detect SDK Changes:** If the underlying SDK type changes (e.g., type alias renamed, property added/removed/renamed, type changed from `string` to `string | null`), your Zod schema definition will likely cause a TypeScript error during compilation. This immediately flags the need to update the validator and potentially the tool logic, preventing runtime errors caused by SDK misalignment. - **Accuracy:** Ensures your validator accurately reflects the type expected by the SDK function you intend to call. -**Example (`hyperdrive.ts`):** +**Example (`hyperdrive.types.ts`):** ```typescript import { z } from 'zod' @@ -54,7 +54,7 @@ Define a separate, named Zod schema for **each individual field** that a tool mi - **Reusability:** Individual field schemas (like `HyperdriveConfigIdSchema`, `HyperdriveConfigNameSchema`) can be reused across different tools (e.g., `hyperdrive_create`, `hyperdrive_update`, `hyperdrive_get`). - **Modularity:** Easier to manage, update, and test individual validation rules. -**Example (`hyperdrive.ts` Structure):** +**Example (`hyperdrive.types.ts` Structure):** ```typescript // --- Base Field Schemas --- @@ -102,7 +102,7 @@ Add a clear, concise `.describe('...')` call to **every** Zod schema you define. - **LLM Context:** The description is often extracted and provided to the LLM as part of the tool's definition, helping it understand the purpose and constraints of each parameter. - **Developer Documentation:** Serves as inline documentation for developers working with the code. -**Example (`hyperdrive.ts`):** +**Example (`hyperdrive.types.ts`):** ```typescript /** Zod schema for the list page number. */ @@ -133,7 +133,7 @@ Use a consistent naming convention for your validator schemas. A recommended pat ## Location -Place validators related to a specific service or concept in dedicated files within the `packages/mcp-common/src/types/` directory (e.g., `hyperdrive.ts`, `kv.ts`). +Place validators related to a specific service or concept in dedicated files within the `packages/mcp-common/src/types/` directory (e.g., `hyperdrive.types.ts`, `kv.ts`). ## Summary diff --git a/packages/mcp-common/src/api/account.ts b/packages/mcp-common/src/api/account.api.ts similarity index 95% rename from packages/mcp-common/src/api/account.ts rename to packages/mcp-common/src/api/account.api.ts index 50bbcda2..efb389a5 100644 --- a/packages/mcp-common/src/api/account.ts +++ b/packages/mcp-common/src/api/account.api.ts @@ -1,7 +1,7 @@ import type { Cloudflare } from 'cloudflare' import type { Account } from 'cloudflare/resources/accounts/accounts.mjs' -import type { CloudflareMcpAgent } from '../types/cloudflare-mcp-agent' -import type { ToolHandler } from '../types/tools' +import type { CloudflareMcpAgent } from '../types/cloudflare-mcp-agent.types' +import type { ToolHandler } from '../types/tools.types' export async function handleAccountsList({ client }: { client: Cloudflare }): Promise { // Currently limited to 50 accounts diff --git a/packages/mcp-common/src/api/cf1-integration.ts b/packages/mcp-common/src/api/cf1-integration.api.ts similarity index 98% rename from packages/mcp-common/src/api/cf1-integration.ts rename to packages/mcp-common/src/api/cf1-integration.api.ts index 55a4b660..7c35c190 100644 --- a/packages/mcp-common/src/api/cf1-integration.ts +++ b/packages/mcp-common/src/api/cf1-integration.api.ts @@ -5,7 +5,7 @@ import { AssetsResponse, IntegrationResponse, IntegrationsResponse, -} from '../schemas/cf1-integrations' +} from '../types/cf1-integrations.types' import { V4Schema } from '../v4-api' import type { z } from 'zod' @@ -14,7 +14,7 @@ import type { zReturnedAssetsResult, zReturnedIntegrationResult, zReturnedIntegrationsResult, -} from '../schemas/cf1-integrations' +} from '../types/cf1-integrations.types' interface BaseParams { accountId: string diff --git a/packages/mcp-common/src/api/workers-builds.api.ts b/packages/mcp-common/src/api/workers-builds.api.ts index 9d108d46..12fa650a 100644 --- a/packages/mcp-common/src/api/workers-builds.api.ts +++ b/packages/mcp-common/src/api/workers-builds.api.ts @@ -4,10 +4,10 @@ import { GetBuildResult, ListBuildsByScriptResult, ListBuildsByScriptResultInfo, -} from '../types/workers-builds.schema' +} from '../types/workers-builds.types' import { V4Schema } from '../v4-api' -import type { LogLine } from '../types/workers-builds.schema' +import type { LogLine } from '../types/workers-builds.types' export async function listBuilds({ accountId, diff --git a/packages/mcp-common/src/api/workers-observability.ts b/packages/mcp-common/src/api/workers-observability.api.ts similarity index 96% rename from packages/mcp-common/src/api/workers-observability.ts rename to packages/mcp-common/src/api/workers-observability.api.ts index 6b41e105..2c155a89 100644 --- a/packages/mcp-common/src/api/workers-observability.ts +++ b/packages/mcp-common/src/api/workers-observability.api.ts @@ -5,11 +5,11 @@ import { zKeysResponse, zReturnedQueryRunResult, zValuesResponse, -} from '../types/workers-logs-schemas' +} from '../types/workers-logs.types' import { V4Schema } from '../v4-api' import type { z } from 'zod' -import type { zKeysRequest, zQueryRunRequest, zValuesRequest } from '../types/workers-logs-schemas' +import type { zKeysRequest, zQueryRunRequest, zValuesRequest } from '../types/workers-logs.types' type QueryRunRequest = z.infer diff --git a/packages/mcp-common/src/api/workers.ts b/packages/mcp-common/src/api/workers.api.ts similarity index 96% rename from packages/mcp-common/src/api/workers.ts rename to packages/mcp-common/src/api/workers.api.ts index 1e116822..a2350235 100644 --- a/packages/mcp-common/src/api/workers.ts +++ b/packages/mcp-common/src/api/workers.api.ts @@ -1,5 +1,5 @@ import { fetchCloudflareApi } from '../cloudflare-api' -import { WorkersService } from '../types/workers' +import { WorkersService } from '../types/workers.types' import { V4Schema } from '../v4-api' import type { Cloudflare } from 'cloudflare' diff --git a/packages/mcp-common/src/api/zone.ts b/packages/mcp-common/src/api/zone.api.ts similarity index 100% rename from packages/mcp-common/src/api/zone.ts rename to packages/mcp-common/src/api/zone.api.ts diff --git a/packages/mcp-common/src/durable-objects/user_details.ts b/packages/mcp-common/src/durable-objects/user_details.do.ts similarity index 100% rename from packages/mcp-common/src/durable-objects/user_details.ts rename to packages/mcp-common/src/durable-objects/user_details.do.ts diff --git a/packages/mcp-common/src/utils/poll.ts b/packages/mcp-common/src/poll.ts similarity index 100% rename from packages/mcp-common/src/utils/poll.ts rename to packages/mcp-common/src/poll.ts diff --git a/packages/mcp-common/src/tools/account.ts b/packages/mcp-common/src/tools/account.tools.ts similarity index 96% rename from packages/mcp-common/src/tools/account.ts rename to packages/mcp-common/src/tools/account.tools.ts index 24c7f925..7bfd6637 100644 --- a/packages/mcp-common/src/tools/account.ts +++ b/packages/mcp-common/src/tools/account.tools.ts @@ -1,9 +1,9 @@ import { z } from 'zod' -import { handleAccountsList } from '../api/account' +import { handleAccountsList } from '../api/account.api' import { getCloudflareClient } from '../cloudflare-api' -import type { CloudflareMcpAgent } from '../types/cloudflare-mcp-agent' +import type { CloudflareMcpAgent } from '../types/cloudflare-mcp-agent.types' export function registerAccountTools(agent: CloudflareMcpAgent) { // Tool to list all accounts diff --git a/packages/mcp-common/src/tools/d1.ts b/packages/mcp-common/src/tools/d1.tools.ts similarity index 98% rename from packages/mcp-common/src/tools/d1.ts rename to packages/mcp-common/src/tools/d1.tools.ts index 0e8878fd..6a8a65e5 100644 --- a/packages/mcp-common/src/tools/d1.ts +++ b/packages/mcp-common/src/tools/d1.tools.ts @@ -2,14 +2,14 @@ import { z } from 'zod' import { getCloudflareClient } from '../cloudflare-api' import { MISSING_ACCOUNT_ID_RESPONSE } from '../constants' -import { type CloudflareMcpAgent } from '../types/cloudflare-mcp-agent' +import { type CloudflareMcpAgent } from '../types/cloudflare-mcp-agent.types' import { D1DatabaseNameParam, D1DatabasePrimaryLocationHintParam, D1DatabaseQueryParamsParam, D1DatabaseQuerySqlParam, -} from '../types/d1' -import { PaginationPageParam, PaginationPerPageParam } from '../types/shared' +} from '../types/d1.types' +import { PaginationPageParam, PaginationPerPageParam } from '../types/shared.types' export function registerD1Tools(agent: CloudflareMcpAgent) { agent.server.tool( diff --git a/packages/mcp-common/src/tools/hyperdrive.ts b/packages/mcp-common/src/tools/hyperdrive.tools.ts similarity index 99% rename from packages/mcp-common/src/tools/hyperdrive.ts rename to packages/mcp-common/src/tools/hyperdrive.tools.ts index 14d3baa8..1ac9699b 100644 --- a/packages/mcp-common/src/tools/hyperdrive.ts +++ b/packages/mcp-common/src/tools/hyperdrive.tools.ts @@ -1,6 +1,6 @@ import { getCloudflareClient } from '../cloudflare-api' import { MISSING_ACCOUNT_ID_RESPONSE } from '../constants' -import { type CloudflareMcpAgent } from '../types/cloudflare-mcp-agent' +import { type CloudflareMcpAgent } from '../types/cloudflare-mcp-agent.types' import { HyperdriveCachingDisabledSchema, HyperdriveCachingMaxAgeSchema, @@ -17,7 +17,7 @@ import { HyperdriveOriginPortSchema, HyperdriveOriginSchemeSchema, HyperdriveOriginUserSchema, -} from '../types/hyperdrive' +} from '../types/hyperdrive.types' export const HYPERDRIVE_TOOLS = { hyperdrive_configs_list: 'hyperdrive_configs_list', diff --git a/packages/mcp-common/src/tools/kv_namespace.ts b/packages/mcp-common/src/tools/kv_namespace.tools.ts similarity index 98% rename from packages/mcp-common/src/tools/kv_namespace.ts rename to packages/mcp-common/src/tools/kv_namespace.tools.ts index 39285d19..50c3774b 100644 --- a/packages/mcp-common/src/tools/kv_namespace.ts +++ b/packages/mcp-common/src/tools/kv_namespace.tools.ts @@ -1,11 +1,11 @@ import { getCloudflareClient } from '../cloudflare-api' import { MISSING_ACCOUNT_ID_RESPONSE } from '../constants' -import { type CloudflareMcpAgent } from '../types/cloudflare-mcp-agent' +import { type CloudflareMcpAgent } from '../types/cloudflare-mcp-agent.types' import { KvNamespaceIdSchema, KvNamespacesListParamsSchema, KvNamespaceTitleSchema, -} from '../types/kv_namespace' +} from '../types/kv_namespace.types' export const KV_NAMESPACE_TOOLS = { kv_namespaces_list: 'kv_namespaces_list', @@ -22,7 +22,7 @@ export function registerKVTools(agent: CloudflareMcpAgent) { agent.server.tool( KV_NAMESPACE_TOOLS.kv_namespaces_list, ` - List all of the kv namespaces in your Cloudflare account. + List all of the kv namespaces in your Cloudflare account. Use this tool when you need to list all of the kv namespaces in your Cloudflare account. Returns a list of kv namespaces with the following properties: - id: The id of the kv namespace. diff --git a/packages/mcp-common/src/tools/r2_bucket.ts b/packages/mcp-common/src/tools/r2_bucket.tools.ts similarity index 99% rename from packages/mcp-common/src/tools/r2_bucket.ts rename to packages/mcp-common/src/tools/r2_bucket.tools.ts index 84579f68..eeb0110c 100644 --- a/packages/mcp-common/src/tools/r2_bucket.ts +++ b/packages/mcp-common/src/tools/r2_bucket.tools.ts @@ -1,14 +1,14 @@ import { getCloudflareClient } from '../cloudflare-api' import { MISSING_ACCOUNT_ID_RESPONSE } from '../constants' -import { type CloudflareMcpAgent } from '../types/cloudflare-mcp-agent' +import { type CloudflareMcpAgent } from '../types/cloudflare-mcp-agent.types' import { BucketListCursorParam, BucketListDirectionParam, BucketListNameContainsParam, BucketListStartAfterParam, BucketNameSchema, -} from '../types/r2_bucket' -import { PaginationPerPageParam } from '../types/shared' +} from '../types/r2_bucket.types' +import { PaginationPerPageParam } from '../types/shared.types' export function registerR2BucketTools(agent: CloudflareMcpAgent) { agent.server.tool( diff --git a/packages/mcp-common/src/tools/worker.ts b/packages/mcp-common/src/tools/worker.tools.ts similarity index 99% rename from packages/mcp-common/src/tools/worker.ts rename to packages/mcp-common/src/tools/worker.tools.ts index cca337cf..e61d8f93 100644 --- a/packages/mcp-common/src/tools/worker.ts +++ b/packages/mcp-common/src/tools/worker.tools.ts @@ -4,11 +4,11 @@ import { handleGetWorkersService, handleWorkerScriptDownload, handleWorkersList, -} from '../api/workers' +} from '../api/workers.api' import { getCloudflareClient } from '../cloudflare-api' import { fmt } from '../format' -import type { CloudflareMcpAgent } from '../types/cloudflare-mcp-agent' +import type { CloudflareMcpAgent } from '../types/cloudflare-mcp-agent.types' /** * Registers the workers tools with the MCP server diff --git a/packages/mcp-common/src/tools/zone.ts b/packages/mcp-common/src/tools/zone.tools.ts similarity index 97% rename from packages/mcp-common/src/tools/zone.ts rename to packages/mcp-common/src/tools/zone.tools.ts index d4d11231..66f55936 100644 --- a/packages/mcp-common/src/tools/zone.ts +++ b/packages/mcp-common/src/tools/zone.tools.ts @@ -1,8 +1,8 @@ import { z } from 'zod' -import { handleZonesList } from '../api/zone' +import { handleZonesList } from '../api/zone.api' import { getCloudflareClient } from '../cloudflare-api' -import { type CloudflareMcpAgent } from '../types/cloudflare-mcp-agent' +import { type CloudflareMcpAgent } from '../types/cloudflare-mcp-agent.types' export function registerZoneTools(agent: CloudflareMcpAgent) { // Tool to list all zones under an account diff --git a/packages/mcp-common/src/schemas/cf1-integrations.ts b/packages/mcp-common/src/types/cf1-integrations.types.ts similarity index 100% rename from packages/mcp-common/src/schemas/cf1-integrations.ts rename to packages/mcp-common/src/types/cf1-integrations.types.ts diff --git a/packages/mcp-common/src/types/cloudflare-mcp-agent.ts b/packages/mcp-common/src/types/cloudflare-mcp-agent.types.ts similarity index 100% rename from packages/mcp-common/src/types/cloudflare-mcp-agent.ts rename to packages/mcp-common/src/types/cloudflare-mcp-agent.types.ts diff --git a/packages/mcp-common/src/types/d1.ts b/packages/mcp-common/src/types/d1.types.ts similarity index 100% rename from packages/mcp-common/src/types/d1.ts rename to packages/mcp-common/src/types/d1.types.ts diff --git a/packages/mcp-common/src/types/hyperdrive.ts b/packages/mcp-common/src/types/hyperdrive.types.ts similarity index 100% rename from packages/mcp-common/src/types/hyperdrive.ts rename to packages/mcp-common/src/types/hyperdrive.types.ts diff --git a/packages/mcp-common/src/types/kv_namespace.ts b/packages/mcp-common/src/types/kv_namespace.types.ts similarity index 100% rename from packages/mcp-common/src/types/kv_namespace.ts rename to packages/mcp-common/src/types/kv_namespace.types.ts diff --git a/packages/mcp-common/src/types/r2_bucket.ts b/packages/mcp-common/src/types/r2_bucket.types.ts similarity index 100% rename from packages/mcp-common/src/types/r2_bucket.ts rename to packages/mcp-common/src/types/r2_bucket.types.ts diff --git a/packages/mcp-common/src/types/shared.ts b/packages/mcp-common/src/types/shared.types.ts similarity index 100% rename from packages/mcp-common/src/types/shared.ts rename to packages/mcp-common/src/types/shared.types.ts diff --git a/packages/mcp-common/src/types/tools.ts b/packages/mcp-common/src/types/tools.types.ts similarity index 100% rename from packages/mcp-common/src/types/tools.ts rename to packages/mcp-common/src/types/tools.types.ts diff --git a/packages/mcp-common/src/types/workers-builds.schema.ts b/packages/mcp-common/src/types/workers-builds.types.ts similarity index 100% rename from packages/mcp-common/src/types/workers-builds.schema.ts rename to packages/mcp-common/src/types/workers-builds.types.ts diff --git a/packages/mcp-common/src/types/workers-logs-schemas.ts b/packages/mcp-common/src/types/workers-logs.types.ts similarity index 100% rename from packages/mcp-common/src/types/workers-logs-schemas.ts rename to packages/mcp-common/src/types/workers-logs.types.ts diff --git a/packages/mcp-common/src/types/workers.ts b/packages/mcp-common/src/types/workers.types.ts similarity index 100% rename from packages/mcp-common/src/types/workers.ts rename to packages/mcp-common/src/types/workers.types.ts