Skip to main content
Glama
G-Hensley
by G-Hensley

Get Ideas

get_ideas

Retrieve ideas from personal, Codaissance, or TamperTantrum Labs idea banks. Filter by source and status to find raw, validating, validated, rejected, or moved to projects ideas.

Instructions

Get ideas from personal, Codaissance, or TamperTantrum Labs idea banks

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sourceNoWhich idea source to retrieve (defaults to all)
statusNoFilter by idea status

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
contentYes

Implementation Reference

  • The 'get_ideas' tool handler registered via server.registerTool. It accepts optional 'source' (personal/codaissance/tampertantrum-labs/all) and 'status' (raw/validating/validated/rejected/moved_to_projects) filters, reads ideas from JSON files on GitHub, filters by status, and returns the matching ideas grouped by source.
    // Tool: Get Ideas
    server.registerTool(
      "get_ideas",
      {
        title: "Get Ideas",
        description: "Get ideas from personal, Codaissance, or TamperTantrum Labs idea banks",
        inputSchema: {
          source: z.enum(["personal", "codaissance", "tampertantrum-labs", "all"]).optional().describe("Which idea source to retrieve (defaults to all)"),
          status: z.enum(["raw", "validating", "validated", "rejected", "moved_to_projects"]).optional().describe("Filter by idea status"),
        },
        outputSchema: textContentOutputSchema,
      },
      async ({ source, status }) => {
        const sources: Record<string, string> = {
          personal: "ideas/personal/ideas.json",
          codaissance: "ideas/business/codaissance/ideas.json",
          "tampertantrum-labs": "ideas/business/tampertantrum-labs/ideas.json",
        };
    
        const sourcesToCheck = source && source !== "all" ? [source] : ["personal", "codaissance", "tampertantrum-labs"];
        const allIdeas: Array<{ source: string; ideas: Idea[] }> = [];
    
        for (const s of sourcesToCheck) {
          try {
            const data = await readJsonFile<IdeasData>(sources[s]);
            let ideas = data.ideas || [];
            if (status) {
              ideas = ideas.filter(i => i.status === status);
            }
            if (ideas.length > 0) {
              allIdeas.push({ source: s, ideas });
            }
          } catch {
            // File may not exist
          }
        }
        return { content: [{ type: "text", text: JSON.stringify(allIdeas, null, 2) }] };
      }
    );
  • Type definitions for Idea, IdeasData, and IdeasResult interfaces used by the get_ideas tool.
    export interface Idea {
      name: string;
      description: string;
      problem: string;
      solution: string;
      target_audience: string;
      effort: string;
      potential_value: string;
      status: string;
      validation_report: unknown | null;
      notes: string;
      date_added: string;
      date_updated: string;
    }
    
    export interface IdeasData {
      ideas: Idea[];
    }
    
    export interface IdeasResult {
      source: string;
      ideas: Idea[];
    }
  • Import of IdeasData and Idea types from src/types.ts used by the get_ideas handler.
      IdeasData,
      Idea,
    } from "../src/types.js";
  • The readJsonFile helper function that fetches JSON data from GitHub, used by get_ideas to load idea bank files.
    async function readJsonFile<T>(relativePath: string): Promise<T> {
      const content = await fetchFromGitHub(relativePath);
      return JSON.parse(content) as T;
    }
  • api/mcp.ts:418-419 (registration)
    Registration of the 'get_ideas' tool via server.registerTool with its name.
    server.registerTool(
      "get_ideas",
Behavior2/5

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

No annotations provided. The description does not disclose behavioral traits like read-only nature, pagination, permissions, or return format. It implies a read operation but lacks explicit transparency.

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

Conciseness4/5

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

The description is one short sentence (10 words) with no wasted words. It is efficient but could be slightly more structured with bullet points or separate sentences for clarity.

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

Completeness3/5

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

The tool has an output schema, reducing the need to explain return values. However, the description does not mention that the tool supports filtering by source and status, which the schema provides, nor does it describe the output structure or any edge cases.

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% with clear descriptions for both parameters. The description adds context about the source banks but does not provide additional meaning beyond the schema.

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

Purpose4/5

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

The description clearly states the verb (get), resource (ideas), and sources (personal, Codaissance, TamperTantrum Labs). It distinguishes from sibling tools like add_idea and extract_story_ideas, but does not mention the filtering capability.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, such as add_idea or extract_story_ideas. No prerequisites, context, or when-not-to-use information provided.

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/G-Hensley/myself-mcp-server'

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