Skip to main content
Glama
tenbux

log-query-mcp

by tenbux

log-query-mcp

MCP server exposing Discord and Twitch/Chatty chat log query tools to Claude Code.

Setup

npm install
cp .env.example .env
# Edit .env and set DISCORD_BOT_TOKEN

Register with Claude Code (global):

claude mcp add chat-logs -- node /path/to/log-query-mcp/mcp-server.js

Related MCP server: cc-session-search

Twitch logs

Requires chatty-log-query checked out at ~/Projects/chatty-log-query. Reads Chatty log files from ~/.chatty/logs/.

Tools

Discord

Tool

Description

discord_search

Search messages by content across server or channel

discord_channel_stats

Message count and top chatters for a channel

discord_list_channels

List all known channel names and IDs

Twitch (Chatty logs)

Tool

Description

twitch_search

Regex/string search across channel logs

twitch_user_messages

All messages from a user in a channel

twitch_top_chatters

Rank chatters by message count

twitch_activity_rate

Rank chatters by message count, with msgs/hour vs their first-to-last-seen span

twitch_events

Query sub/bits/giftsub events

All Twitch tools accept either days (recent N days) or from/to (YYYY-MM-DD range) — from/to take precedence when both are given.

Environment

Variable

Description

DISCORD_BOT_TOKEN

Bot token from Discord Developer Portal

Available Tools

7 tools
discord_channel_statsC

Message count and top-chatter stats for a Discord channel.

ParametersJSON Schema
NameRequiredDescriptionDefault
channelNoChannel name or ID (default: chatters)
pagesNoPages of 100 messages to fetch (default 4)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It does not disclose that it is a read-only operation, potential permissions needed, or any side effects. The term 'stats' weakly implies non-destructive, but is insufficient.

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?

Single sentence, concise and front-loaded with the output type. However, 'top-chatter stats' is somewhat vague and could be more precise.

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

Completeness2/5

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

No output schema, so description must explain return values. It only mentions 'message count and top-chatter stats' without detailing format or scope. Lacks context on limits or pagination.

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 baseline is 3. The description adds no extra meaning beyond the schema; it does not explain how channel or pages affect the output.

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 implies retrieval of message count and top-chatter stats for a Discord channel. It distinguishes from siblings like discord_list_channels (which lists channels) and discord_search, but lacks an explicit verb.

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 like discord_list_channels or twitch_top_chatters. The description does not mention context or selection criteria.

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

discord_list_channelsA

List all known Discord channel names and their IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

The description indicates a read-only operation with no side effects. With no annotations, this is adequate; it could explicitly state read-only.

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?

One clear sentence with no redundancy. Front-loaded and efficient.

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

Completeness5/5

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

Given zero parameters, no output schema, and low complexity, the description fully covers what the tool does.

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?

No parameters exist, so the description adds value by specifying the output (names and IDs). Baseline is 4 for zero-parameter tools.

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 lists all known Discord channel names and IDs, which is specific and distinguishes it from siblings like discord_channel_stats.

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

Usage Guidelines3/5

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

No explicit when-to-use or alternatives, but the description is self-evident for a simple list retrieval. The sibling tool names provide context for differentiation.

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

twitch_eventsB

Query Twitch sub/bits/giftsub events in a channel.

