Skip to main content
Glama

research

Perform real-time research on any topic using natural language queries. Get structured results with summaries, key facts, cited sources, and confidence scores.

Instructions

Perform real-time research on any topic using AgentOracle. Returns structured results with summary, key facts, cited sources, and confidence score. Costs $0.02 USDC per query via x402 on Base mainnet.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYesNatural language research question. Examples: 'What are the latest AI chip architectures?', 'Compare React vs Vue in 2026', 'Latest funding rounds in autonomous agents space'

Implementation Reference

  • The handler function for the 'research' tool in AgentOracle MCP, which makes a POST request to the research endpoint and handles potential payment requirements.
    async ({ query }) => {
      try {
        const response = await fetch(RESEARCH_ENDPOINT, {
          method: "POST",
          headers: { "Content-Type": "application/json" },
          body: JSON.stringify({ query }),
        });
    
        if (response.status === 402) {
          const paymentInfo = await response.json();
          return {
            content: [
              {
                type: "text",
                text: JSON.stringify(
                  {
                    status: "payment_required",
                    message: "This query requires a $0.02 USDC payment on Base mainnet via x402 protocol.",
                    instructions: "Use an x402-compatible client to sign a USDC payment and include it in the X-PAYMENT header.",
                    payment_details: paymentInfo,
                    endpoint: RESEARCH_ENDPOINT,
                    manifest: MANIFEST_ENDPOINT,
                  },
                  null,
                  2
                ),
              },
            ],
          };
        }
    
        if (!response.ok) {
          const errorData = await response.json().catch(() => ({}));
          return {
            content: [{ type: "text", text: `Research request failed (HTTP ${response.status}): ${JSON.stringify(errorData)}` }],
            isError: true,
          };
        }
    
        const data = await response.json();
        return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
      } catch (error) {
        return {
          content: [{ type: "text", text: `Error connecting to AgentOracle: ${error instanceof Error ? error.message : String(error)}` }],
          isError: true,
        };
      }
    }
  • src/index.ts:23-82 (registration)
    Registration of the 'research' tool with its schema definition and handler.
    server.tool(
      "research",
      "Perform real-time research on any topic using AgentOracle. Returns structured results with summary, key facts, cited sources, and confidence score. Costs $0.02 USDC per query via x402 on Base mainnet.",
      {
        query: z
          .string()
          .max(2000)
          .describe(
            "Natural language research question. Examples: 'What are the latest AI chip architectures?', 'Compare React vs Vue in 2026', 'Latest funding rounds in autonomous agents space'"
          ),
      },
      async ({ query }) => {
        try {
          const response = await fetch(RESEARCH_ENDPOINT, {
            method: "POST",
            headers: { "Content-Type": "application/json" },
            body: JSON.stringify({ query }),
          });
    
          if (response.status === 402) {
            const paymentInfo = await response.json();
            return {
              content: [
                {
                  type: "text",
                  text: JSON.stringify(
                    {
                      status: "payment_required",
                      message: "This query requires a $0.02 USDC payment on Base mainnet via x402 protocol.",
                      instructions: "Use an x402-compatible client to sign a USDC payment and include it in the X-PAYMENT header.",
                      payment_details: paymentInfo,
                      endpoint: RESEARCH_ENDPOINT,
                      manifest: MANIFEST_ENDPOINT,
                    },
                    null,
                    2
                  ),
                },
              ],
            };
          }
    
          if (!response.ok) {
            const errorData = await response.json().catch(() => ({}));
            return {
              content: [{ type: "text", text: `Research request failed (HTTP ${response.status}): ${JSON.stringify(errorData)}` }],
              isError: true,
            };
          }
    
          const data = await response.json();
          return { content: [{ type: "text", text: JSON.stringify(data, null, 2) }] };
        } catch (error) {
          return {
            content: [{ type: "text", text: `Error connecting to AgentOracle: ${error instanceof Error ? error.message : String(error)}` }],
            isError: true,
          };
        }
      }
    );
Behavior4/5

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 effectively describes key behavioral traits: the tool performs real-time research, returns structured results with specific components (summary, key facts, cited sources, confidence score), and has a cost of $0.02 USDC per query via x402 on Base mainnet. This covers important operational aspects beyond basic functionality.

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 efficiently structured in two sentences that each earn their place: the first explains the core functionality and output format, the second discloses the cost mechanism. There's zero wasted text and it's appropriately front-loaded with the most important information.

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

Completeness4/5

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

For a single-parameter tool with no annotations and no output schema, the description provides substantial context about behavior, output format, and cost. It could be slightly more complete by explicitly mentioning the 'deep-research' sibling tool alternative, but overall it's quite comprehensive given the tool's complexity level.

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?

The schema description coverage is 100% with comprehensive documentation of the single 'query' parameter including examples. The description doesn't add any parameter-specific information beyond what's already in the schema, so it meets the baseline expectation 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('perform real-time research'), resource ('any topic using AgentOracle'), and distinguishes from siblings by specifying the structured result format and cost mechanism. It goes beyond just restating the name 'research' to explain what the tool actually does.

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

Usage Guidelines4/5

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

The description provides clear context about when to use this tool ('perform real-time research on any topic') and mentions the cost per query, which helps users understand usage implications. However, it doesn't explicitly differentiate when to use this versus the 'deep-research' sibling tool, which appears to be a related alternative.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/TKCollective/agentoracle-mcp'

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