tools

package
v0.3.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 19, 2026 License: MIT Imports: 14 Imported by: 0

Documentation

Overview

Package tools provides MCP tool implementations for the LFX MCP server.

Package tools provides MCP tool implementations for the LFX MCP server.

Package tools provides MCP tool implementations for the LFX MCP server.

Package tools provides MCP tool implementations for the LFX MCP server.

Package tools provides MCP tool implementations for the LFX MCP server.

Package tools provides MCP tool implementations for the LFX MCP server.

Package tools provides MCP tool implementations for the LFX MCP server.

Package tools provides MCP tool implementations for the LFX MCP server.

Package tools provides MCP tool implementations for the LFX MCP server.

Package tools provides MCP tool implementations for the LFX MCP server.

Index

Constants

View Source
const (
	// ScopeRead is required for tools that only read data (ReadOnlyHint == true).
	ScopeRead = "read:all"

	// ScopeManage is required for tools that mutate data (ReadOnlyHint defaults to false).
	ScopeManage = "manage:all"
)

Scope constants used to gate tool access based on the caller's JWT scopes. These MUST match the scopes defined on the Auth0 resource server for the LFX MCP API (see auth0-terraform resource_servers.tf, lfx_mcp_api).

Variables

This section is empty.

Functions

func AddToolWithScopes added in v0.3.1

func AddToolWithScopes[In, Out any](
	server *mcp.Server,
	tool *mcp.Tool,
	requiredScopes []string,
	handler mcp.ToolHandlerFor[In, Out],
)

AddToolWithScopes registers a tool on the server and wraps its handler so that the caller's JWT scopes are checked before the handler is invoked.

requiredScopes lists the scopes the caller must possess (any one is sufficient). If the caller's token is missing all of the required scopes the tool returns a structured IsError result rather than a JSON-RPC error, which keeps the failure inside the MCP tool-call protocol.

When no TokenInfo is present (e.g. stdio transport with no auth) the scope check is skipped so that local development is not blocked.

func DefaultScopes added in v0.3.1

func DefaultScopes() []string

DefaultScopes returns the set of scopes the server advertises via the OAuth Protected Resource Metadata endpoint. This is the enforced set plus the standard OIDC scopes that clients typically need for the authorization flow.

func ReadScopes added in v0.3.1

func ReadScopes() []string

ReadScopes returns the scope list for read-only tools.

func RegisterCreateCommittee added in v0.3.0

func RegisterCreateCommittee(server *mcp.Server)

RegisterCreateCommittee registers the create_committee tool with the MCP server.

func RegisterCreateCommitteeMember added in v0.3.0

func RegisterCreateCommitteeMember(server *mcp.Server)

RegisterCreateCommitteeMember registers the create_committee_member tool with the MCP server.

func RegisterDeleteCommittee added in v0.3.0

func RegisterDeleteCommittee(server *mcp.Server)

RegisterDeleteCommittee registers the delete_committee tool with the MCP server.

func RegisterDeleteCommitteeMember added in v0.3.0

func RegisterDeleteCommitteeMember(server *mcp.Server)

RegisterDeleteCommitteeMember registers the delete_committee_member tool with the MCP server.

func RegisterGetCommittee added in v0.1.1

func RegisterGetCommittee(server *mcp.Server)

RegisterGetCommittee registers the get_committee tool with the MCP server.

func RegisterGetCommitteeMember added in v0.1.1

func RegisterGetCommitteeMember(server *mcp.Server)

RegisterGetCommitteeMember registers the get_committee_member tool with the MCP server.

func RegisterGetMailingList added in v0.2.0

func RegisterGetMailingList(server *mcp.Server)

RegisterGetMailingList registers the get_mailing_list tool with the MCP server.

func RegisterGetMailingListMember added in v0.2.0

func RegisterGetMailingListMember(server *mcp.Server)

RegisterGetMailingListMember registers the get_mailing_list_member tool with the MCP server.

func RegisterGetMailingListService added in v0.2.0

func RegisterGetMailingListService(server *mcp.Server)

RegisterGetMailingListService registers the get_mailing_list_service tool with the MCP server.

func RegisterGetMeeting added in v0.2.4

func RegisterGetMeeting(server *mcp.Server)

RegisterGetMeeting registers the get_meeting tool with the MCP server.

func RegisterGetMeetingRegistrant added in v0.2.4

func RegisterGetMeetingRegistrant(server *mcp.Server)

