Skip to main content
Glama

councly_status

Check council hearing status to get current phase, progress, verdict, trust scores, and counsel summaries for AI-debated topics.

Instructions

Check the status of a council hearing.

Returns:

  • For in-progress hearings: current phase and progress percentage

  • For completed hearings: verdict, trust score, and counsel summaries

  • For failed hearings: error message

Use this to check on hearings created with wait=false, or to retrieve past hearing results.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
hearing_idYesThe hearing ID to check

Implementation Reference

  • Handler for the councly_status tool: parses the input using counclyStatusSchema, fetches the hearing status via CounclyClient.getHearingStatus(hearing_id), formats the result with formatHearingResult, and returns it as MCP text content.
    case 'councly_status': {
      const parsed = counclyStatusSchema.parse(args);
      const status = await client.getHearingStatus(parsed.hearing_id);
    
      return {
        content: [
          {
            type: 'text',
            text: formatHearingResult(status),
          },
        ],
      };
    }
  • Zod schema definition for councly_status tool input validation, requiring a UUID hearing_id. Includes TypeScript type inference.
    export const counclyStatusSchema = z.object({
      hearing_id: z.string().uuid().describe('The hearing ID returned from councly_hearing'),
    });
    
    export type CounclyHearingInput = z.infer<typeof counclyHearingSchema>;
    export type CounclyStatusInput = z.infer<typeof counclyStatusSchema>;
  • src/tools.ts:91-112 (registration)
    MCP tool registration/definition for councly_status, including name, description, and inputSchema used in listTools response.
      {
        name: 'councly_status',
        description: `Check the status of a council hearing.
    
    Returns:
    - For in-progress hearings: current phase and progress percentage
    - For completed hearings: verdict, trust score, and counsel summaries
    - For failed hearings: error message
    
    Use this to check on hearings created with wait=false, or to retrieve past hearing results.`,
        inputSchema: {
          type: 'object',
          properties: {
            hearing_id: {
              type: 'string',
              format: 'uuid',
              description: 'The hearing ID to check',
            },
          },
          required: ['hearing_id'],
        },
      },
  • Helper function to format hearing status into a readable Markdown string, used by both councly_hearing (when waiting) and councly_status tools.
    // Format hearing result for display
    function formatHearingResult(status: {
      hearingId: string;
      status: string;
      verdict?: string | null;
      trustScore?: number | null;
      totalCost?: number;
      counselSummaries?: Array<{
        seat: string;
        model: string;
        lastTurn: string;
      }>;
      progress?: number;
      error?: string;
    }): string {
      const lines: string[] = [];
    
      lines.push(`## Hearing ${status.hearingId}`);
      lines.push(`**Status:** ${status.status}`);
    
      if (status.status === 'completed' || status.status === 'early_stopped') {
        if (status.verdict) {
          lines.push('');
          lines.push('### Verdict');
          lines.push(status.verdict);
        }
    
        if (status.trustScore !== null && status.trustScore !== undefined) {
          lines.push('');
          lines.push(`**Trust Score:** ${status.trustScore}/100`);
        }
    
        if (status.counselSummaries && status.counselSummaries.length > 0) {
          lines.push('');
          lines.push('### Counsel Perspectives');
          for (const counsel of status.counselSummaries) {
            lines.push(`**${counsel.seat}** (${counsel.model}):`);
            lines.push(counsel.lastTurn);
            lines.push('');
          }
        }
    
        if (status.totalCost !== undefined) {
          lines.push(`**Cost:** ${status.totalCost} credits`);
        }
      } else if (status.status === 'failed') {
        lines.push(`**Error:** ${status.error || 'Unknown error'}`);
      } else {
        // In progress
        if (status.progress !== undefined) {
          lines.push(`**Progress:** ${status.progress}%`);
        }
      }
    
      return lines.join('\n');
    }
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/slmnsrf/councly-mcp'

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