ParametersJSON Schema
NameRequiredDescriptionDefault
channelYesTwitch channel name (without #)
typeNoEvent type filter (optional)
userNoFilter by username (optional)
daysNoHow many recent days (default: all)
topNoRank/aggregate results instead of listing (requires type)
limitNoLimit for --top mode (default 20)

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description must fully disclose behavior. It only states 'Query', implying no side effects, but omits details on data freshness, pagination, rate limits, or whether results are aggregated. The schema suggests a read operation, but transparency is minimal.

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 a single, succinct sentence that front-loads the core action. No extraneous words.

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

Completeness2/5

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

Despite having 6 parameters and no output schema, the description is too brief. It doesn't explain return format, typical use of 'top' parameter, or behavior when parameters are omitted. The schema provides details, but the description should contextualize them for effective tool invocation.

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 coverage is 100%, so parameters are well-documented there. The description adds no extra meaning beyond the schema. Baseline 3 is appropriate as it neither enhances nor detracts from parameter understanding.

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 uses a specific verb ('Query') and identifies the resource ('Twitch sub/bits/giftsub events') and context ('in a channel'). It clearly distinguishes from sibling tools like twitch_search or twitch_top_chatters, which cover different data types.

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. Siblings like twitch_search or twitch_top_chatters have overlapping domains, but the description does not differentiate usage contexts or mention exclusion criteria.

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

twitch_top_chattersB

Rank Twitch chatters by message count in a channel.

ParametersJSON Schema
NameRequiredDescriptionDefault
channelYesTwitch channel name (without #)
daysNoHow many recent days (default: all time)
limitNoNumber of results (default 20)

TDQS

B3.2/5.0
Behavior2/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 does not disclose read-only behavior, authentication needs, error handling, or any side effects. The tool likely reads data but this is not explicitly stated.

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?

Single sentence of 9 words, perfectly concise with no redundancy. Every word adds value.

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

Completeness2/5

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

Given 3 parameters, no output schema, and no annotations, the description is far from complete. It does not describe return format, edge cases, or how results are ordered. Minimal context for a ranking tool.

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 coverage is 100% with descriptions for all parameters. The tool description adds no additional meaning beyond what is already in the schema, so baseline 3 is appropriate.

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 verb (rank) and resource (Twitch chatters by message count in a channel). It distinguishes from siblings like twitch_user_messages and twitch_search, which focus on different aspects.

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, no exclusions or prerequisites mentioned. The description provides no usage context beyond the basic action.

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

twitch_user_messagesB

Fetch all Twitch chat messages from a specific user in a channel.

ParametersJSON Schema
NameRequiredDescriptionDefault
channelYesTwitch channel name (without #)
userYesUsername to look up
daysNoHow many recent days to search (default: all)

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, and the description fails to disclose any behavioral traits such as read-only nature, rate limits, authentication requirements, or how it handles large result sets. The description only states what the tool does, not its side effects or constraints.

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 a single, concise sentence with no extraneous information. It is well-structured and easy to parse.

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?

For a simple retrieval tool with clear parameters, the description is minimally adequate. However, it lacks information about return type, pagination, or any limits on the 'all' default for days. Given no output schema, more context would be beneficial.

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 coverage is 100% with clear descriptions for each parameter (channel, user, days). The tool description adds no additional meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.

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 uses a specific verb ('Fetch') and identifies the resource ('Twitch chat messages from a specific user in a channel'). It clearly distinguishes from sibling tools like twitch_search or twitch_top_chatters.

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?

The description provides no explicit guidance on when to use this tool versus alternatives. It does not mention prerequisites, limitations, or scenarios where another tool might be more appropriate.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 7 tool updatesv1.0.0
    • First observeddiscord_channel_stats
    • First observeddiscord_list_channels
    • First observeddiscord_search
    • First observedtwitch_events
    • First observedtwitch_search
    • First observedtwitch_top_chatters
    • First observedtwitch_user_messages

TDQS

A3.6/5.0
Disambiguation5/5

Each tool targets a distinct platform (Discord or Twitch) and a specific operation (search, list, stats, events), with no overlapping purposes. The platform prefix and clear action verbs make them easily distinguishable.

Naming Consistency5/5

All tools follow a consistent `platform_action` pattern using snake_case (e.g., discord_list_channels, twitch_search). The naming is uniform and predictable across both platforms.

Tool Count5/5

7 tools is a well-scoped set for a log query server covering two platforms (Discord and Twitch). Each tool provides a meaningful query capability without unnecessary bloat.

Completeness4/5

The tool set covers the core query operations for both platforms: searching, listing, stats, and user-specific queries. Minor gaps include lacking direct message retrieval by ID or cross-platform search, but the surface is largely complete for a query-focused server.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

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/tenbux/log-query-mcp'

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