Dandelion is a fair source project. View the code on Github

Commits on Feb 26, 2026
0dfe338

♻️ (lib/mcp.rb): rename tool names to follow naming convention by adding _tool suffix

c003c58

✨ (mcp.rb): add limit parameter to trending and upcoming organisation events endpoints

ae45f0b

✨ (mcp): add get_trending_events MCP tool for retrieving trending events

This commit introduces a new MCP tool that allows AI assistants to fetch trending events with a configurable limit (default 20, max 100). The documentation has also been updated to reflect this new capability alongside existing MCP features.

5d2cee1

📝 (AGENTS.md): update MongoDB section heading and add Mongoid configuration info

801ea8d

🔥 (lib/mcp.rb): remove post_process deduplication logic from search results

8c234f8

♻️ Remove conditional with_public_includes from search scope in Dandelion module

1e725e5

♻️ Refactor event data mapping to use configurable fields instead of hardcoded public_data method

0110f50

✨ (lib/mcp.rb): add separate search_fields and get_fields configs for Event model

The change allows different fields to be returned for search results versus individual record retrieval. Search results now include additional fields like url, start_time, end_time, and location while get operations continue to use public_data.

54ae806

✨ (lib/mcp.rb): add configurable limit parameter to search functionality with validation

Add a limit parameter to perform_search method that clamps values between 1 and 100, defaulting to 20. Expose this parameter in the search tool's input schema to allow users to control the number of results returned. Also fix grammar in instructions by removing unnecessary Oxford comma.

9001cfe

♻️ (lib/mcp.rb): remove location, bio, and intro fields from search index to reduce exposed data

345c298

📝 (mcp.md): simplify documentation structure and clarify lookup capabilities

145a1d1

🐛 (lib/mcp.rb): add missing tool_name to MCP tool configuration

ffb2fd4

♻️ Convert TOOLS, SERVER, and HTTP_TRANSPORT constants to lazy-loaded methods

Improve startup time by deferring initialization of MCP tools and server until they are actually needed instead of loading them at module load time.

f19794b

🐛 (docs): fix 'MCP' slug display name to show as 'MCP' instead of 'Mcp'
♻️ (mcp): refactor CONFIG to use string keys instead of class constants for better compatibility

8f67dfd

✨ (mcp): add get upcoming organisation events tool
🐛 (mcp): fix is_error parameter to error in response object
📝 (mcp.md): document new MCP capability

d726a33

✨ (mcp.rb, event_serialization.rb): add url field to Account, Organisation, Gathering and Event models

177a500

♻️ Refactor search scope logic into model classes

Move search scope definitions from config/helper files to dedicated search_scope class methods on each model (Account, Event, Gathering, Organisation). This eliminates duplication and centralizes data retrieval logic in the models. Also adds with_public_includes for Event scope in MCP.

33ec630

✨ (app): add Model Context Protocol (MCP) support for AI assistants to query Dandelion data

This commit introduces MCP integration allowing AI assistants to search and look up events, organisations, gatherings, and accounts through a standardized protocol. The implementation includes:

  • New MCP gem dependency and CORS configuration for /mcp endpoint
  • Dynamic tool generation for search and get operations across Event, Account, Organisation, and Gathering models
  • HTTP transport setup to handle MCP requests at /mcp route
  • Documentation for users to configure their AI assistants with Dandelion MCP server
089ad89

🐛 Fix password being regenerated on existing account updates

56f8e44

🔒️ (accounts): remove password from mass assignment and set it explicitly to prevent security vulnerability