import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import type { ToolContext } from "../utils/api.js";
const TOOL_LIST = `
Stories: fetch_stories, get_story, create_story, update_story, delete_story, publish_story, unpublish_story, get_story_versions
Tags: fetch_tags, create_tag, create_tag_and_add_to_story, add_existing_tag_to_story, update_tag, delete_tag
Components: fetch_components, get_component, create_component, update_component, delete_component
Assets: fetch_assets, get_asset, update_asset, delete_asset
Releases: fetch_releases, get_release, create_release, update_release, delete_release
Workflows: fetch_workflows, get_workflow, create_workflow, update_workflow, delete_workflow, fetch_workflow_stages
Webhooks: fetch_webhooks, get_webhook, create_webhook, update_webhook, delete_webhook
Datasources: fetch_datasources, get_datasource, create_datasource, update_datasource, delete_datasource, fetch_datasource_entries, create_datasource_entry, update_datasource_entry, delete_datasource_entry
Space: get_space, update_space
Meta: list_tools
Ping: ping
`.trim();
export function registerMeta(server: McpServer, _ctx: ToolContext): void {
server.registerTool(
"list_tools",
{ description: "List all available Storyblok MCP tools by category. No API call." },
async () => ({
content: [{ type: "text" as const, text: `Storyblok MCP tools:\n\n${TOOL_LIST}` }],
})
);
}