RegisterGetMeetingRegistrant registers the get_meeting_registrant tool with the MCP server.

func RegisterGetMemberMembership added in v0.2.2

func RegisterGetMemberMembership(server *mcp.Server)

RegisterGetMemberMembership registers the get_member_membership tool with the MCP server.

func RegisterGetMembershipKeyContacts added in v0.2.2

func RegisterGetMembershipKeyContacts(server *mcp.Server)

RegisterGetMembershipKeyContacts registers the get_membership_key_contacts tool with the MCP server.

func RegisterGetPastMeetingParticipant added in v0.2.6

func RegisterGetPastMeetingParticipant(server *mcp.Server)

RegisterGetPastMeetingParticipant registers the get_past_meeting_participant tool with the MCP server.

func RegisterGetPastMeetingSummary added in v0.2.6

func RegisterGetPastMeetingSummary(server *mcp.Server)

RegisterGetPastMeetingSummary registers the get_past_meeting_summary tool with the MCP server.

func RegisterGetPastMeetingTranscript added in v0.2.6

func RegisterGetPastMeetingTranscript(server *mcp.Server)

RegisterGetPastMeetingTranscript registers the get_past_meeting_transcript tool with the MCP server.

func RegisterGetProject added in v0.1.0

func RegisterGetProject(server *mcp.Server)

RegisterGetProject registers the get_project tool with the MCP server.

func RegisterHelloWorld

func RegisterHelloWorld(server *mcp.Server)

RegisterHelloWorld registers the hello_world tool with the MCP server.

func RegisterSearchCommitteeMembers added in v0.1.1

func RegisterSearchCommitteeMembers(server *mcp.Server)

RegisterSearchCommitteeMembers registers the search_committee_members tool with the MCP server.

func RegisterSearchCommittees added in v0.1.1

func RegisterSearchCommittees(server *mcp.Server)

RegisterSearchCommittees registers the search_committees tool with the MCP server.

func RegisterSearchMailingListMembers added in v0.2.0

func RegisterSearchMailingListMembers(server *mcp.Server)

RegisterSearchMailingListMembers registers the search_mailing_list_members tool with the MCP server.

func RegisterSearchMailingLists added in v0.2.0

func RegisterSearchMailingLists(server *mcp.Server)

RegisterSearchMailingLists registers the search_mailing_lists tool with the MCP server.

func RegisterSearchMeetingRegistrants added in v0.2.4

func RegisterSearchMeetingRegistrants(server *mcp.Server)

RegisterSearchMeetingRegistrants registers the search_meeting_registrants tool with the MCP server.

func RegisterSearchMeetings added in v0.2.4

func RegisterSearchMeetings(server *mcp.Server)

RegisterSearchMeetings registers the search_meetings tool with the MCP server.

func RegisterSearchMembers added in v0.2.2

func RegisterSearchMembers(server *mcp.Server)

RegisterSearchMembers registers the search_members tool with the MCP server.

func RegisterSearchPastMeetingParticipants added in v0.2.6

func RegisterSearchPastMeetingParticipants(server *mcp.Server)

RegisterSearchPastMeetingParticipants registers the search_past_meeting_participants tool with the MCP server.

func RegisterSearchPastMeetingSummaries added in v0.2.6

func RegisterSearchPastMeetingSummaries(server *mcp.Server)

RegisterSearchPastMeetingSummaries registers the search_past_meeting_summaries tool with the MCP server.

func RegisterSearchPastMeetingTranscripts added in v0.2.6

func RegisterSearchPastMeetingTranscripts(server *mcp.Server)

RegisterSearchPastMeetingTranscripts registers the search_past_meeting_transcripts tool with the MCP server.

func RegisterSearchProjects added in v0.1.0

func RegisterSearchProjects(server *mcp.Server)

RegisterSearchProjects registers the search_projects tool with the MCP server.

func RegisterUpdateCommittee added in v0.3.0

func RegisterUpdateCommittee(server *mcp.Server)

RegisterUpdateCommittee registers the update_committee tool with the MCP server.

func RegisterUpdateCommitteeMember added in v0.3.0

func RegisterUpdateCommitteeMember(server *mcp.Server)

RegisterUpdateCommitteeMember registers the update_committee_member tool with the MCP server.

func RegisterUpdateCommitteeSettings added in v0.3.0

func RegisterUpdateCommitteeSettings(server *mcp.Server)

RegisterUpdateCommitteeSettings registers the update_committee_settings tool with the MCP server.

func RegisterUserInfo

