Skip to main content
Glama
houtini-ai

YubHub MCP Server

by houtini-ai

create_feed

Create a structured job feed by monitoring careers pages to track new job postings automatically.

Instructions

Create a new job feed for monitoring career pages

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesFeed name (e.g., "Mercedes-AMG F1")
careersUrlYesCareers page URL to monitor
exampleJobUrlNoExample job posting URL (optional)

Implementation Reference

  • The main handler method that executes the create_feed tool logic. It accepts name, careersUrl, and optional exampleJobUrl parameters, calls the API client to create the feed, and returns a formatted success message with the feed ID.
      private async createFeed({ name, careersUrl, exampleJobUrl }: { name: string; careersUrl: string; exampleJobUrl?: string }) {
        const result = await this.apiClient.createFeed(name, careersUrl, exampleJobUrl);
    
        return {
          content: [
            {
              type: 'text',
              text: `✅ Feed created successfully!
    
    **Feed ID**: \`${result.id}\`
    **Name**: ${name}
    **Careers URL**: ${careersUrl}
    ${exampleJobUrl ? `**Example Job URL**: ${exampleJobUrl}` : ''}
    
    You can now trigger a run with: "Trigger a run for ${result.id}"`,
            },
          ],
        };
      }
  • src/index.ts:345-369 (registration)
    Tool registration defining the 'create_feed' tool with its name, description, and JSON Schema input validation specifying required fields (name, careersUrl) and optional field (exampleJobUrl) with type constraints.
    name: 'create_feed',
    description: 'Create a new job feed for monitoring career pages',
    inputSchema: {
      type: 'object',
      properties: {
        name: {
          type: 'string',
          description: 'Feed name (e.g., "Mercedes-AMG F1")',
          minLength: 1,
          maxLength: 100
        },
        careersUrl: {
          type: 'string',
          description: 'Careers page URL to monitor',
          format: 'uri'
        },
        exampleJobUrl: {
          type: 'string',
          description: 'Example job posting URL (optional)',
          format: 'uri'
        }
      },
      required: ['name', 'careersUrl'],
      additionalProperties: false
    }
  • API client helper method that makes the actual HTTP POST request to /api/feeds endpoint to create the feed, handling the API communication layer.
    async createFeed(name: string, careersUrl: string, exampleJobUrl?: string): Promise<{ id: string; message: string }> {
      return this.request('/api/feeds', {
        method: 'POST',
        body: JSON.stringify({ name, careersUrl, exampleJobUrl }),
      });
    }
  • TypeScript interface defining the Feed data structure including id, name, careers_url, example_job_url, is_active, timestamps, and scheduler fields.
    export interface Feed {
      id: string;
      name: string;
      user_id: number;
      careers_url: string;
      example_job_url: string | null;
      is_active: number;
      last_run_at: number | null;
      created_at: number;
      tag: string | null;
      updated_at: number;
      // Scheduler fields
      auto_run_enabled?: number;
      run_interval_days?: number;
      next_run_at?: number | null;
    }
  • src/index.ts:662-663 (registration)
    Switch case routing that maps the 'create_feed' tool name to its handler method, part of the tool execution dispatcher.
    case 'create_feed':
      return await this.createFeed(args as any);

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/houtini-ai/yub-hub-mcp-server'

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