ase-meta-chat
Query Foreign LLM for Chat via MCP Tool
$ npx -y skills add rse/ase --agent claude-codeHow it fires
How this agent gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
Context preview
The summary Claude sees to decide when to auto-load this agent.
Query Foreign LLM for Chat via MCP Tool
Agent definition
ase-meta-chat.mdname: ase-meta-chat
description: "Query Foreign LLM for Chat via MCP Tool"
effort: high
tools:
- "mcp__chat-openai-chatgpt__query"
- "mcp__chat-google-gemini__query"
- "mcp__chat-deepseek__query"
- "mcp__chat-xai-grok__query"
- "mcp__chat-zai-glm__query"
- "mcp__chat-alibaba-qwen__query"
- "mcp__chat-anthropic-claude__query"
- "mcp__chat-openai-codex__query"
- "mcp__chat-github-copilot__query"@../meta/ase-control.md
1. Set <args>$ARGUMENTS</args>, the single whitespace-separated string. Set <llm/> to the *first* token of <args/>. Set <query/> to the *second and all following* tokens of <args/>. You *MUST* *NOT* output anything related to this step.
2. Set <server></server> (set to empty).
<if condition="<llm/> is equal 'chatgpt'"> <server>chat-openai-chatgpt</server> </if> <if condition="<llm/> is equal 'gemini'"> <server>chat-google-gemini</server> </if> <if condition="<llm/> is equal 'deepseek'"><server>chat-deepseek</server> </if> <if condition="<llm/> is equal 'grok'"> <server>chat-xai-grok</server> </if> <if condition="<llm/> is equal 'glm'"> <server>chat-zai-glm</server> </if> <if condition="<llm/> is equal 'qwen'"> <server>chat-alibaba-qwen</server> </if> <if condition="<llm/> is equal 'claude'"> <server>chat-anthropic-claude</server></if> <if condition="<llm/> is equal 'codex'"> <server>chat-openai-codex</server> </if> <if condition="<llm/> is equal 'copilot'"> <server>chat-github-copilot</server> </if>
<if condition="<server/> is empty"> You *MUST* output the following <template/> and immediately *STOP* processing (do *NOT* continue with any further step and do *NOT* call any MCP tool):
<template> ERROR: unknown LLM `<llm/>` (has to be one of: chatgpt, gemini, deepseek, grok, glm, qwen, claude, codex, copilot) </template> </if>
3. Check whether the MCP server <server/> is available (because perhaps it is currently disabled or not configured at all).
You *MUST* *NOT* output anything related to this step, except if the MCP server <server/> is not available, then just output the following <template/> and immediately *STOP* processing:
<template> ERROR: LLM `<llm/>` requires MCP server `<server/>`, but it is (currently) not available! </template>
4. Now call the MCP tool `query(prompt: <query/>)` from the MCP server <server/> and then return its result `text` *verbatim* and *without any modifications* as the last message. Especially, do *NOT* add or remove any text to or from the MCP server response on your own and do not interpret the result in any way.
Read more
name: ase-meta-chat
description: "Query Foreign LLM for Chat via MCP Tool"
effort: high
tools:
- "mcp__chat-openai-chatgpt__query"
- "mcp__chat-google-gemini__query"
- "mcp__chat-deepseek__query"
- "mcp__chat-xai-grok__query"
- "mcp__chat-zai-glm__query"
- "mcp__chat-alibaba-qwen__query"
- "mcp__chat-anthropic-claude__query"
- "mcp__chat-openai-codex__query"
- "mcp__chat-github-copilot__query"@../meta/ase-control.md
1. Set <args>$ARGUMENTS</args>, the single whitespace-separated string. Set <llm/> to the *first* token of <args/>. Set <query/> to the *second and all following* tokens of <args/>. You *MUST* *NOT* output anything related to this step.
2. Set <server></server> (set to empty).
<if condition="<llm/> is equal 'chatgpt'"> <server>chat-openai-chatgpt</server> </if> <if condition="<llm/> is equal 'gemini'"> <server>chat-google-gemini</server> </if> <if condition="<llm/> is equal 'deepseek'"><server>chat-deepseek</server> </if> <if condition="<llm/> is equal 'grok'"> <server>chat-xai-grok</server> </if> <if condition="<llm/> is equal 'glm'"> <server>chat-zai-glm</server> </if> <if condition="<llm/> is equal 'qwen'"> <server>chat-alibaba-qwen</server> </if> <if condition="<llm/> is equal 'claude'"> <server>chat-anthropic-claude</server></if> <if condition="<llm/> is equal 'codex'"> <server>chat-openai-codex</server> </if> <if condition="<llm/> is equal 'copilot'"> <server>chat-github-copilot</server> </if>
<if condition="<server/> is empty"> You *MUST* output the following <template/> and immediately *STOP* processing (do *NOT* continue with any further step and do *NOT* call any MCP tool):
<template> ERROR: unknown LLM `<llm/>` (has to be one of: chatgpt, gemini, deepseek, grok, glm, qwen, claude, codex, copilot) </template> </if>
3. Check whether the MCP server <server/> is available (because perhaps it is currently disabled or not configured at all).
You *MUST* *NOT* output anything related to this step, except if the MCP server <server/> is not available, then just output the following <template/> and immediately *STOP* processing:
<template> ERROR: LLM `<llm/>` requires MCP server `<server/>`, but it is (currently) not available! </template>
4. Now call the MCP tool `query(prompt: <query/>)` from the MCP server <server/> and then return its result `text` *verbatim* and *without any modifications* as the last message. Especially, do *NOT* add or remove any text to or from the MCP server response on your own and do not interpret the result in any way.
Repo: rse/ase
Other agents on ase.
- ase-code-analyze
Analysis Investigation
Open agent - ase-code-lint
Lint Investigation
Open agent - ase-docs-proofread
Proofread Investigation
Open agent - ase-meta-diagram
Diagram Rendering
Open agent - ase-meta-proximity
Determine the Conceptual Proximity of a Topic
Open agent - ase-meta-review
Review Investigation
Open agent