func RegisterUserInfo(server *mcp.Server)

RegisterUserInfo registers the user_info tool with the MCP server.

func SetCommitteeConfig added in v0.1.1

func SetCommitteeConfig(cfg *CommitteeConfig)

SetCommitteeConfig sets the configuration for committee tools.

func SetMailingListConfig added in v0.2.0

func SetMailingListConfig(cfg *MailingListConfig)

SetMailingListConfig sets the configuration for mailing list tools.

func SetMeetingConfig added in v0.2.4

func SetMeetingConfig(cfg *MeetingConfig)

SetMeetingConfig sets the configuration for meeting tools.

func SetMemberConfig added in v0.2.2

func SetMemberConfig(cfg *MemberConfig)

SetMemberConfig sets the configuration for member tools.

func SetProjectConfig added in v0.1.0

func SetProjectConfig(cfg *ProjectConfig)

SetProjectConfig sets the configuration for project tools.

func SetUserInfoConfig

func SetUserInfoConfig(cfg *UserInfoConfig)

SetUserInfoConfig sets the configuration for the user_info tool.

func ValidateScopes added in v0.3.1

func ValidateScopes(configured []string, warn func(msg string, args ...any)) []string

ValidateScopes checks a configured scope list for unrecognised entries and returns it unchanged. It logs a warning for any scope that is neither an enforced scope nor a standard OIDC scope — those will be advertised via the PRM but are not enforced by the server. Omitting an enforced scope from the configured list is intentional and allowed; enforcement at dispatch time is independent of what is advertised.

func WriteScopes added in v0.3.1

func WriteScopes() []string

WriteScopes returns the scope list for write tools. A token carrying the manage scope is sufficient; the read scope is not required.

Types

type CommitteeConfig added in v0.1.1

type CommitteeConfig struct {
	LFXAPIURL           string
	TokenExchangeClient *lfxv2.TokenExchangeClient
	DebugLogger         *slog.Logger
}

CommitteeConfig holds configuration shared by committee tools.

type CommitteeMemberOrganizationArgs added in v0.3.0

type CommitteeMemberOrganizationArgs struct {
	Name    *string `json:"name,omitempty" jsonschema:"Organization name"`
	Website *string `json:"website,omitempty" jsonschema:"Organization website URL"`
}

CommitteeMemberOrganizationArgs defines organization information for a committee member.

type CommitteeMemberRoleArgs added in v0.3.0

type CommitteeMemberRoleArgs struct {
	Name      string  `json:"name" jsonschema:"Role name"`
	StartDate *string `json:"start_date,omitempty" jsonschema:"Role start date in RFC3339 format"`
	EndDate   *string `json:"end_date,omitempty" jsonschema:"Role end date in RFC3339 format"`
}

CommitteeMemberRoleArgs defines role information for a committee member.

type CommitteeMemberVotingArgs added in v0.3.0

type CommitteeMemberVotingArgs struct {
	Status    string  `json:"status" jsonschema:"Voting status"`
	StartDate *string `json:"start_date,omitempty" jsonschema:"Voting start date in RFC3339 format"`
	EndDate   *string `json:"end_date,omitempty" jsonschema:"Voting end date in RFC3339 format"`
}

CommitteeMemberVotingArgs defines voting information for a committee member.

type CreateCommitteeArgs added in v0.3.0

type CreateCommitteeArgs struct {
	ProjectUID            string  `json:"project_uid" jsonschema:"Project UID the committee belongs to"`
	Name                  string  `json:"name" jsonschema:"Name of the committee"`
	Category              string  `json:"category" jsonschema:"Category of the committee"`
	Description           *string `json:"description,omitempty" jsonschema:"Description of the committee"`
	Website               *string `json:"website,omitempty" jsonschema:"Website URL of the committee"`
	EnableVoting          bool    `json:"enable_voting,omitempty" jsonschema:"Whether voting is enabled"`
	SSOGroupEnabled       bool    `json:"sso_group_enabled,omitempty" jsonschema:"Whether SSO group integration is enabled"`
	RequiresReview        bool    `json:"requires_review,omitempty" jsonschema:"Whether the committee requires review"`
	Public                bool    `json:"public,omitempty" jsonschema:"Whether the committee is publicly visible"`
	CalendarPublic        *bool   `json:"calendar_public,omitempty" jsonschema:"Whether the committee calendar is publicly visible"`
	DisplayName           *string `json:"display_name,omitempty" jsonschema:"Display name of the committee"`
	ParentUID             *string `json:"parent_uid,omitempty" jsonschema:"UID of the parent committee, if any"`
	BusinessEmailRequired bool    `json:"business_email_required,omitempty" jsonschema:"Whether business email is required for members"`
	MemberVisibility      string  `json:"member_visibility,omitempty" jsonschema:"Visibility level of member profiles to other members"`
	ShowMeetingAttendees  bool    `json:"show_meeting_attendees,omitempty" jsonschema:"Whether to show meeting attendees by default"`
}

