Skip to main content
Glama

ask_claude

Ask Claude questions about saved contexts or get general second opinions to clarify information and verify understanding.

Instructions

Ask Claude a question about a context entry, or get a general second opinion

Input Schema

NameRequiredDescriptionDefault
context_idYesContext ID to ask about
questionNoOptional specific question to ask about the context. If not provided, gets a general second opinion.

Input Schema (JSON Schema)

{ "properties": { "context_id": { "description": "Context ID to ask about", "type": "string" }, "question": { "description": "Optional specific question to ask about the context. If not provided, gets a general second opinion.", "type": "string" } }, "required": [ "context_id" ], "type": "object" }

Implementation Reference

  • Main handler logic for the 'ask_claude' tool: retrieves context by ID, instantiates ClaudeClient, calls get_second_opinion, optionally stores response, and returns formatted output.
    if name == "ask_claude": context_id = arguments["context_id"] question = arguments.get("question") context = self.storage.get_context(context_id) if not context: return [TextContent(type="text", text=f"Context {context_id} not found")] try: claude_client = ClaudeClient() response = claude_client.get_second_opinion(context, question) # Only save to database if it's a generic second opinion (no custom question) if not question: self.storage.update_claude_response(context_id, response) header = "Claude's Answer:" if question else "Claude's Opinion:" return [TextContent(type="text", text=f"{header}\n\n{response}")] except ValueError as e: return [TextContent(type="text", text=f"Error: {e}")]
  • Tool schema definition including name, description, and input schema requiring 'context_id' and optional 'question'.
    Tool( name="ask_claude", description="Ask Claude a question about a context entry, or get a general second opinion", inputSchema={ "type": "object", "properties": { "context_id": {"type": "string", "description": "Context ID to ask about"}, "question": { "type": "string", "description": ( "Optional specific question to ask about the context. If not provided, gets a general second opinion." ), }, }, "required": ["context_id"], }, ),
  • Core helper function in ClaudeClient that formats the context prompt and calls the Anthropic Claude API to generate the response.
    def get_second_opinion(self, context: ContextEntry, question: str | None = None) -> str: """Get Claude's second opinion on a context, or answer a specific question. Args: context: The context entry to analyze question: Optional specific question to ask. If None, provides general second opinion. """ if question: # Custom question mode system_prompt = """You are a senior software engineering consultant answering questions about code, \ architecture decisions, and implementation plans. Provide clear, actionable answers based on the context provided.""" user_content = self._format_context_for_claude(context, question) else: # Generic second opinion mode system_prompt = """You are a senior software engineering consultant providing second opinions on code, \ architecture decisions, and implementation plans. Your role is to: - Provide constructive, balanced feedback - Highlight both strengths and potential issues - Suggest alternatives when appropriate - Point out edge cases or security concerns - Be concise but thorough Format your response clearly with sections as needed.""" user_content = self._format_context_for_claude(context) response = self.client.messages.create( model=self.model, max_tokens=4096, system=system_prompt, messages=[ {"role": "user", "content": user_content}, ], temperature=0.7, ) if response.content and isinstance(response.content[0], TextBlock): return response.content[0].text return ""

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/taylorleese/mcp-toolz'

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