Informa Events Directory MCP Server

Informa Events Directory MCP Server

Enables querying and retrieving structured event data from the Informa Connect event directory, with support for various filters, pagination, and speaker extraction.

Category
Visit Server

README

Informa Events Directory MCP Server

MCP server for querying and retrieving structured event data from the Informa Connect event directory.

Available Tools

Default (always available):

  1. get_informa_events Returns normalized events across all pages (API-first, HTML fallback).

  2. get_informa_events_page Returns a single directory page with normalized results.

  3. get_informa_events_by_date_range Returns normalized events constrained by dateFrom / dateTo.

  4. list_informa_event_facets Returns raw and simplified facet/filter metadata for the current query context.

  5. find_informa_event Finds one event by id, slug, url, or name.

  6. get_informa_event_detail Fetches one event page and extracts richer detail (JSON-LD event data, offers/pricing hints, contact hints, speaker extraction).

  7. get_informa_events_with_details Fetches directory events and bulk-enriches each with event-page details using configurable concurrency (including speaker extraction).

  8. get_informa_events_chunk Cursor-based chunked retrieval for large exports to avoid oversized single responses.

  9. get_informa_event_speakers Fetches one event page and returns speaker records only, with source selection (merged, jsonld, redux).

Feature-flagged (disabled by default):

  1. get_informa_discovery_suggestions (feature-flagged) Calls the discovery suggestions endpoint and returns raw JSON.

  2. search_informa_module_speakers (feature-flagged) Calls the discovery module speakers endpoint and returns raw JSON.

  3. search_informa_module_spex (feature-flagged) Calls the discovery module spex endpoint and returns raw JSON.

Core Retrieval Behavior

  • Primary data source: POST https://informaconnect.com/api/v1/discovery/hub-search/pages/events
  • Fallback source: parse window.__REDUX_STORE__ from HTML pages
  • API payload optimization:
    • includeFacets=false (default) sends a disabled facetsConfig to reduce payload size
    • includeFacets=true enables facet payloads when needed
  • Chunk export support:
    • get_informa_events_chunk returns hasMore + nextCursor
    • cursor can be passed back to continue where the previous chunk stopped
  • Pagination stop conditions:
    • Empty page
    • Reached reported totalPages
    • maxPages safety cap
    • Two consecutive pages with no new unique events
  • Retry/backoff for 429 and 5xx
  • Missing fields normalize to null or empty arrays

Normalized Event Output

Each normalized event includes (if available):

  • eventName
  • eventUrl
  • description
  • location.city
  • location.venue
  • location.country
  • startDate
  • endDate
  • eventType
  • subBrand
  • industryOrCategory
  • pricing (currently usually null in discovery responses)
  • contactInfo (currently usually null in discovery responses)

Plus additional enrichment fields (eventId, sectors, topics, deliveryTypes, etc.).

For detail tools, the event-detail payload also includes:

  • speakers[] (merged/deduped from JSON-LD performer and Redux speakers when available)
  • speakerSources (counts by source and total)

For speaker-only retrieval (get_informa_event_speakers), the response includes:

  • speakers[]
  • speakerCount
  • speakerSource (requested mode)
  • speakerSources (available totals by source)
  • eventMeta (event name, dates, and location)

When responseMode is set to "slim", each event is reduced to:

  • eventId
  • eventName
  • eventUrl
  • startDate
  • endDate
  • location
  • eventType
  • subBrand
  • sectors
  • topics
  • deliveryTypes

When responseMode is set to "summary", each event is reduced further to:

  • eventId
  • eventName
  • eventUrl
  • startDate
  • endDate
  • city
  • country
  • venue
  • eventType
  • subBrand
  • deliveryTypes

Install

npm install
npm run build

MCP Config Example

Use [mcp-config.example.json](/Users/william.kitchin/Library/Mobile Documents/com~apple~CloudDocs/Codex Projects/Informa Events Directory MCP Server/mcp-config.example.json).

Example:

{
  "mcpServers": {
    "informa-events-directory": {
      "command": "/absolute/path/to/informa-events-directory-mcp/build/index.js"
    }
  }
}

Example Calls

1) Full crawl

{
  "tool": "get_informa_events",
  "arguments": {
    "pageSize": 100,
    "maxPages": 50,
    "subBrandFilter": "Informa Connect",
    "eventTypeFilter": "EVENT",
    "requestedSortType": "DATE",
    "includeFacets": false,
    "responseMode": "slim"
  }
}

2) Single page fetch

{
  "tool": "get_informa_events_page",
  "arguments": {
    "page": 2,
    "pageSize": 20
  }
}

3) Date-range query

{
  "tool": "get_informa_events_by_date_range",
  "arguments": {
    "dateFrom": "2026-08-01",
    "dateTo": "2026-08-31",
    "pageSize": 100,
    "maxPages": 20,
    "countryFilter": "US",
    "responseMode": "slim"
  }
}

4) Find an event by slug