CreateCommitteeArgs defines the input parameters for the create_committee tool.

type CreateCommitteeMemberArgs added in v0.3.0

type CreateCommitteeMemberArgs struct {
	CommitteeUID    string                           `json:"committee_uid" jsonschema:"UID of the committee to add the member to"`
	Email           string                           `json:"email" jsonschema:"Primary email address of the member"`
	AppointedBy     string                           `json:"appointed_by" jsonschema:"How the member was appointed"`
	Status          string                           `json:"status" jsonschema:"Member status"`
	FirstName       *string                          `json:"first_name,omitempty" jsonschema:"First name"`
	LastName        *string                          `json:"last_name,omitempty" jsonschema:"Last name"`
	JobTitle        *string                          `json:"job_title,omitempty" jsonschema:"Job title at organization"`
	LinkedinProfile *string                          `json:"linkedin_profile,omitempty" jsonschema:"LinkedIn profile URL"`
	Role            *CommitteeMemberRoleArgs         `json:"role,omitempty" jsonschema:"Committee role information"`
	Voting          *CommitteeMemberVotingArgs       `json:"voting,omitempty" jsonschema:"Voting information"`
	Organization    *CommitteeMemberOrganizationArgs `json:"organization,omitempty" jsonschema:"Organization information"`
}

CreateCommitteeMemberArgs defines the input parameters for the create_committee_member tool.

type DeleteCommitteeArgs added in v0.3.0

type DeleteCommitteeArgs struct {
	UID string `json:"uid" jsonschema:"UID of the committee to delete"`
}

DeleteCommitteeArgs defines the input parameters for the delete_committee tool.

type DeleteCommitteeMemberArgs added in v0.3.0

type DeleteCommitteeMemberArgs struct {
	CommitteeUID string `json:"committee_uid" jsonschema:"UID of the committee"`
	MemberUID    string `json:"member_uid" jsonschema:"UID of the member to delete"`
}

DeleteCommitteeMemberArgs defines the input parameters for the delete_committee_member tool.

type GetCommitteeArgs added in v0.1.1

type GetCommitteeArgs struct {
	UID string `json:"uid" jsonschema:"The v2 UID of the committee to retrieve"`
}

GetCommitteeArgs defines the input parameters for the get_committee tool.

type GetCommitteeMemberArgs added in v0.1.1

type GetCommitteeMemberArgs struct {
	CommitteeUID string `json:"committee_uid" jsonschema:"The v2 UID of the committee"`
	MemberUID    string `json:"member_uid" jsonschema:"The v2 UID of the committee member"`
}

GetCommitteeMemberArgs defines the input parameters for the get_committee_member tool.

type GetMailingListArgs added in v0.2.0

type GetMailingListArgs struct {
	UID string `json:"uid" jsonschema:"The v2 UID of the mailing list to retrieve"`
}

GetMailingListArgs defines the input parameters for the get_mailing_list tool.

type GetMailingListMemberArgs added in v0.2.0

type GetMailingListMemberArgs struct {
	MailingListUID string `json:"mailing_list_uid" jsonschema:"The v2 UID of the mailing list"`
	MemberUID      string `json:"member_uid" jsonschema:"The v2 UID of the mailing list member"`
}

GetMailingListMemberArgs defines the input parameters for the get_mailing_list_member tool.

type GetMailingListServiceArgs added in v0.2.0

type GetMailingListServiceArgs struct {
	UID string `json:"uid" jsonschema:"The v2 UID of the mailing list service to retrieve"`
}

GetMailingListServiceArgs defines the input parameters for the get_mailing_list_service tool.

type GetMeetingArgs added in v0.2.4

type GetMeetingArgs struct {
	UID string `json:"uid" jsonschema:"The UID of the meeting to retrieve"`
}

GetMeetingArgs defines the input parameters for the get_meeting tool.

type GetMeetingRegistrantArgs added in v0.2.4

