Skip to main content
Glama
Kartha-AI

MCP Server for Google Cloud Healthcare API

by Kartha-AI

search-trials

Search ClinicalTrials.gov for studies matching specified medical conditions and locations. Helps users identify relevant clinical trials efficiently.

Instructions

Search ClinicalTrials.gov for relevant studies

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
conditionYes
locationNo

Implementation Reference

  • Core implementation of the 'search-trials' tool: extracts parameters, applies caching, queries ClinicalTrials.gov API via searchTrials, and returns formatted JSON results.
    async getTrials(args: any, cache: CacheManager) {
        const { condition, location } = args;
        const cacheKey = cache.createKey('trials', { condition, location });
        
        const trials = await cache.getOrFetch(
          cacheKey,
          () => this.searchTrials(condition, location)
        );
    
        return {
          content: [{
            type: 'text',
            text: JSON.stringify(trials, null, 2)
          }]
        };
    }
  • Defines the tool metadata and input schema validation for 'search-trials'.
      name: 'search-trials',
      description: 'Search ClinicalTrials.gov for relevant studies',
      inputSchema: {
        type: 'object',
        properties: {
          condition: { type: 'string' },
          location: { type: 'string' }
        },
        required: ['condition']
      }
    },
  • Registers MCP handlers for listTools (returns tool definitions including search-trials) and callTool requests.
    register(mcpServer: Server) {
      mcpServer.setRequestHandler(ListToolsRequestSchema, this.handleList);
      mcpServer.setRequestHandler(CallToolRequestSchema, this.handleCall);
    }
    
    private handleList = async () => ({
      tools: TOOL_DEFINITIONS
    });
  • Dispatcher in callTool handler that routes 'search-trials' invocations to the ClinicalTrials API implementation.
    case "search-trials":
      return await this.trialsApi.getTrials(request.params.arguments,this.cache);
Behavior2/5

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 searching ClinicalTrials.gov but doesn't describe what the search returns (e.g., study details, summaries), whether there are rate limits, authentication requirements, or how results are formatted. This leaves significant gaps for a search tool.

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, efficient sentence with no wasted words. It's appropriately sized for a basic search tool and gets straight to the point without unnecessary elaboration.

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?

For a search tool with 2 parameters, 0% schema coverage, no annotations, and no output schema, the description is inadequate. It doesn't explain what the tool returns, how parameters work, or behavioral aspects like rate limits or result structure, leaving too many unknowns for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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 but provides no parameter information. It doesn't explain what 'condition' and 'location' parameters represent (e.g., medical condition names, geographic locations), their expected formats, or how they affect the search. This leaves both parameters undocumented.

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 clearly states the action ('Search') and target resource ('ClinicalTrials.gov for relevant studies'), making the purpose unambiguous. However, it doesn't differentiate from its sibling 'search-pubmed', which also searches a medical database but for different content.

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 is provided about when to use this tool versus alternatives like 'search-pubmed' or other sibling tools. The description only states what it does, not when it's appropriate or what distinguishes it from similar tools.

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

Related 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/Kartha-AI/google-cloud-healthcare-api-mcp'

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