ce_create_project
Creates an IBM Cloud Code Engine project. Specify a name, resource group, and region to set up a new project.
Instructions
Create a Code Engine project
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| resource_group_id | No | ||
| region | No |
Implementation Reference
- src/tools/code-engine/index.ts:21-25 (registration)Registration of the 'ce_create_project' tool via server.tool(), defining its schema and handler inline.
server.tool("ce_create_project", "Create a Code Engine project", { name: z.string(), resource_group_id: z.string().optional(), region: z.string().optional(), }, async (p) => safeTool(async () => { w(); return client.post(`${base(p.region||r)}/projects`, {name:p.name,resource_group_id:p.resource_group_id}); })); - src/tools/code-engine/index.ts:23-25 (handler)Handler function that calls assertWriteAllowed (write guard) then posts to the Code Engine projects API endpoint with name and optional resource_group_id.
}, async (p) => safeTool(async () => { w(); return client.post(`${base(p.region||r)}/projects`, {name:p.name,resource_group_id:p.resource_group_id}); })); - src/tools/code-engine/index.ts:22-22 (schema)Zod schema defining input parameters: name (required string), resource_group_id (optional string), region (optional string).
name: z.string(), resource_group_id: z.string().optional(), region: z.string().optional(), - src/lib/utils.ts:70-77 (helper)The safeTool wrapper that catches errors and formats success/error MCP responses used by the handler.
export async function safeTool<T>(fn: () => Promise<T>): Promise<ReturnType<typeof successContent> | ReturnType<typeof errorContent>> { try { const result = await fn(); return successContent(result); } catch (error) { return errorContent(error); } } - src/lib/utils.ts:14-18 (helper)The assertWriteAllowed helper that checks if write operations are permitted before executing the POST request.
export function assertWriteAllowed(allowWrite: boolean): void { if (!allowWrite) { throw new WriteNotAllowedError(); } }