{"apiVersion":"v1","directorySlug":"owncoding-mcp-6d32b60b88","title":"Owncoding","description":null,"pageUrl":"https://www.mcpbundles.com/skills/owncoding-mcp-6d32b60b88","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://mcp.owncoding.com/mcp","hostedMcpUrl":null,"toolCount":30,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"com.owncoding/owncoding-mcp-6d32b60b88","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"categories-list","description":"List categories for a domain. Returns hierarchical tree structure. If id is provided, returns that category and all its descendants.","inputSchema":{"type":"object","required":["domain_id"],"properties":{"id":{"type":"string"},"domain_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"categories-list","displayName":"categories-list","title":"categories-list"},{"name":"categories-update","description":"Update categories tree starting from a root category. Provide all categories that should exist under this root. Categories not in the list will be deleted. Each category must have a 6-character alphanumeric id.","inputSchema":{"type":"object","required":["domain_id","id","categories"],"properties":{"id":{"type":"string"},"domain_id":{"type":"string"},"categories":{"type":"array","items":{"type":"object","required":["id","domain_id","name","sort_order"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"domain_id":{"type":"string"},"parent_id":{"type":"string"},"sort_order":{"type":"number"}}}}}},"logicalName":"categories-update","displayName":"categories-update","title":"categories-update","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"domains-list","description":"List all domains","inputSchema":{"type":"object"},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"domains-list","displayName":"domains-list","title":"domains-list"},{"name":"entities-get","description":"Get a specific entity with field inputs. If id is empty, returns the first entity in this entity_spec_id","inputSchema":{"type":"object","required":["entity_spec_id"],"properties":{"id":{"type":"string"},"entity_spec_id":{"type":"string"},"is_unpublished":{"type":"string"},"include_tag_name":{"type":"boolean"},"include_category_name":{"type":"boolean"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"entities-get","displayName":"entities-get","title":"entities-get"},{"name":"entities-insert","description":"Safely create a new entity","inputSchema":{"type":"object","required":["domain_id","entity_spec_id","name"],"properties":{"name":{"type":"string"},"content":{"type":"object","properties":{}},"domain_id":{"type":"string"},"category_id":{"type":"string"},"entity_spec_id":{"type":"string"}}},"logicalName":"entities-insert","displayName":"entities-insert","title":"entities-insert","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"entities-list","description":"List all entities for a domain and entity spec","inputSchema":{"type":"object","required":["domain_id","entity_spec_id"],"properties":{"domain_id":{"type":"string"},"field_ids":{"type":"array","items":{"type":"string"}},"entity_spec_id":{"type":"string"},"is_unpublished":{"type":"string"},"include_tag_name":{"type":"boolean"},"include_category_name":{"type":"boolean"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"entities-list","displayName":"entities-list","title":"entities-list"},{"name":"entities-publish","description":"Publish an entity to make it publicly available.","inputSchema":{"type":"object","required":["domain_id","id","entity_spec_id"],"properties":{"id":{"type":"string"},"domain_id":{"type":"string"},"entity_spec_id":{"type":"string"}}},"logicalName":"entities-publish","displayName":"entities-publish","title":"entities-publish","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"entities-search","description":"Advanced search for entities with filtering, pagination, and sorting. Supports filtering by category, custom fields with various operators (exact match, like, greater than, less than), and nested conditions with AND/OR logic. To filter by tags, use the filter parameter with field IDs (not tag_ids). Returns paginated results with total count.","inputSchema":{"type":"object","required":["domain_id"],"properties":{"filter":{"type":"object","properties":{}},"domain_id":{"type":"string"},"field_ids":{"type":"array","items":{"type":"string"}},"pagination":{"type":"object","properties":{}},"category_ids":{"type":"array","items":{"type":"string"}},"entity_spec_id":{"type":"string"},"is_unpublished":{"type":"string"},"include_tag_name":{"type":"boolean"},"include_category_name":{"type":"boolean"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"entities-search","displayName":"entities-search","title":"entities-search"},{"name":"entities-update","description":"Safely update an existing entity. Use either 'content' for full content replacement or 'patch_content' for partial updates using JSON Patch operations.","inputSchema":{"type":"object","required":["domain_id","id","entity_spec_id"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"content":{"type":"object","properties":{}},"domain_id":{"type":"string"},"category_id":{"type":"string"},"patch_content":{"type":"array","items":{"type":"object","required":["op","path"],"properties":{"op":{"type":"string"},"path":{"type":"string"},"value":{},"oldValue":{"type":"string"}}}},"entity_spec_id":{"type":"string"}}},"logicalName":"entities-update","displayName":"entities-update","title":"entities-update","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"entitySpecs-get","description":"Get a specific entity spec by ID","inputSchema":{"type":"object","required":["domain_id","id"],"properties":{"id":{"type":"string"},"domain_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"entitySpecs-get","displayName":"entitySpecs-get","title":"entitySpecs-get"},{"name":"entitySpecs-getMeta","description":"Get entity spec metadata (input type options and config form map) for a domain","inputSchema":{"type":"object","required":["domain_id"],"properties":{"domain_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"entitySpecs-getMeta","displayName":"entitySpecs-getMeta","title":"entitySpecs-getMeta"},{"name":"entitySpecs-insert","description":"Safely create a new entity spec","inputSchema":{"type":"object","required":["domain_id","name","display_name","fields"],"properties":{"name":{"type":"string"},"fields":{"type":"array","items":{"type":"object","required":["name","display_name","type","config"],"properties":{"name":{"type":"string"},"type":{"type":"string"},"config":{"type":"object"},"display_name":{"type":"string"}}}},"singular":{"type":"boolean"},"domain_id":{"type":"string"},"category_id":{"type":"string"},"display_name":{"type":"string"}}},"logicalName":"entitySpecs-insert","displayName":"entitySpecs-insert","title":"entitySpecs-insert","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"entitySpecs-list","description":"List all entity specs for a domain","inputSchema":{"type":"object","required":["domain_id"],"properties":{"domain_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"entitySpecs-list","displayName":"entitySpecs-list","title":"entitySpecs-list"},{"name":"entitySpecs-update","description":"Safely update an existing entity spec. This tool will not delete entity spec fields: every existing field id must be included in fields, and new fields must omit id.","inputSchema":{"type":"object","required":["id","domain_id","name","display_name","fields"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"fields":{"type":"array","items":{"type":"object","required":["name","display_name","type","config"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"},"config":{"type":"object"},"display_name":{"type":"string"}}}},"singular":{"type":"boolean"},"domain_id":{"type":"string"},"category_id":{"type":"string"},"display_name":{"type":"string"}}},"logicalName":"entitySpecs-update","displayName":"entitySpecs-update","title":"entitySpecs-update","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"files-list","description":"List files for a specific domain with pagination support. This is a detail pagination endpoint that uses cursor-based pagination with created_at_less_than timestamp for efficient traversal through large file sets.","inputSchema":{"type":"object","required":["domain_id","limit"],"properties":{"limit":{"type":"number"},"accepts":{"type":"array","items":{"type":"string"}},"domain_id":{"type":"string"},"created_at_less_than":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"files-list","displayName":"files-list","title":"files-list"},{"name":"instructions-get","description":"Get the full content of instructions. If names are provided, returns only those instructions.","inputSchema":{"type":"object","required":["names"],"properties":{"names":{"type":"array","items":{"type":"string"}}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"instructions-get","displayName":"instructions-get","title":"instructions-get"},{"name":"instructions-list","description":"List all available system instructions for the MCP capabilities with their names and descriptions","inputSchema":{"type":"object"},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"instructions-list","displayName":"instructions-list","title":"instructions-list"},{"name":"pages-insertNode","description":"Create a new page node with route, content, and configuration. Example: name='Demo', route={\"path\": \"/demo\"}, config={\"disabled_on_menu\": false, \"gql\": \"\"}, content=[{\"type\": \"litHtml\", \"attrs\": {}}], sort_order=2, parent_id='j2nmen' (optional, for child pages)","inputSchema":{"type":"object","required":["domain_id","name","route","config","sort_order"],"properties":{"name":{"type":"string"},"route":{"type":"object","properties":{}},"config":{"type":"object","properties":{}},"content":{"type":"array","items":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"attrs":{"type":"object"},"content":{"type":"array","items":{"type":"object"}}}}},"domain_id":{"type":"string"},"parent_id":{"type":"string"},"sort_order":{"type":"number"}}},"logicalName":"pages-insertNode","displayName":"pages-insertNode","title":"pages-insertNode","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"pages-listComponents","description":"List page components for a domain. Components are reusable web component definitions (e.g., LitElement-based). Optionally filter by component names.","inputSchema":{"type":"object","required":["domain_id"],"properties":{"names":{"type":"array","items":{"type":"string"}},"domain_id":{"type":"string"},"is_unpublished":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"pages-listComponents","displayName":"pages-listComponents","title":"pages-listComponents"},{"name":"pages-listContents","description":"List page contents and its parents","inputSchema":{"type":"object","required":["domain_id","id"],"properties":{"id":{"type":"string"},"domain_id":{"type":"string"},"is_unpublished":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"pages-listContents","displayName":"pages-listContents","title":"pages-listContents"},{"name":"pages-listRoutes","description":"List Page Routes for a specific domain","inputSchema":{"type":"object","required":["domain_id"],"properties":{"domain_id":{"type":"string"},"is_unpublished":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"pages-listRoutes","displayName":"pages-listRoutes","title":"pages-listRoutes"},{"name":"pages-publish","description":"Publish page nodes to make them publicly available. WARNING: This is a dangerous operation that immediately makes changes live to public visitors. You must always get explicit approval from the user before executing this tool unless they have explicitly allowed you to bypass approval.","inputSchema":{"type":"object","required":["domain_id","ids"],"properties":{"ids":{"type":"array","items":{"type":"string"}},"domain_id":{"type":"string"}}},"logicalName":"pages-publish","displayName":"pages-publish","title":"pages-publish","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"pages-queryGraphQL","description":"Run a read-only GraphQL query against the Pages service. Use this to test page route config.gql output and verify the data available to page components.","inputSchema":{"type":"object","required":["query"],"properties":{"query":{"type":"string"},"variables":{"type":"object","properties":{}},"is_unpublished":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"pages-queryGraphQL","displayName":"pages-queryGraphQL","title":"pages-queryGraphQL"},{"name":"pages-renderPage","description":"Render a page preview by domain and page id. Returns the assembled preview URL, HTTP status code, rendered HTML content, and any rendered page errors.","inputSchema":{"type":"object","required":["domain_id","page_id"],"properties":{"page_id":{"type":"string"},"domain_id":{"type":"string"},"timeout_ms":{"type":"number"},"route_query":{"type":"object","properties":{}},"route_params":{"type":"object","properties":{}},"is_unpublished":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"pages-renderPage","displayName":"pages-renderPage","title":"pages-renderPage"},{"name":"pages-updateContents","description":"Update page contents for one or more pages. Use either 'content' for full content replacement or 'patch_content' for partial updates using JSON Patch operations. Supported content types: 'litHtml', 'routeView'.","inputSchema":{"type":"object","required":["domain_id","page_contents"],"properties":{"domain_id":{"type":"string"},"page_contents":{"type":"array","items":{"type":"object","required":["id","expected_updated_at"],"properties":{"id":{"type":"string"},"content":{"type":"array","items":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"attrs":{"type":"object"},"content":{"type":"array","items":{"type":"object"}}}}},"patch_content":{"type":"array","items":{"type":"object","required":["op","path"],"properties":{"op":{"type":"string"},"path":{"type":"string"},"value":{"oneOf":[{"type":"string"},{"type":"object"}]},"oldValue":{"type":"string"}}}},"expected_updated_at":{"type":"string"}}}}}},"logicalName":"pages-updateContents","displayName":"pages-updateContents","title":"pages-updateContents","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"pages-updateRoutes","description":"Update multiple page routes (name, route configuration, parent_id, config, sort_order) in batch. Route must have 'path' (string), optional 'is_menu' (boolean, only true when the route is a folder, not a page). Config can include 'disabled_on_menu' (boolean) and 'gql' (string, JavaScript function for GraphQL queries).","inputSchema":{"type":"object","required":["domain_id","page_routes"],"properties":{"domain_id":{"type":"string"},"page_routes":{"type":"array","items":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"route":{"type":"object"},"config":{"type":"object"},"parent_id":{"type":"string"},"sort_order":{"type":"number"}}}}}},"logicalName":"pages-updateRoutes","displayName":"pages-updateRoutes","title":"pages-updateRoutes","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"pages-upsertComponent","description":"Create or update a page component. Use 'content' for full replacement or 'patch_content' for partial updates (same patch operations as pages-updateContents). Component content is a JSON object (e.g., {\"js\": \"...\"}), so patch paths target keys directly (e.g., '/js'). If id is provided, updates existing component; otherwise creates a new one.","inputSchema":{"type":"object","required":["domain_id","name","description"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"content":{"type":"object","properties":{}},"domain_id":{"type":"string"},"patch_content":{"type":"array","items":{"type":"object","required":["op","path"],"properties":{"op":{"type":"string"},"path":{"type":"string"},"value":{"type":"string"},"oldValue":{"type":"string"}}}}}},"logicalName":"pages-upsertComponent","displayName":"pages-upsertComponent","title":"pages-upsertComponent","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"tagGroups-get","description":"Get a specific tag group by ID with all its tags","inputSchema":{"type":"object","required":["domain_id","id"],"properties":{"id":{"type":"string"},"domain_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"tagGroups-get","displayName":"tagGroups-get","title":"tagGroups-get"},{"name":"tagGroups-list","description":"List all tag groups for a domain. Tag groups are collections of tags used to organize and categorize entities.","inputSchema":{"type":"object","required":["domain_id"],"properties":{"domain_id":{"type":"string"}}},"annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"tagGroups-list","displayName":"tagGroups-list","title":"tagGroups-list"},{"name":"tagGroups-upsert","description":"Create or update a tag group. If id is provided, updates existing tag group; otherwise creates new one. Tags are managed as part of the group - provide all tags that should exist.","inputSchema":{"type":"object","required":["domain_id","name","tags"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"tags":{"type":"array","items":{"type":"object","required":["name"],"properties":{"id":{"type":"string"},"name":{"type":"string"}}}},"domain_id":{"type":"string"}}},"logicalName":"tagGroups-upsert","displayName":"tagGroups-upsert","title":"tagGroups-upsert","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=Owncoding&config=eyJ1cmwiOiAiaHR0cHM6Ly9tY3Aub3duY29kaW5nLmNvbS9tY3AifQ%3D%3D"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22Owncoding%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.owncoding.com%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22Owncoding%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.owncoding.com%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Owncoding&connectorUrl=https%3A%2F%2Fmcp.owncoding.com%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"Owncoding\" --url \"https://mcp.owncoding.com/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/owncoding-mcp-6d32b60b88","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/owncoding-mcp-6d32b60b88/tools/{tool}","mcpServerUrl":"https://mcp.owncoding.com/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/owncoding-mcp-6d32b60b88?live=1"}