LINE Bot MCP Server
Integrates with LINE Messaging API to connect AI agents to LINE Official Accounts, enabling sending of text and flex messages, broadcasting to followers, managing user profiles, checking message quotas, and administering rich menus
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@LINE Bot MCP Serversend a text message to user U1234567890 saying 'Your order has shipped!'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
LINE Bot MCP Server
Model Context Protocol (MCP) server implementation that integrates the LINE Messaging API to connect an AI Agent to the LINE Official Account.

This repository is provided as a preview version. While we offer it for experimental purposes, please be aware that it may not include complete functionality or comprehensive support.
Tools
push_text_message
Push a simple text message to a user via LINE.
Inputs:
user_id(string?): The user ID to receive a message. Defaults to DESTINATION_USER_ID. Eitheruser_idorDESTINATION_USER_IDmust be set.message.text(string): The plain text content to send to the user.
push_flex_message
Push a highly customizable flex message to a user via LINE.
Inputs:
user_id(string?): The user ID to receive a message. Defaults to DESTINATION_USER_ID. Eitheruser_idorDESTINATION_USER_IDmust be set.message.altText(string): Alternative text shown when flex message cannot be displayed.message.content(any): The content of the flex message. This is a JSON object that defines the layout and components of the message.message.contents.type(enum): Type of the container. 'bubble' for single container, 'carousel' for multiple swipeable bubbles.
broadcast_text_message
Broadcast a simple text message via LINE to all users who have followed your LINE Official Account.
Inputs:
message.text(string): The plain text content to send to the users.
broadcast_flex_message
Broadcast a highly customizable flex message via LINE to all users who have added your LINE Official Account.
Inputs:
message.altText(string): Alternative text shown when flex message cannot be displayed.message.content(any): The content of the flex message. This is a JSON object that defines the layout and components of the message.message.contents.type(enum): Type of the container. 'bubble' for single container, 'carousel' for multiple swipeable bubbles.
get_profile
Get detailed profile information of a LINE user including display name, profile picture URL, status message and language.
Inputs:
user_id(string?): The ID of the user whose profile you want to retrieve. Defaults to DESTINATION_USER_ID.
get_message_quota
Get the message quota and consumption of the LINE Official Account. This shows the monthly message limit and current usage.
Inputs:
None
get_rich_menu_list
Get the list of rich menus associated with your LINE Official Account.
Inputs:
None
delete_rich_menu
Delete a rich menu from your LINE Official Account.
Inputs:
richMenuId(string): The ID of the rich menu to delete.
set_rich_menu_default
Set a rich menu as the default rich menu.
Inputs:
richMenuId(string): The ID of the rich menu to set as default.
cancel_rich_menu_default
Cancel the default rich menu.
Inputs:
None
Related MCP server: LINE Bot MCP Server (SSE Support)
Installation (Using npx)
requirements:
Node.js v20 or later
Step 1: Create LINE Official Account
This MCP server utilizes a LINE Official Account. If you do not have one, please create it by following this instructions.
If you have a LINE Official Account, enable the Messaging API for your LINE Official Account by following this instructions.
Step 2: Configure AI Agent
Please add the following configuration for an AI Agent like Claude Desktop or Cline.
Set the environment variables or arguments as follows:
CHANNEL_ACCESS_TOKEN: (required) Channel Access Token. You can confirm this by following this instructions.DESTINATION_USER_ID: (optional) The default user ID of the recipient. If the Tool's input does not includeuser_id,DESTINATION_USER_IDis required. You can confirm this by following this instructions.
{
"mcpServers": {
"line-bot": {
"command": "npx",
"args": [
"@line/line-bot-mcp-server"
],
"env": {
"CHANNEL_ACCESS_TOKEN" : "FILL_HERE",
"DESTINATION_USER_ID" : "FILL_HERE"
}
}
}
}Installation (Using Docker)
Step 1: Create LINE Official Account
This MCP server utilizes a LINE Official Account. If you do not have one, please create it by following this instructions.
If you have a LINE Official Account, enable the Messaging API for your LINE Official Account by following this instructions.
Step 2: Build line-bot-mcp-server image
Clone this repository:
git clone git@github.com:line/line-bot-mcp-server.gitBuild the Docker image:
docker build -t line/line-bot-mcp-server .Step 3: Configure AI Agent
Please add the following configuration for an AI Agent like Claude Desktop or Cline.
Set the environment variables or arguments as follows:
mcpServers.args: (required) The path toline-bot-mcp-server.CHANNEL_ACCESS_TOKEN: (required) Channel Access Token. You can confirm this by following this instructions.DESTINATION_USER_ID: (optional) The default user ID of the recipient. If the Tool's input does not includeuser_id,DESTINATION_USER_IDis required. You can confirm this by following this instructions.
{
"mcpServers": {
"line-bot": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"CHANNEL_ACCESS_TOKEN",
"-e",
"DESTINATION_USER_ID",
"line/line-bot-mcp-server"
],
"env": {
"CHANNEL_ACCESS_TOKEN" : "FILL_HERE",
"DESTINATION_USER_ID" : "FILL_HERE"
}
}
}
}Local Development with Inspector
You can use the MCP Inspector to test and debug the server locally.
Prerequisites
Clone the repository:
git clone git@github.com:line/line-bot-mcp-server.git
cd line-bot-mcp-serverInstall dependencies:
npm installBuild the project:
npm run buildRun the Inspector
After building the project, you can start the MCP Inspector:
npx @modelcontextprotocol/inspector node dist/index.jsThis will start the MCP Inspector interface where you can interact with the LINE Bot MCP Server tools and test their functionality.
Versioning
This project respects semantic versioning
Contributing
Please check CONTRIBUTING before making a contribution.
Available Tools
18 toolsai_query_mssqlA
Generate a safe read-only MSSQL SELECT from instruction via Gemini, validate, execute, and return rows.
| Name | Required | Description | Default |
|---|---|---|---|
| instruction | Yes | Natural language request to query MSSQL (Thai/English) | |
| maxRows | No | Max rows to return | |
| allowedSchemas | No | Optional whitelist of schemas (e.g., ['dbo','sales']) | |
| allowedTables | No | Optional whitelist of fully qualified tables (e.g., ['dbo.customer_dummy']) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well by disclosing key behavioral traits: it's safe and read-only, uses Gemini for query generation, includes validation, executes the query, and returns rows. However, it lacks details on error handling, rate limits, or specific validation rules, leaving some gaps in behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise and front-loaded in a single sentence that efficiently covers purpose, process, and constraints. Every word earns its place, with no redundant or vague phrasing, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (natural language to SQL conversion with safety validation) and lack of annotations and output schema, the description is reasonably complete. It covers the core functionality and safety aspects but could benefit from mentioning output format or error cases. However, it adequately addresses the main use case without being overly verbose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all parameters. The description adds minimal semantic value beyond the schema, only implying that 'instruction' is natural language and the tool is read-only. It doesn't provide additional context on parameter interactions or usage examples, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('generate', 'validate', 'execute', 'return') and resource ('MSSQL SELECT'), and distinguishes it from sibling 'query_mssql' by emphasizing safe read-only operation via Gemini. It explicitly mentions the natural language input and the read-only constraint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: it specifies when to use this tool (for safe read-only queries from natural language instructions via Gemini) and implicitly when not to use it (for non-SELECT operations or direct SQL execution, as suggested by the sibling 'query_mssql'). It clearly differentiates from alternatives by highlighting the Gemini-mediated approach.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
broadcast_flex_messageA
Broadcast a highly customizable flex message via LINE to all users who have added your LINE Official Account. Supports both bubble (single container) and carousel (multiple swipeable bubbles) layouts. Please be aware that this message will be sent to all users.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the broadcast nature ('sent to all users') and mentions support for bubble/carousel layouts, but lacks details about permissions, rate limits, confirmation steps, or what happens on failure. The warning about broadcasting is helpful but incomplete for behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste. First sentence establishes purpose and capabilities, second provides crucial behavioral warning. Every word earns its place, and the most important information (broadcast nature) is appropriately front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a broadcast tool with no annotations, no output schema, and complex nested parameters, the description is moderately complete. It covers the broadcast scope and basic layout options but misses details about authentication requirements, error handling, response format, and the full complexity of the flex message structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions bubble/carousel layouts which correspond to the 'type' enum in the nested schema, but doesn't explain the 'altText' parameter or the complex 'contents' structure beyond basic layout types. This leaves significant gaps in parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('broadcast'), resource ('flex message'), and platform ('LINE to all users who have added your LINE Official Account'). It distinguishes from siblings like 'broadcast_text_message' by specifying the message type and from 'push_flex_message' by indicating broadcast vs targeted push.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: for sending flex messages to all LINE Official Account users. It implicitly distinguishes from sibling tools like 'broadcast_text_message' (text vs flex) and 'push_flex_message' (broadcast vs targeted), though it doesn't explicitly name alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
broadcast_messagesC
Broadcast one or more LINE messages to all followers (generic).
| Name | Required | Description | Default |
|---|---|---|---|
| messages | Yes | Array of LINE messages (text/flex) |
TDQS
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. While 'broadcast' implies a write operation that sends messages, it doesn't mention important behavioral aspects like rate limits, authentication requirements, whether this is a one-way broadcast (no replies), potential costs, or what happens on failure. The description is too minimal for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - a single sentence that efficiently communicates the core functionality. Every word earns its place with no wasted verbiage. It's front-loaded with the essential information about what the tool does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what happens after broadcasting (success indicators, error conditions), doesn't address the sibling tool relationships, and provides minimal behavioral context. The agent would need to guess about important operational aspects of this broadcast functionality.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents the 'messages' parameter thoroughly with its text and flex message structures. The description adds minimal value by mentioning 'one or more LINE messages' and 'text/flex' types, but doesn't provide additional semantic context beyond what's in the schema. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('broadcast'), the resource ('LINE messages'), and the target ('all followers'), which is specific and actionable. However, it doesn't explicitly differentiate from sibling tools like 'broadcast_flex_message' or 'broadcast_text_message', which appear to be more specialized versions of this generic tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'broadcast_flex_message' or 'broadcast_text_message'. It mentions 'generic' but doesn't explain what makes it generic or when to choose it over the more specific siblings. No prerequisites, exclusions, or comparison context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
broadcast_text_messageA
Broadcast a simple text message via LINE to all users who have followed your LINE Official Account. Use this for sending plain text messages without formatting. Please be aware that this message will be sent to all users.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the broadcast nature ('sent to all users') which is crucial behavioral context, but doesn't mention rate limits, authentication requirements, message delivery guarantees, or potential costs/quotas. For a broadcast tool with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized (3 sentences) and front-loaded with the core purpose. Every sentence adds value: first states the action, second specifies text-only limitation, third warns about broadcast scope. No wasted words, though it could be slightly more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a broadcast tool with no annotations, no output schema, and 0% schema description coverage, the description is incomplete. It doesn't cover error conditions, response format, rate limits, or authentication requirements. The warning about 'sent to all users' is helpful but insufficient for safe operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description adds no parameter-specific information beyond what's implied by the tool name and purpose. The single parameter (message object with text field) is documented only in the schema. The description doesn't explain the message structure, text length constraints, or provide examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('broadcast a simple text message via LINE'), the target resource ('all users who have followed your LINE Official Account'), and distinguishes it from siblings by specifying 'plain text messages without formatting' (unlike broadcast_flex_message or push_flex_message which likely involve formatting).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool ('for sending plain text messages without formatting'), but doesn't explicitly state when NOT to use it or name specific alternatives (like push_text_message for targeted messages vs broadcast). It implies this is for mass communication to all followers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_mssql_knowledgeA
Export MSSQL schema (tables/columns) into a Markdown knowledge file for Q/A.
| Name | Required | Description | Default |
|---|---|---|---|
| outputPath | No | Output Markdown path (relative), e.g., docs/db-knowledge.md | docs/db-knowledge.md |
| tableLimit | No | Max number of tables to document | |
| columnLimit | No | Max number of columns to document in total |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'Export' implies a read operation, it doesn't specify whether this requires database credentials, what happens if limits are exceeded, whether the operation is idempotent, or what happens if the output path already exists. The description lacks critical behavioral context for a tool that interacts with a database system.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that communicates the core purpose without unnecessary words. It's front-loaded with the essential information and contains zero redundant or verbose elements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters, 100% schema coverage, but no annotations or output schema, the description provides basic purpose but lacks important context about behavioral characteristics, error handling, and practical usage considerations. It's minimally adequate but leaves significant gaps in understanding how the tool behaves in real scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, providing complete parameter documentation. The description adds no additional parameter semantics beyond what's already in the schema. The baseline score of 3 reflects adequate but minimal value addition from the description regarding parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Export'), target resource ('MSSQL schema (tables/columns)'), and output format ('Markdown knowledge file for Q/A'). It distinguishes from sibling tools like 'query_mssql' and 'ai_query_mssql' by focusing on documentation export rather than query execution.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for creating documentation files from database schemas, but provides no explicit guidance on when to use this tool versus alternatives like querying tools. There's no mention of prerequisites, dependencies, or scenarios where this tool would be preferred over manual documentation methods.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gemini_commandB
Use Gemini to plan and execute one LINE action (get profile, get rich menu list, get message quota, push/broadcast text or flex).
| Name | Required | Description | Default |
|---|---|---|---|
| instruction | Yes | Natural language command, e.g., 'ดึงโปรไฟล์ขà¸à¸‡à¸œà¸¹à¹‰à¹ƒà¸Šà¹‰', 'ส่งข้à¸à¸„วามว่า สวัสดี', 'ดูรายà¸à¸²à¸£ rich menu' | |
| model | No | Gemini model name, e.g., gemini-2.0-flash | gemini-2.0-flash |
| filePath | No | Optional relative Markdown path (e.g., docs/data-learning/knowledge.md) to use as knowledge context | |
| knowledgeSource | No | Choose knowledge source: 'file' (Markdown via filePath) or 'mssql' (database schema snapshot) | file |
| userId | No | Optional LINE userId to target. Overrides DESTINATION_USER_ID if provided. | |
| mode | No | Mode: 'auto' (planner decides), 'actions' (force planner), 'qa' (answer from knowledge and push text) | auto |
| dbQuery | No | Optional read-only SQL (SELECT/WITH) to fetch data from MSSQL and include as knowledge (Markdown table). | |
| dbParams | No | Optional parameters for dbQuery (mapped to @name placeholders) | |
| dbLimit | No | Max rows to include from dbQuery in knowledge (default 100, max 200) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but provides minimal behavioral information. It mentions 'plan and execute' which suggests multi-step processing, but doesn't disclose execution characteristics like error handling, rate limits, authentication requirements, or what constitutes a 'LINE action.' The description is too vague about the tool's actual behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. However, it could be more structured by separating planning from execution aspects, and the parenthetical list of actions is somewhat cluttered. Overall, it's appropriately concise for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 9-parameter tool with no annotations and no output schema, the description is inadequate. It doesn't explain the relationship between Gemini planning and LINE execution, doesn't describe output format, and provides minimal context about how this tool differs from the many sibling LINE tools. The description leaves too many questions unanswered for proper agent usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 9 parameters thoroughly. The description doesn't add any meaningful parameter semantics beyond what's in the schema - it doesn't explain how parameters interact or provide usage examples beyond the single 'instruction' example. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Use Gemini to plan and execute one LINE action' with specific examples of actions (get profile, get rich menu list, etc.). It distinguishes from some siblings by mentioning Gemini integration, but doesn't explicitly differentiate from all similar LINE action tools like push_text_message or get_profile.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool should be used for LINE actions that require Gemini planning/execution, but doesn't provide explicit guidance on when to choose this versus direct action tools like push_text_message or get_profile. No 'when-not-to-use' criteria or clear alternatives are specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_message_quotaA
Get the message quota and consumption of the LINE Official Account. This shows the monthly message limit and current usage.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It clearly indicates this is a read-only operation ('Get') and specifies the data returned (quota and consumption), but does not disclose behavioral traits like rate limits, authentication needs, error conditions, or data freshness. It adds basic context but lacks operational details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with zero waste: the first states the purpose, and the second elaborates on the returned data. It is front-loaded and every sentence adds value without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 output schema, no annotations), the description is adequate but minimal. It covers the basic purpose and output semantics, but lacks context on usage scenarios, error handling, or integration with sibling tools, leaving gaps for an agent to infer operational details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters with 100% schema description coverage, so no parameter documentation is needed. The description appropriately does not discuss parameters, maintaining focus on the tool's purpose. A baseline of 4 is applied as it efficiently handles the parameter-free case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get') and resource ('message quota and consumption of the LINE Official Account'), with explicit details about what information is retrieved ('monthly message limit and current usage'). It distinguishes itself from sibling tools that focus on messaging, broadcasting, or database operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for monitoring message usage on LINE Official Accounts, but provides no explicit guidance on when to use this tool versus alternatives (e.g., for checking limits before sending messages) or any exclusions. It lacks named alternatives or contextual boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_profileB
Get detailed profile information of a LINE user including display name, profile picture URL, status message and language.
| Name | Required | Description | Default |
|---|---|---|---|
| userId | No | The user ID to get a profile. Defaults to DESTINATION_USER_ID. | U1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p |
TDQS
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 implies a read-only operation but does not specify authentication requirements, rate limits, error conditions, or response format details. For a tool with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose and lists key return fields without unnecessary elaboration. Every word contributes directly to understanding the tool's function, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one parameter, no output schema) and high schema coverage, the description is adequate but incomplete. It lacks behavioral details (e.g., authentication, errors) that are crucial for a tool with no annotations, though the purpose and parameters are clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the single parameter (userId). The description adds no additional parameter semantics beyond what the schema provides, such as format constraints or usage examples, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get detailed profile information') and resource ('LINE user'), listing the exact data fields returned (display name, profile picture URL, status message, language). It distinguishes this from sibling tools that focus on messaging, database queries, or rich menus, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., user ID availability), exclusions, or related tools for similar purposes, leaving the agent to infer usage context solely from the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
push_flex_messageB
Push a highly customizable flex message to a user via LINE. Supports both bubble (single container) and carousel (multiple swipeable bubbles) layouts.
| Name | Required | Description | Default |
|---|---|---|---|
| userId | No | The user ID to receive a message. Defaults to DESTINATION_USER_ID. | U1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p |
| message | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but lacks critical behavioral details. It doesn't disclose whether this requires specific permissions, rate limits, delivery guarantees, error conditions, or what happens if the user ID is invalid. The description mentions customization but doesn't explain constraints or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that are front-loaded with the core purpose and efficiently detail the supported layouts. Every word contributes to understanding the tool's functionality without redundancy or unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool (pushing messages) with no annotations, no output schema, and incomplete parameter documentation, the description is inadequate. It doesn't address behavioral aspects like authentication needs, error handling, or response format, leaving significant gaps for an AI agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only 'message.contents.type' has a description). The description adds value by explaining bubble vs. carousel layouts, which clarifies the enum values, but doesn't cover other parameters like userId or altText. It partially compensates for the schema gap but leaves key parameters undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Push'), resource ('flex message'), target ('to a user via LINE'), and key capabilities ('highly customizable', 'supports both bubble and carousel layouts'). It distinguishes from sibling tools like push_text_message by specifying the message type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like push_text_message, push_gemini_flex, or broadcast_flex_message. The description implies usage for flex messages but doesn't provide context about prerequisites, limitations, or comparison with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
push_gemini_flexA
Generate a LINE Flex message (bubble/carousel) from a natural language prompt using Gemini, then push it to a user.
| Name | Required | Description | Default |
|---|---|---|---|
| userId | No | The user ID to receive a message. Defaults to DESTINATION_USER_ID. | U1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p |
| prompt | Yes | Describe the Flex card you want. | |
| model | No | Gemini model name, e.g., gemini-2.0-flash | gemini-2.0-flash |
| altText | No | Alternative text for Flex message. | Generated card |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but lacks behavioral details. It mentions generation and pushing but doesn't disclose error handling, rate limits, authentication needs, whether messages are queued or sent immediately, or what happens if generation fails. The description doesn't contradict annotations (none exist), but provides minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that efficiently conveys the core functionality: generation using Gemini from natural language, then pushing to a user. Every word earns its place with zero waste or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter tool with no annotations and no output schema, the description is minimally complete. It covers the what (generate+push) but lacks details about behavioral aspects, error cases, or output format. Given the complexity of a two-step operation (Gemini generation + LINE push), more context about how these integrate would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema (e.g., doesn't explain prompt formatting best practices, model selection implications, or altText usage scenarios). Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Generate' and 'push') and resources ('LINE Flex message' and 'user'), distinguishing it from siblings like push_gemini_text (text only) and push_flex_message (no Gemini generation). It explicitly mentions using Gemini for generation from natural language, which is unique among push tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (when you want to generate and push a Flex message using Gemini), but doesn't explicitly state when to use this vs alternatives like push_flex_message (manual Flex creation) or push_gemini_text (text-only Gemini output). No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
push_gemini_textC
Generate text with Gemini and push it to a LINE user as a text message.
| Name | Required | Description | Default |
|---|---|---|---|
| userId | No | The user ID to receive a message. Defaults to DESTINATION_USER_ID. | U1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p |
| prompt | Yes | Prompt to send to Gemini | |
| model | No | Gemini model name, e.g., gemini-1.5-flash | gemini-1.5-flash |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions 'push' (implying a write operation) but doesn't specify permissions required, rate limits, error conditions, or what happens if the user ID is invalid. For a tool that sends messages and uses external AI, this is a significant gap in transparency about its operational behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core functionality. It wastes no words and directly communicates the tool's purpose without redundancy, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete for a tool that performs two complex actions (AI generation and messaging). It lacks details on error handling, response format, rate limits, or dependencies. For a 3-parameter tool with external integrations, this minimal description leaves too many operational questions unanswered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents parameters (userId, prompt, model). The description adds no additional semantic context beyond implying the prompt goes to Gemini and the message is sent to LINE. This meets the baseline of 3 since the schema does the heavy lifting, but the description doesn't enhance understanding of parameter roles or interactions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Generate text with Gemini and push it to a LINE user as a text message'), specifying both the AI generation and messaging components. It distinguishes from siblings like 'push_text_message' (which lacks Gemini) and 'push_gemini_flex' (which uses Flex messages), though it doesn't explicitly name these alternatives. The purpose is specific but could be more precise about differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'push_text_message' (for non-Gemini text) or 'push_gemini_flex' (for rich messages). It implies usage for Gemini-generated text to LINE users, but lacks explicit when/when-not rules or prerequisites, leaving the agent to infer context from sibling names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
push_messagesC
Push one or more LINE messages to a user (generic).
| Name | Required | Description | Default |
|---|---|---|---|
| userId | No | User ID to receive messages. Defaults to DESTINATION_USER_ID | U1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p |
| messages | Yes | Array of LINE messages (text/flex) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'push' messages but doesn't disclose behavioral traits like whether this requires specific permissions, rate limits, error handling, or what happens on success/failure. For a messaging tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It's appropriately sized and front-loaded, with zero wasted content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a messaging tool with no annotations and no output schema, the description is incomplete. It doesn't explain what 'push' entails operationally, return values, error conditions, or how it differs from sibling tools, leaving critical gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters thoroughly. The description adds no additional meaning about parameters beyond what's in the schema, such as explaining the 'generic' aspect or providing examples. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('push') and resource ('LINE messages to a user'), making the purpose understandable. However, it doesn't differentiate this 'generic' tool from its more specific siblings like push_text_message or push_flex_message, which would require a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like push_text_message and push_flex_message available, there's no indication whether this tool is preferred for mixed message types or other scenarios, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
push_text_messageB
Push a simple text message to a user via LINE. Use this for sending plain text messages without formatting.
| Name | Required | Description | Default |
|---|---|---|---|
| userId | No | The user ID to receive a message. Defaults to DESTINATION_USER_ID. | U1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p |
| message | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It mentions the action ('push') but lacks critical behavioral details: no information about authentication requirements, rate limits, error conditions, whether this is synchronous/asynchronous, or what happens on success/failure. The description is minimal and doesn't adequately disclose behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise: two sentences that directly state the tool's purpose and usage guidance. Every word earns its place with zero waste or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a message-sending tool with no annotations and no output schema, the description is insufficient. It doesn't cover important contextual aspects like response format, error handling, authentication needs, or rate limits. The description is too minimal given the tool's complexity and lack of structured metadata.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (userId has description, message.text has description, but message.type lacks description). The description adds no parameter-specific information beyond what's in the schema. With partial schema coverage, the description doesn't compensate for gaps, resulting in a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('push a simple text message') and resource ('to a user via LINE'), with the specific constraint 'without formatting'. It distinguishes from formatting-rich siblings like push_flex_message but doesn't explicitly differentiate from push_text_message (if it exists) or push_messages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides implied usage guidance: 'Use this for sending plain text messages without formatting.' This suggests when to use it (plain text) but doesn't explicitly state when not to use it or name alternatives like push_flex_message or push_messages from the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
query_mssqlA
Run a read-only MSSQL query (SELECT/WITH). Returns columns, rowCount, and sliced rows for preview.
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | Read-only SQL beginning with SELECT or WITH. Parameters as @name. | |
| params | No | Key-value parameters for @name placeholders in SQL. | |
| limit | No | Maximum rows to return (client-side slice). | |
| maxChars | No | Max characters in serialized preview. |
TDQS
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 does well by stating the tool is 'read-only' and describing the return format (columns, rowCount, sliced rows for preview), but lacks details on error handling, performance characteristics, or authentication requirements. It provides some context but leaves gaps for a database query tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded, consisting of a single sentence that efficiently communicates the tool's purpose, constraints, and output. Every word earns its place with no wasted information, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (database queries with 4 parameters) and no output schema, the description is moderately complete. It covers the basic operation and output format but lacks details on error cases, result limitations, or connection specifics. With no annotations and no output schema, it should do more to guide usage fully.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema (e.g., it doesn't explain SQL syntax or parameter binding further). Baseline score of 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('run a read-only MSSQL query') and resource ('MSSQL'), and distinguishes it from siblings by specifying it handles SELECT/WITH queries only. It explicitly mentions what it returns (columns, rowCount, sliced rows), making its function unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool (for read-only SELECT/WITH queries) and implies when not to use it (for non-read-only operations), but does not explicitly name alternatives or provide detailed exclusions. It gives basic guidance without being comprehensive about sibling tools.
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.
18 tool updates
v1.0.0- Changed
ai_query_mssql2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
broadcast_flex_message2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
broadcast_messages2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
broadcast_text_message2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
cancel_rich_menu_default1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
delete_rich_menu2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
export_mssql_knowledge2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
gemini_command2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_message_quota1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
get_profile2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
get_rich_menu_list1 field changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#"
- Changed
push_flex_message2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
push_gemini_flex2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
push_gemini_text2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
push_messages2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
push_text_message2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
query_mssql2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
- Changed
set_rich_menu_default2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / additionalPropertiesAdded value: +false
18 tool updates
- First observed
ai_query_mssql - First observed
broadcast_flex_message - First observed
broadcast_messages - First observed
broadcast_text_message - First observed
cancel_rich_menu_default - First observed
delete_rich_menu - First observed
export_mssql_knowledge - First observed
gemini_command - First observed
get_message_quota - First observed
get_profile - First observed
get_rich_menu_list - First observed
push_flex_message - First observed
push_gemini_flex - First observed
push_gemini_text - First observed
push_messages - First observed
push_text_message - First observed
query_mssql - First observed
set_rich_menu_default
TDQS
There is significant overlap between broadcast/push variants (e.g., broadcast_text_message vs broadcast_messages vs broadcast_flex_message) and between Gemini-integrated tools (gemini_command vs push_gemini_flex vs push_gemini_text vs ai_query_mssql), which could lead to confusion about which tool to use for similar tasks. However, the descriptions help clarify some distinctions, such as between generic and specific message types.
Most tools follow a consistent snake_case verb_noun pattern (e.g., broadcast_text_message, get_profile, delete_rich_menu), with clear actions like broadcast, push, get, set, delete, query, and export. Minor deviations include ai_query_mssql (starts with 'ai_') and gemini_command (uses 'command' instead of a more specific verb), but overall the naming is predictable and readable.
With 18 tools, the count feels borderline heavy for a LINE bot server, as it includes many overlapping or specialized variants (e.g., multiple broadcast and push tools). While the scope covers messaging, user management, rich menus, and database queries, the set could be streamlined without losing functionality, making it slightly overwhelming for an agent to navigate.
The tool surface provides good coverage for LINE bot operations, including messaging (broadcast/push with text/flex), user profile retrieval, rich menu management (list/set/cancel/delete), and database queries (MSSQL with AI integration). Minor gaps include lack of tools for updating user data or handling webhook events, but core workflows are well-supported, allowing agents to perform essential tasks without major dead ends.
Maintenance
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
Messaging tools for AI agents: send messages, manage chats, groups and channels.
Build and send email, SMS, and push straight from your AI agent.
Instagram for AI agents: publish, read comments and DMs, insights, and engage from your account.
Schedule and publish social media posts to 10 platforms from your AI agent
Related MCP Servers
- FlicenseBqualityDmaintenanceEnables AI assistants to send LINE messages, including text, stamps, Flex Messages, and check message quotas through the LINE Messaging API.1-
- AlicenseAqualityDmaintenanceIntegrates the LINE Messaging API with AI agents via the Model Context Protocol, supporting both stdio and SSE transport protocols. It allows agents to send messages, manage rich menus, and retrieve user profile information for LINE Official Accounts.10630Apache 2.0
- AlicenseAqualityDmaintenanceAI-powered MCP server for managing LINE Official Accounts. Send broadcasts, push messages, check analytics, manage rich menus — all through natural language via Claude, ChatGPT, or Cursor. 10 tools included: * Account info, friend count, message quota * Broadcast, push message, multicast * Delivery stats, user profiles, follower list * Rich menu management Supports 95M+ LINE users across Jap10MIT
- AlicenseAqualityBmaintenanceOperate your LINE Official Account from any AI agent through natural language.378297MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/tndfame/mcp_management'
If you have feedback or need assistance with the MCP directory API, please join our Discord server