Skip to main content
Glama

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
NameRequiredDescriptionDefault
contentYesThe 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

  • 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)
  • 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")
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses key behavioral traits: the two-step process (upload then create issue) and support for multiple content types including personas. However, it lacks details on permissions needed (e.g., GitHub auth), rate limits, error handling, or what happens if submission fails. The description doesn't contradict annotations (none provided).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with zero waste: first states the action and process, second gives usage context, third clarifies content scope. Each sentence earns its place by adding distinct value (process, when-to-use, inclusivity). Front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 1 parameter with full schema coverage and no output schema, the description is reasonably complete for a submission tool. It covers purpose, process, usage context, and content types. However, without annotations or output schema, it lacks details on behavioral aspects like auth requirements, success/failure responses, or community review process, leaving some gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the single parameter 'content' with its description. The description adds marginal value by mentioning 'content name or filename' and giving an example for personas, but doesn't provide additional syntax, format, or constraints beyond what the schema states. Baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('submit', 'uploads', 'creates') and resources ('single element', 'DollhouseMCP community collection', 'GitHub portfolio', 'submission issue'). It distinguishes from siblings by focusing on community submission rather than local management (e.g., create_element, edit_element) or browsing (browse_collection).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: 'when users want to share their custom elements with the community.' It distinguishes from alternatives by describing a two-step process (upload to personal portfolio then create submission issue) that differs from tools like install_collection_content or create_element. The mention of 'handles all content types including personas' further clarifies scope.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DollhouseMCP/DollhouseMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server