Skip to main content
Glama
BACH-AI-Tools

Clinical Trials MCP Server

search_by_date_range

Find clinical trials by filtering based on start or completion date ranges to identify studies within specific timeframes.

Instructions

Search clinical trials by start or completion date range

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
startDateFromNoStart date from (YYYY-MM-DD format)
startDateToNoStart date to (YYYY-MM-DD format)
completionDateFromNoPrimary completion date from (YYYY-MM-DD format)
completionDateToNoPrimary completion date to (YYYY-MM-DD format)
conditionNoOptional condition filter
pageSizeNoNumber of results to return (default 10, max 100)

Implementation Reference

  • Handler function for search_by_date_range tool.
    private async handleSearchByDateRange(args: any) {
      const params: any = {
        format: "json",
        pageSize: args?.pageSize || 10,
      };
    
      if (args?.startDateFrom) {
        params["filter.studyStartDateFrom"] = args.startDateFrom;
      }
    
      if (args?.startDateTo) {
        params["filter.studyStartDateTo"] = args.startDateTo;
      }
    
      if (args?.completionDateFrom) {
        params["filter.primaryCompletionDateFrom"] = args.completionDateFrom;
      }
    
      if (args?.completionDateTo) {
        params["filter.primaryCompletionDateTo"] = args.completionDateTo;
      }
    
      if (args?.condition) {
        params["query.cond"] = args.condition;
      }
    
      try {
        const response: AxiosResponse<StudySearchResponse> =
          await this.axiosInstance.get("/studies", { params });
    
        const studies = response.data.studies || [];
        const results = studies.map((study) => ({
          ...this.formatStudySummary(study),
          dates: {
            startDate: study.protocolSection.statusModule.startDateStruct?.date,
            primaryCompletionDate:
              study.protocolSection.statusModule.primaryCompletionDateStruct
                ?.date,
          },
        }));
    
        return {
          content: [
            {
              type: "text",
              text: JSON.stringify(
                {
                  searchCriteria: {
                    startDateFrom: args?.startDateFrom,
                    startDateTo: args?.startDateTo,
                    completionDateFrom: args?.completionDateFrom,
                    completionDateTo: args?.completionDateTo,
                    condition: args?.condition,
                  },
                  totalCount: response.data.totalCount || 0,
                  resultsShown: results.length,
                  studies: results,
                },
                null,
                2
              ),
            },
          ],
        };
      } catch (error) {
        if (axios.isAxiosError(error)) {
          return {
            content: [
              {
                type: "text",
                text: `Clinical Trials API error: ${
                  error.response?.data?.message || error.message
                }`,
              },
            ],
            isError: true,
          };
        }
        throw error;
      }
    }
  • src/index.ts:397-436 (registration)
    Schema registration for search_by_date_range tool.
      name: "search_by_date_range",
      description:
        "Search clinical trials by start or completion date range",
      inputSchema: {
        type: "object",
        properties: {
          startDateFrom: {
            type: "string",
            description: "Start date from (YYYY-MM-DD format)",
            pattern: "^\\d{4}-\\d{2}-\\d{2}$",
          },
          startDateTo: {
            type: "string",
            description: "Start date to (YYYY-MM-DD format)",
            pattern: "^\\d{4}-\\d{2}-\\d{2}$",
          },
          completionDateFrom: {
            type: "string",
            description: "Primary completion date from (YYYY-MM-DD format)",
            pattern: "^\\d{4}-\\d{2}-\\d{2}$",
          },
          completionDateTo: {
            type: "string",
            description: "Primary completion date to (YYYY-MM-DD format)",
            pattern: "^\\d{4}-\\d{2}-\\d{2}$",
          },
          condition: {
            type: "string",
            description: "Optional condition filter",
          },
          pageSize: {
            type: "number",
            description:
              "Number of results to return (default 10, max 100)",
            minimum: 1,
            maximum: 100,
          },
        },
      },
    },

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/BACH-AI-Tools/ClinicalTrials-MCP-Server'

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