type GetMeetingRegistrantArgs struct {
	UID string `json:"uid" jsonschema:"The UID of the meeting registrant to retrieve"`
}

GetMeetingRegistrantArgs defines the input parameters for the get_meeting_registrant tool.

type GetMemberMembershipArgs added in v0.2.2

type GetMemberMembershipArgs struct {
	MemberID string `json:"member_id" jsonschema:"The member UID"`
	ID       string `json:"id" jsonschema:"The membership UID"`
}

GetMemberMembershipArgs defines the input parameters for the get_member_membership tool.

type GetMembershipKeyContactsArgs added in v0.2.2

type GetMembershipKeyContactsArgs struct {
	MemberID string `json:"member_id" jsonschema:"The member UID"`
	ID       string `json:"id" jsonschema:"The membership UID"`
}

GetMembershipKeyContactsArgs defines the input parameters for the get_membership_key_contacts tool.

type GetPastMeetingParticipantArgs added in v0.2.6

type GetPastMeetingParticipantArgs struct {
	UID string `json:"uid" jsonschema:"The UID of the past meeting participant to retrieve"`
}

GetPastMeetingParticipantArgs defines the input parameters for the get_past_meeting_participant tool.

type GetPastMeetingSummaryArgs added in v0.2.6

type GetPastMeetingSummaryArgs struct {
	UID string `json:"uid" jsonschema:"The UID of the past meeting summary to retrieve"`
}

GetPastMeetingSummaryArgs defines the input parameters for the get_past_meeting_summary tool.

type GetPastMeetingTranscriptArgs added in v0.2.6

type GetPastMeetingTranscriptArgs struct {
	UID string `json:"uid" jsonschema:"The UID of the past meeting transcript to retrieve"`
}

GetPastMeetingTranscriptArgs defines the input parameters for the get_past_meeting_transcript tool.

type GetProjectArgs added in v0.1.0

type GetProjectArgs struct {
	UID string `json:"uid" jsonschema:"The v2 UID of the project to retrieve"`
}

GetProjectArgs defines the input parameters for the get_project tool.

type HelloWorldArgs

type HelloWorldArgs struct {
	Name    string `json:"name,omitempty" jsonschema:"Name to greet (optional, defaults to 'World')"`
	Message string `json:"message,omitempty" jsonschema:"Custom greeting message (optional)"`
}

HelloWorldArgs defines the input parameters for the hello_world tool.

type MailingListConfig added in v0.2.0

type MailingListConfig struct {
	LFXAPIURL           string
	TokenExchangeClient *lfxv2.TokenExchangeClient
	DebugLogger         *slog.Logger
}

MailingListConfig holds configuration shared by mailing list tools.

type MeetingConfig added in v0.2.4

type MeetingConfig struct {
	LFXAPIURL           string
	TokenExchangeClient *lfxv2.TokenExchangeClient
	DebugLogger         *slog.Logger
}

MeetingConfig holds configuration shared by meeting tools.

type MemberConfig added in v0.2.2

type MemberConfig struct {
	LFXAPIURL           string
	TokenExchangeClient *lfxv2.TokenExchangeClient
	DebugLogger         *slog.Logger
}

MemberConfig holds configuration shared by member tools.

type ProjectConfig added in v0.1.0

type ProjectConfig struct {
	LFXAPIURL           string
	TokenExchangeClient *lfxv2.TokenExchangeClient
	DebugLogger         *slog.Logger
}

ProjectConfig holds configuration shared by project tools.

type SearchCommitteeMembersArgs added in v0.1.1

type SearchCommitteeMembersArgs struct {
	CommitteeUID string `json:"committee_uid,omitempty" jsonschema:"Optional v2 UID of the committee to filter members by"`
	ProjectUID   string `` /* 148-byte string literal not displayed */
	Name         string `json:"name,omitempty" jsonschema:"Name or partial name of the member to search for"`
	PageSize     int    `json:"page_size,omitempty" jsonschema:"Number of results per page (default 10, max 100)"`
	PageToken    string `json:"page_token,omitempty" jsonschema:"Opaque pagination token from a previous search response"`
}

SearchCommitteeMembersArgs defines the input parameters for the search_committee_members tool.

type SearchCommitteesArgs added in v0.1.1

type SearchCommitteesArgs struct {
	Name       string `json:"name,omitempty" jsonschema:"Name or partial name of the committee to search for"`
	ProjectUID string `` /* 141-byte string literal not displayed */
	PageSize   int    `json:"page_size,omitempty" jsonschema:"Number of results per page (default 10, max 100)"`
	PageToken  string `json:"page_token,omitempty" jsonschema:"Opaque pagination token from a previous search response"`
}

