Skip to main content
Glama
jumasheff

RAG Documentation MCP Server

by jumasheff

list_queue

Monitor pending documentation URLs in the processing queue to verify additions and check backlog status before execution.

Instructions

List all URLs currently waiting in the documentation processing queue. Shows pending documentation sources that will be processed when run_queue is called. Use this to monitor queue status, verify URLs were added correctly, or check processing backlog. Returns URLs in the order they will be processed.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • ListQueueHandler class that implements the execution logic for the 'list_queue' tool, reading from queue.txt and returning the list of queued URLs or appropriate status messages.
    export class ListQueueHandler extends BaseHandler {
      constructor(server: Server, apiClient: ApiClient) {
        super(server, apiClient);
      }
    
      async handle(_args: any) {
        try {
          // Check if queue file exists
          try {
            await fs.access(QUEUE_FILE);
          } catch {
            return {
              content: [
                {
                  type: 'text',
                  text: 'Queue is empty (queue file does not exist)',
                },
              ],
            };
          }
    
          // Read queue file
          const content = await fs.readFile(QUEUE_FILE, 'utf-8');
          const urls = content.split('\n').filter(url => url.trim() !== '');
    
          if (urls.length === 0) {
            return {
              content: [
                {
                  type: 'text',
                  text: 'Queue is empty',
                },
              ],
            };
          }
    
          return {
            content: [
              {
                type: 'text',
                text: `Queue contains ${urls.length} URLs:\n${urls.join('\n')}`,
              },
            ],
          };
        } catch (error) {
          return {
            content: [
              {
                type: 'text',
                text: `Failed to read queue: ${error}`,
              },
            ],
            isError: true,
          };
        }
      }
    }
  • Input schema and metadata definition for the 'list_queue' tool, provided in the ListToolsRequest response.
    {
      name: 'list_queue',
      description: 'List all URLs currently waiting in the documentation processing queue. Shows pending documentation sources that will be processed when run_queue is called. Use this to monitor queue status, verify URLs were added correctly, or check processing backlog. Returns URLs in the order they will be processed.',
      inputSchema: {
        type: 'object',
        properties: {},
      },
    } as ToolDefinition,
  • Registers the ListQueueHandler for the 'list_queue' tool name in the handlers Map used by CallToolRequest.
    this.handlers.set('list_queue', new ListQueueHandler(this.server, this.apiClient));
  • Alternative tool definition (schema) for 'list_queue' in the tools directory, possibly for client-side or other usage.
    get definition(): ToolDefinition {
      return {
        name: 'list_queue',
        description: 'List all URLs currently in the documentation processing queue',
        inputSchema: {
          type: 'object',
          properties: {},
          required: [],
        },
      };
    }
  • Import of ListQueueHandler class used for registration.
    ListQueueHandler,
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: it's a read-only operation (implied by 'list'), returns URLs in processing order, and relates to queue monitoring. However, it doesn't mention potential limitations like rate limits, error conditions, or whether the list is real-time vs. cached.

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?

The description is front-loaded with the core purpose in the first sentence, followed by usage guidelines and output details. Every sentence adds value without redundancy, making it efficiently structured and appropriately sized for the tool's complexity.

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 the tool's low complexity (0 parameters, no annotations, no output schema), the description is largely complete. It covers purpose, usage, and output behavior well. A minor gap is the lack of explicit mention of read-only safety or error handling, but for this simple tool, it's sufficient.

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

Parameters4/5

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

The input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description adds value by explaining the output semantics ('Returns URLs in the order they will be processed'), which compensates for the lack of an output schema. Baseline is 4 for 0 parameters, and it exceeds this by providing output context.

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 specific action ('List all URLs') and resource ('documentation processing queue'), distinguishing it from siblings like 'list_sources' (which likely lists different resources) and 'run_queue' (which processes rather than lists). It explicitly defines what the tool does without being tautological.

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?

The description provides explicit guidance on when to use this tool: 'to monitor queue status, verify URLs were added correctly, or check processing backlog.' It also distinguishes it from 'run_queue' by noting it shows pending sources 'that will be processed when run_queue is called,' offering clear context and alternatives.

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/jumasheff/mcp-ragdoc-fork'

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