publish_service_binding
Publish an OData service binding by providing its name and version to make it accessible in an SAP system. Optionally specify a system ID to target a specific system.
Instructions
Publish an OData service binding to make it accessible
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| binding_name | Yes | Service binding name | |
| binding_version | Yes | Service version (e.g. 0001) | |
| system_id | No | SAP system ID (e.g. DEV). Omit to use default system. |
Implementation Reference
- src/mcp-server.ts:633-644 (registration)Registration of the 'publish_service_binding' tool in the ListToolsRequestSchema handler, defining its name, description, and input schema (binding_name and binding_version).
name: "publish_service_binding", description: "Publish an OData service binding to make it accessible", inputSchema: { type: "object" as const, properties: { binding_name: { type: "string", description: "Service binding name" }, binding_version: { type: "string", description: "Service version (e.g. 0001)" }, ...SYSTEM_ID_PROP, }, required: ["binding_name", "binding_version"], }, }, - src/mcp-server.ts:1190-1194 (handler)Handler in CallToolRequestSchema that parses args with ServiceBindingSchema and delegates to client.publishServiceBinding().
case "publish_service_binding": { const { binding_name, binding_version } = ServiceBindingSchema.parse(args); const result = await client.publishServiceBinding(binding_name, binding_version); return { content: [{ type: "text", text: result }] }; } - src/mcp-server.ts:124-127 (schema)Zod schema for service binding operations, validating binding_name and binding_version as required strings.
const ServiceBindingSchema = z.object({ binding_name: z.string(), binding_version: z.string(), }); - src/adt-client.ts:311-318 (helper)Actual HTTP implementation in AdtClient: sends an empty POST to the ADT publish endpoint with CSRF token handling.
async publishServiceBinding(name: string, version: string): Promise<string> { const encoded = encodeURIComponent(name.toUpperCase()); return (await this.postWithCsrf( `/sap/bc/adt/ddic/srvb/srvbsources/${encoded}/publish?version=${encodeURIComponent(version)}`, "", "*/*" )).data as string; }