SearchCommitteesArgs defines the input parameters for the search_committees tool.

type SearchMailingListMembersArgs added in v0.2.0

type SearchMailingListMembersArgs struct {
	MailingListUID string `json:"mailing_list_uid,omitempty" jsonschema:"Optional v2 UID of the mailing list to filter members by"`
	ProjectUID     string `json:"project_uid,omitempty" jsonschema:"Optional v2 project UID to filter mailing list members by project"`
	Name           string `json:"name,omitempty" jsonschema:"Name or partial name of the member to search for"`
	PageSize       int    `json:"page_size,omitempty" jsonschema:"Number of results per page (default 10)"`
	PageToken      string `json:"page_token,omitempty" jsonschema:"Opaque pagination token from a previous search response"`
}

SearchMailingListMembersArgs defines the input parameters for the search_mailing_list_members tool.

type SearchMailingListsArgs added in v0.2.0

type SearchMailingListsArgs struct {
	Name       string `json:"name,omitempty" jsonschema:"Name or partial name of the mailing list to search for"`
	ProjectUID string `` /* 144-byte string literal not displayed */
	PageSize   int    `json:"page_size,omitempty" jsonschema:"Number of results per page (default 10)"`
	PageToken  string `json:"page_token,omitempty" jsonschema:"Opaque pagination token from a previous search response"`
}

SearchMailingListsArgs defines the input parameters for the search_mailing_lists tool.

type SearchMeetingRegistrantsArgs added in v0.2.4

type SearchMeetingRegistrantsArgs struct {
	MeetingID    string   `json:"meeting_id,omitempty" jsonschema:"Filter registrants by meeting ID"`
	CommitteeUID string   `json:"committee_uid,omitempty" jsonschema:"Filter registrants by committee UID"`
	ProjectUID   string   `json:"project_uid,omitempty" jsonschema:"Filter registrants by project UID"`
	Name         string   `json:"name,omitempty" jsonschema:"Name or partial name of the registrant to search for"`
	Filters      []string `json:"filters,omitempty" jsonschema:"Direct field:value term filters (e.g. host:true or type:committee)"`
	Sort         string   `` /* 140-byte string literal not displayed */
	PageSize     int      `json:"page_size,omitempty" jsonschema:"Number of results per page (default 10, max 100)"`
	PageToken    string   `json:"page_token,omitempty" jsonschema:"Opaque pagination token from a previous search response"`
}

SearchMeetingRegistrantsArgs defines the input parameters for the search_meeting_registrants tool.

type SearchMeetingsArgs added in v0.2.4

type SearchMeetingsArgs struct {
	Name         string   `json:"name,omitempty" jsonschema:"Name or partial name of the meeting to search for"`
	ProjectUID   string   `json:"project_uid,omitempty" jsonschema:"Filter meetings by project UID"`
	CommitteeUID string   `json:"committee_uid,omitempty" jsonschema:"Filter meetings by committee UID"`
	DateField    string   `json:"date_field,omitempty" jsonschema:"Date field to filter on (default start_time when date_from or date_to is set)"`
	DateFrom     string   `json:"date_from,omitempty" jsonschema:"Start date inclusive in ISO 8601 format (e.g. 2025-01-01)"`
	DateTo       string   `json:"date_to,omitempty" jsonschema:"End date inclusive in ISO 8601 format (e.g. 2025-12-31)"`
	Filters      []string `json:"filters,omitempty" jsonschema:"Direct field:value term filters (e.g. visibility:public or status:active)"`
	Sort         string   `` /* 140-byte string literal not displayed */
	PageSize     int      `json:"page_size,omitempty" jsonschema:"Number of results per page (default 10, max 100)"`
	PageToken    string   `json:"page_token,omitempty" jsonschema:"Opaque pagination token from a previous search response"`
}

SearchMeetingsArgs defines the input parameters for the search_meetings tool.

type SearchMembersArgs added in v0.2.2

type SearchMembersArgs struct {
	Search         string `json:"search,omitempty" jsonschema:"Free-text search across member name, project names, and tiers"`
	Status         string `json:"status,omitempty" jsonschema:"Filter by membership status (e.g. active, expired)"`
	MembershipType string `json:"membership_type,omitempty" jsonschema:"Filter by membership type"`
	AccountID      string `json:"account_id,omitempty" jsonschema:"Filter by account ID"`
	ProjectID      string `json:"project_id,omitempty" jsonschema:"Filter by project ID"`
	ProductID      string `json:"product_id,omitempty" jsonschema:"Filter by product ID"`
	Year           string `json:"year,omitempty" jsonschema:"Filter by membership year"`
	Tier           string `json:"tier,omitempty" jsonschema:"Filter by membership tier"`
	ContactID      string `json:"contact_id,omitempty" jsonschema:"Filter by contact ID"`
	AutoRenew      string `json:"auto_renew,omitempty" jsonschema:"Filter by auto-renew status (true or false)"`
	PageSize       int    `json:"page_size,omitempty" jsonschema:"Number of results per page (1-100, default 25)"`
	Offset         int    `json:"offset,omitempty" jsonschema:"Offset into the total result list (default 0)"`
}

SearchMembersArgs defines the input parameters for the search_members tool.

type SearchPastMeetingParticipantsArgs added in v0.2.6

type SearchPastMeetingParticipantsArgs struct {
	MeetingID    string   `json:"meeting_id,omitempty" jsonschema:"Filter participants by meeting ID"`
	CommitteeUID string   `json:"committee_uid,omitempty" jsonschema:"Filter participants by committee UID"`
	ProjectUID   string   `json:"project_uid,omitempty" jsonschema:"Filter participants by project UID"`
	Name         string   `json:"name,omitempty" jsonschema:"Name or partial name of the participant to search for"`
	Filters      []string `json:"filters,omitempty" jsonschema:"Direct field:value term filters"`
	Sort         string   `` /* 140-byte string literal not displayed */
	PageSize     int      `json:"page_size,omitempty" jsonschema:"Number of results per page (default 10, max 100)"`
	PageToken    string   `json:"page_token,omitempty" jsonschema:"Opaque pagination token from a previous search response"`
}

SearchPastMeetingParticipantsArgs defines the input parameters for the search_past_meeting_participants tool.

type SearchPastMeetingSummariesArgs added in v0.2.6

type SearchPastMeetingSummariesArgs struct {
	MeetingID    string   `json:"meeting_id,omitempty" jsonschema:"Filter summaries by meeting ID"`
	CommitteeUID string   `json:"committee_uid,omitempty" jsonschema:"Filter summaries by committee UID"`
	ProjectUID   string   `json:"project_uid,omitempty" jsonschema:"Filter summaries by project UID"`
	Name         string   `json:"name,omitempty" jsonschema:"Name or partial name of the summary to search for"`
	Filters      []string `json:"filters,omitempty" jsonschema:"Direct field:value term filters"`
	Sort         string   `` /* 140-byte string literal not displayed */
	PageSize     int      `json:"page_size,omitempty" jsonschema:"Number of results per page (default 10, max 100)"`
	PageToken    string   `json:"page_token,omitempty" jsonschema:"Opaque pagination token from a previous search response"`
}

SearchPastMeetingSummariesArgs defines the input parameters for the search_past_meeting_summaries tool.

type SearchPastMeetingTranscriptsArgs added in v0.2.6

type SearchPastMeetingTranscriptsArgs struct {
	MeetingID    string   `json:"meeting_id,omitempty" jsonschema:"Filter transcripts by meeting ID"`
	CommitteeUID string   `json:"committee_uid,omitempty" jsonschema:"Filter transcripts by committee UID"`
	ProjectUID   string   `json:"project_uid,omitempty" jsonschema:"Filter transcripts by project UID"`
	Name         string   `json:"name,omitempty" jsonschema:"Name or partial name of the transcript to search for"`
	Filters      []string `json:"filters,omitempty" jsonschema:"Direct field:value term filters"`
	Sort         string   `` /* 140-byte string literal not displayed */
	PageSize     int      `json:"page_size,omitempty" jsonschema:"Number of results per page (default 10, max 100)"`
	PageToken    string   `json:"page_token,omitempty" jsonschema:"Opaque pagination token from a previous search response"`
}

SearchPastMeetingTranscriptsArgs defines the input parameters for the search_past_meeting_transcripts tool.

type SearchProjectsArgs added in v0.1.0

type SearchProjectsArgs struct {
	Name      string `json:"name" jsonschema:"Name or partial name of the project to search for"`
	PageSize  int    `json:"page_size,omitempty" jsonschema:"Number of results per page (default 10, max 100)"`
	PageToken string `json:"page_token,omitempty" jsonschema:"Opaque pagination token from a previous search response"`
}

SearchProjectsArgs defines the input parameters for the search_projects tool.

type UpdateCommitteeArgs added in v0.3.0

type UpdateCommitteeArgs struct {
	UID             string  `json:"uid" jsonschema:"UID of the committee to update"`
	ProjectUID      *string `json:"project_uid,omitempty" jsonschema:"Project UID the committee belongs to"`
	Name            *string `json:"name,omitempty" jsonschema:"Name of the committee"`
	Category        *string `json:"category,omitempty" jsonschema:"Category of the committee"`
	Description     *string `json:"description,omitempty" jsonschema:"Description of the committee"`
	Website         *string `json:"website,omitempty" jsonschema:"Website URL of the committee"`
	EnableVoting    *bool   `json:"enable_voting,omitempty" jsonschema:"Whether voting is enabled"`
	SSOGroupEnabled *bool   `json:"sso_group_enabled,omitempty" jsonschema:"Whether SSO group integration is enabled"`
	RequiresReview  *bool   `json:"requires_review,omitempty" jsonschema:"Whether the committee requires review"`
	Public          *bool   `json:"public,omitempty" jsonschema:"Whether the committee is publicly visible"`
	CalendarPublic  *bool   `json:"calendar_public,omitempty" jsonschema:"Whether the committee calendar is publicly visible"`
	DisplayName     *string `json:"display_name,omitempty" jsonschema:"Display name of the committee"`
	ParentUID       *string `json:"parent_uid,omitempty" jsonschema:"UID of the parent committee, if any"`
}

UpdateCommitteeArgs defines the input parameters for the update_committee tool. Only fields that are provided (non-nil) will be updated; omitted fields retain their current values (fetch-then-merge semantics).

type UpdateCommitteeMemberArgs added in v0.3.0

type UpdateCommitteeMemberArgs struct {
	CommitteeUID    string                           `json:"committee_uid" jsonschema:"UID of the committee"`
	MemberUID       string                           `json:"member_uid" jsonschema:"UID of the member to update"`
	Email           *string                          `json:"email,omitempty" jsonschema:"Primary email address of the member"`
	AppointedBy     *string                          `json:"appointed_by,omitempty" jsonschema:"How the member was appointed"`
	Status          *string                          `json:"status,omitempty" jsonschema:"Member status"`
	FirstName       *string                          `json:"first_name,omitempty" jsonschema:"First name"`
	LastName        *string                          `json:"last_name,omitempty" jsonschema:"Last name"`
	JobTitle        *string                          `json:"job_title,omitempty" jsonschema:"Job title at organization"`
	LinkedinProfile *string                          `json:"linkedin_profile,omitempty" jsonschema:"LinkedIn profile URL"`
	Role            *CommitteeMemberRoleArgs         `json:"role,omitempty" jsonschema:"Committee role information"`
	Voting          *CommitteeMemberVotingArgs       `json:"voting,omitempty" jsonschema:"Voting information"`
	Organization    *CommitteeMemberOrganizationArgs `json:"organization,omitempty" jsonschema:"Organization information"`
}

UpdateCommitteeMemberArgs defines the input parameters for the update_committee_member tool. Only fields that are provided (non-nil) will be updated; omitted fields retain their current values (fetch-then-merge semantics).

type UpdateCommitteeSettingsArgs added in v0.3.0

type UpdateCommitteeSettingsArgs struct {
	UID                   string  `json:"uid" jsonschema:"UID of the committee whose settings to update"`
	BusinessEmailRequired *bool   `json:"business_email_required,omitempty" jsonschema:"Whether business email is required for members"`
	MemberVisibility      *string `json:"member_visibility,omitempty" jsonschema:"Visibility level of member profiles to other members"`
	ShowMeetingAttendees  *bool   `json:"show_meeting_attendees,omitempty" jsonschema:"Whether to show meeting attendees by default"`
}

UpdateCommitteeSettingsArgs defines the input parameters for the update_committee_settings tool. Only fields that are provided (non-nil) will be updated; omitted fields retain their current values (fetch-then-merge semantics).

type UserInfoArgs

type UserInfoArgs struct {
}

UserInfoArgs defines the input parameters for the user_info tool.

type UserInfoConfig

type UserInfoConfig struct {
	UserInfoEndpoint string // Full userinfo endpoint URL (e.g., https://example.auth0.com/userinfo).
	HTTPClient       *http.Client
}

UserInfoConfig holds configuration for the user_info tool.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL