submit_collection_content
Submit custom elements to the DollhouseMCP community collection by uploading to your GitHub portfolio and creating a submission issue for sharing personas and other content types.
Instructions
Submit a single element TO the DollhouseMCP community collection (via your GitHub portfolio). This first uploads the element to your personal GitHub portfolio, then creates a submission issue for the community collection. Use this when users want to share their custom elements with the community. This handles all content types including personas (AI behavioral profiles).
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | The content name or filename to submit. For personas, use the persona's name (e.g., 'Creative Writer') or filename. The system will recognize it as a persona based on its metadata. |
Implementation Reference
- src/server/tools/CollectionTools.ts:130-146 (registration)Primary registration, schema definition, and thin handler wrapper for the submit_collection_content tool. The handler delegates core logic to server.submitContent(content), which handles portfolio upload and collection submission issue creation.{ tool: { name: "submit_collection_content", description: "Submit a single element TO the DollhouseMCP community collection (via your GitHub portfolio). This first uploads the element to your personal GitHub portfolio, then creates a submission issue for the community collection. Use this when users want to share their custom elements with the community. This handles all content types including personas (AI behavioral profiles).", inputSchema: { type: "object", properties: { content: { type: "string", description: "The content name or filename to submit. For personas, use the persona's name (e.g., 'Creative Writer') or filename. The system will recognize it as a persona based on its metadata.", }, }, required: ["content"], }, }, handler: (args: any) => server.submitContent(args.content) },
- Input schema validation for the tool, requiring 'content' string parameter (element name or filename).inputSchema: { type: "object", properties: { content: { type: "string", description: "The content name or filename to submit. For personas, use the persona's name (e.g., 'Creative Writer') or filename. The system will recognize it as a persona based on its metadata.", }, }, required: ["content"], },
- Tool execution handler. Extracts 'content' from args and calls server.submitContent, which implements the upload-to-portfolio + create-submission-issue logic.handler: (args: any) => server.submitContent(args.content)
- src/server/ServerSetup.ts:59-59 (registration)Server-wide tool registration calls getCollectionTools to include submit_collection_content in the MCP toolset.this.toolRegistry.registerMany(getCollectionTools(instance));
- Documentation comment explaining motivation for PortfolioIndexManager: enables submit_collection_content to resolve metadata names to filenames./** * Portfolio Index Manager - Maps element names to file paths * * Solves critical issues: * 1. submit_collection_content can't find elements by metadata name (e.g., "Safe Roundtrip Tester" -> "safe-roundtrip-tester.md")