{
  "tool": "find_informa_event",
  "arguments": {
    "identifier": "imn-btr-spring",
    "identifierType": "slug",
    "includeDetail": true
  }
}

5) Fetch event detail page

{
  "tool": "get_informa_event_detail",
  "arguments": {
    "slug": "imn-btr-spring",
    "includeDirectoryRecord": true
  }
}

Detail response includes detail.speakers and detail.speakerSources when speaker metadata is present on the event page.

6) Bulk enrich many events with detail pages

{
  "tool": "get_informa_events_with_details",
  "arguments": {
    "pageSize": 20,
    "maxPages": 5,
    "detailMaxEvents": 40,
    "detailConcurrency": 3,
    "stopOnDetailError": false
  }
}

7) Cursor-based chunk retrieval

{
  "tool": "get_informa_events_chunk",
  "arguments": {
    "pageSize": 100,
    "chunkPages": 2,
    "requestedSortType": "DATE",
    "responseMode": "summary",
    "includeFacets": false
  }
}

Then continue with returned nextCursor:

{
  "tool": "get_informa_events_chunk",
  "arguments": {
    "cursor": "<nextCursor-from-previous-response>",
    "chunkPages": 2
  }
}

8) Suggestions endpoint (feature-flagged)

{
  "tool": "get_informa_discovery_suggestions",
  "arguments": {
    "searchInput": "biotech",
    "pageSize": 5
  }
}

9) Event speakers (single event)

{
  "tool": "get_informa_event_speakers",
  "arguments": {
    "slug": "pharma-forum",
    "speakerSource": "merged"
  }
}

10) Speakers module endpoint (feature-flagged)

{
  "tool": "search_informa_module_speakers",
  "arguments": {
    "speakers": [
      {
        "siteId": "example-site-id",
        "contentType": "SPEAKER",
        "displayType": "LIST"
      }
    ]
  }
}

11) Spex module endpoint (feature-flagged)

{
  "tool": "search_informa_module_spex",
  "arguments": {
    "spexs": [{ "eventId": "c8b90e9b-548d-44a5-823f-f01ed5d08c13" }]
  }
}

Useful Query Parameters

  • includeFacets (boolean, default false): include discovery facets in API responses
  • responseMode ("full" | "slim" | "summary", default "full"): control event payload size
  • countryFilter (string | string[]): alias merged into locationFilter
  • deliveryTypeFilter (string | string[]): e.g. "PHYSICAL", "VIRTUAL", "ON_DEMAND"
  • sectorsFilter, topicsFilter, locationFilter: facet-driven filtering inputs
  • cursor + chunkPages: resume and control chunk-sized retrieval with get_informa_events_chunk
  • speakerSource ("merged" | "jsonld" | "redux"): source selection for get_informa_event_speakers

Speaker Retrieval Notes

  • get_informa_event_speakers is the recommended tool when you only need speaker data.
  • Speaker extraction works from event-page HTML, not directory listing API pages.
  • Source priority for quality is typically JSON-LD performer, then Redux speakers.
  • speakerSource="merged" returns deduped speakers from both sources.

Response Metadata Notes

For multi-page tools (get_informa_events, get_informa_events_by_date_range, get_informa_events_with_details), response metadata includes:

  • totalResultsReported and apiReportedTotalCount
  • totalPagesReported and apiReportedTotalPages
  • isComplete (whether retrieval completed naturally vs. capped by maxPages)

Optional Environment Variables

INFORMA_ENTRY_URL="https://informaconnect.com/events/?subBrands%5B0%5D=Informa%20Connect&availableSubBrands%5B0%5D=Informa%20Connect&requestedSortType=FEATURED&page=1&count=20&searchInput=&type%5B0%5D=EVENT"
INFORMA_ORIGIN="https://informaconnect.com"
INFORMA_DEFAULT_PAGE_SIZE=20
INFORMA_DEFAULT_MAX_PAGES=200
INFORMA_REQUEST_TIMEOUT_MS=15000
INFORMA_MAX_RETRIES=4
INFORMA_ENABLE_SUGGESTIONS_TOOL=false
INFORMA_ENABLE_MODULE_TOOLS=false

Set INFORMA_ENABLE_SUGGESTIONS_TOOL=true and/or INFORMA_ENABLE_MODULE_TOOLS=true to expose the optional discovery tools.

Limitations

  • Discovery API is unofficial and may change.
  • Some event metadata (pricing/contact) is not consistently present in discovery payloads.
  • Facet metadata may be empty for some query contexts.
  • HTML fallback relies on Redux state being embedded in the page.
  • Anti-bot/CDN protections can affect reliability at higher request volume.
  • modules/speakers request shape is not publicly documented and may return 422 unless exact speaker payload objects are provided.
  • Speaker extraction quality depends on event-page metadata consistency; JSON-LD performer is usually the cleanest source.
  • search_informa_module_speakers is included for experimentation, but event-page speaker extraction is currently the more reliable path.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured