Glue Up MCP by usefulapi
Read Glue Up events, memberships, contacts, organizations and finance records.
Should I use this
Quality & Safety
Findings (8)
- HIGH
- MEDIUMin glueup_list_membership_types
- MEDIUMin glueup_list_company_memberships
- MEDIUMin glueup_list_individual_memberships
- LOWin glueup_list_company_memberships
- LOWin glueup_list_individual_memberships
- LOWin glueup_get_individual_membership
- LOWin glueup_list_application_form_fields
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"glue-up": {
"url": "https://glue-up.usefulapi.io/mcp"
}
}
}Remote endpoints
https://glue-up.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (13)
🟢glueup_list_events(status, search, published, open_to_public, starts_after, ...)
List the organization's events with dates, venue and publication flags. Timestamps are epoch milliseconds. Filter by status (upcoming, ongoing, past), published / open-to-public flags, a start-date window or a title word. API: POST /event/list[/{status}].
Input Schema
{
"type": "object",
"properties": {
"status": {
"description": "any (default), upcoming, ongoing or past.",
"type": "string",
"enum": [
"any",
"upcoming",
"ongoing",
"past"
]
},
"search": {
"description": "A word in the event title.",
"type": "string",
"maxLength": 200
},
"published": {
"description": "Only published (true) or only unpublished (false) events.",
"type": "boolean"
},
"open_to_public": {
"description": "Only events open to the public (true) or not (false).",
"type": "boolean"
},
"starts_after": {
"description": "Only events starting at or after this ISO date, e.g. 2026-06-01.",
"type": "string",
"maxLength": 40
},
"starts_before": {
"description": "Only events starting at or before this ISO date.",
"type": "string",
"maxLength": 40
},
"language": {
"description": "Language code for translated texts, e.g. en.",
"type": "string",
"pattern": "^[a-z]{2}(-[A-Za-z]{2,4})?$"
},
"fields": {
"description": "Properties to return (the API's projection); omit for the default set. Dotted names reach nested values.",
"maxItems": 60,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"filters": {
"description": "Extra filters; all must match.",
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Property name to filter on, e.g. status, featured, createdOn, industryCode, properties.<custom-field>."
},
"operator": {
"type": "string",
"enum": [
"eq",
"ne",
"gt",
"ge",
"lt",
"le",
"lk",
"nl",
"bl",
"nb",
"st",
"ed",
"in",
"any"
],
"description": "eq equal, ne not equal, gt/ge/lt/le comparisons, lk like, nl not like, bl null, nb not null, st starts with, ed ends with, in is in, any one of."
},
"values": {
"maxItems": 50,
"type": "array",
"items": {
"type": [
"string",
"number",
"boolean"
]
},
"description": "Values to compare with (an array, even for a single value)."
}
},
"required": [
"field",
"operator",
"values"
]
}
},
"limit": {
"description": "Results per page, 1-200 (default 20).",
"type": "integer",
"minimum": 1,
"maximum": 200
},
"offset": {
"description": "How many results to skip (default 0). The reply's total says how many exist.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"order": {
"description": "Property to sort by, e.g. startDateTime (default) or title.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"descending": {
"description": "Sort descending (default ascending).",
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢glueup_list_membership_types(search, language, fields, filters, limit, ...)
List the published membership types (tiers) with price versions, durations, member limits and whether approval is required. API: POST /public/membership/publishedMembershipTypeList.
Input Schema
{
"type": "object",
"properties": {
"search": {
"description": "A word in the membership type's internal title.",
"type": "string",
"maxLength": 200
},
"language": {
"description": "Language code for translated texts, e.g. en.",
"type": "string",
"pattern": "^[a-z]{2}(-[A-Za-z]{2,4})?$"
},
"fields": {
"description": "Properties to return (the API's projection); omit for the default set. Dotted names reach nested values.",
"maxItems": 60,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"filters": {
"description": "Extra filters; all must match.",
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Property name to filter on, e.g. status, featured, createdOn, industryCode, properties.<custom-field>."
},
"operator": {
"type": "string",
"enum": [
"eq",
"ne",
"gt",
"ge",
"lt",
"le",
"lk",
"nl",
"bl",
"nb",
"st",
"ed",
"in",
"any"
],
"description": "eq equal, ne not equal, gt/ge/lt/le comparisons, lk like, nl not like, bl null, nb not null, st starts with, ed ends with, in is in, any one of."
},
"values": {
"maxItems": 50,
"type": "array",
"items": {
"type": [
"string",
"number",
"boolean"
]
},
"description": "Values to compare with (an array, even for a single value)."
}
},
"required": [
"field",
"operator",
"values"
]
}
},
"limit": {
"description": "Results per page, 1-200 (default 20).",
"type": "integer",
"minimum": 1,
"maximum": 200
},
"offset": {
"description": "How many results to skip (default 0). The reply's total says how many exist.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"order": {
"description": "Property to sort by.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"descending": {
"description": "Sort descending (default ascending).",
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢glueup_list_members(basic, search, fields, filters, limit, ...)
List the active people in the membership directory: name, company, position, membership type, start date, contact data and custom properties. Returns personal data. basic=true returns only the basic public fields. Search a name, email or company; filter by any property (featured, familyName, properties.<custom-field>...). API: POST /membershipDirectory/members[/basic].
Input Schema
{
"type": "object",
"properties": {
"basic": {
"description": "Only basic information (default false).",
"type": "boolean"
},
"search": {
"description": "A word in the given name, family name, email address or company name.",
"type": "string",
"maxLength": 200
},
"fields": {
"description": "Properties to return (the API's projection); omit for the default set. Dotted names reach nested values.",
"maxItems": 60,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"filters": {
"description": "Extra filters; all must match.",
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Property name to filter on, e.g. status, featured, createdOn, industryCode, properties.<custom-field>."
},
"operator": {
"type": "string",
"enum": [
"eq",
"ne",
"gt",
"ge",
"lt",
"le",
"lk",
"nl",
"bl",
"nb",
"st",
"ed",
"in",
"any"
],
"description": "eq equal, ne not equal, gt/ge/lt/le comparisons, lk like, nl not like, bl null, nb not null, st starts with, ed ends with, in is in, any one of."
},
"values": {
"maxItems": 50,
"type": "array",
"items": {
"type": [
"string",
"number",
"boolean"
]
},
"description": "Values to compare with (an array, even for a single value)."
}
},
"required": [
"field",
"operator",
"values"
]
}
},
"limit": {
"description": "Results per page, 1-200 (default 20).",
"type": "integer",
"minimum": 1,
"maximum": 200
},
"offset": {
"description": "How many results to skip (default 0). The reply's total says how many exist.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"order": {
"description": "Property to sort by, e.g. familyName.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"descending": {
"description": "Sort descending (default ascending).",
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢glueup_get_member(member_id)
Get one person from the membership directory by member id, with membership, contact data and custom properties. Returns personal data. API: GET /membershipDirectory/member/{memberId}.
Input Schema
{
"type": "object",
"properties": {
"member_id": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991,
"description": "Member id (from glueup_list_members, the individualMember.id field)."
}
},
"required": [
"member_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢glueup_list_company_memberships(basic, search, fields, filters, limit, ...)
List the active company memberships in the directory: company name, industry, membership type, start date, address and custom properties. basic=true returns only the basic fields. Filter by featured, industryCode, name prefix and more. API: POST /membershipDirectory/corporateMemberships[/basic].
Input Schema
{
"type": "object",
"properties": {
"basic": {
"description": "Only basic information (default false).",
"type": "boolean"
},
"search": {
"description": "A word in the company name.",
"type": "string",
"maxLength": 200
},
"fields": {
"description": "Properties to return (the API's projection); omit for the default set. Dotted names reach nested values.",
"maxItems": 60,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"filters": {
"description": "Extra filters; all must match.",
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Property name to filter on, e.g. status, featured, createdOn, industryCode, properties.<custom-field>."
},
"operator": {
"type": "string",
"enum": [
"eq",
"ne",
"gt",
"ge",
"lt",
"le",
"lk",
"nl",
"bl",
"nb",
"st",
"ed",
"in",
"any"
],
"description": "eq equal, ne not equal, gt/ge/lt/le comparisons, lk like, nl not like, bl null, nb not null, st starts with, ed ends with, in is in, any one of."
},
"values": {
"maxItems": 50,
"type": "array",
"items": {
"type": [
"string",
"number",
"boolean"
]
},
"description": "Values to compare with (an array, even for a single value)."
}
},
"required": [
"field",
"operator",
"values"
]
}
},
"limit": {
"description": "Results per page, 1-200 (default 20).",
"type": "integer",
"minimum": 1,
"maximum": 200
},
"offset": {
"description": "How many results to skip (default 0). The reply's total says how many exist.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"order": {
"description": "Property to sort by, e.g. name.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"descending": {
"description": "Sort descending (default ascending).",
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢glueup_get_company_membership(membership_id)
Get one company membership by membership id, with its members, type, address and custom properties. Returns personal data. API: GET /membershipDirectory/corporate/{membershipId}.
Input Schema
{
"type": "object",
"properties": {
"membership_id": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991,
"description": "Company membership id (from glueup_list_company_memberships)."
}
},
"required": [
"membership_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢glueup_list_individual_memberships(search, fields, filters, limit, offset, ...)
List the active individual (people) memberships in the directory, each with its person, membership type, start date and contact data. Returns personal data. API: POST /membershipDirectory/individualMemberships.
Input Schema
{
"type": "object",
"properties": {
"search": {
"description": "A word in the given name, family name, email address or company name.",
"type": "string",
"maxLength": 200
},
"fields": {
"description": "Properties to return (the API's projection); omit for the default set. Dotted names reach nested values.",
"maxItems": 60,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"filters": {
"description": "Extra filters; all must match.",
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Property name to filter on, e.g. status, featured, createdOn, industryCode, properties.<custom-field>."
},
"operator": {
"type": "string",
"enum": [
"eq",
"ne",
"gt",
"ge",
"lt",
"le",
"lk",
"nl",
"bl",
"nb",
"st",
"ed",
"in",
"any"
],
"description": "eq equal, ne not equal, gt/ge/lt/le comparisons, lk like, nl not like, bl null, nb not null, st starts with, ed ends with, in is in, any one of."
},
"values": {
"maxItems": 50,
"type": "array",
"items": {
"type": [
"string",
"number",
"boolean"
]
},
"description": "Values to compare with (an array, even for a single value)."
}
},
"required": [
"field",
"operator",
"values"
]
}
},
"limit": {
"description": "Results per page, 1-200 (default 20).",
"type": "integer",
"minimum": 1,
"maximum": 200
},
"offset": {
"description": "How many results to skip (default 0). The reply's total says how many exist.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"order": {
"description": "Property to sort by.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"descending": {
"description": "Sort descending (default ascending).",
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢glueup_get_individual_membership(membership_id)
Get one individual membership by membership id. Returns personal data. API: GET /membershipDirectory/individual/{membershipId}.
Input Schema
{
"type": "object",
"properties": {
"membership_id": {
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991,
"description": "Individual membership id (from glueup_list_individual_memberships)."
}
},
"required": [
"membership_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢glueup_list_industry_codes(membership_type)
List the industry codes in use for People or Company memberships (the values for an industryCode filter). API: GET /membershipDirectory/type/{membershipType}/industryCode/list.
Input Schema
{
"type": "object",
"properties": {
"membership_type": {
"type": "string",
"enum": [
"People",
"Company"
],
"description": "People or Company."
}
},
"required": [
"membership_type"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢glueup_get_directory_settings
Get the membership directory settings: who can see the directory, and the visibility of each form field and the enabled search fields. API: GET /membershipDirectory/settings.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢glueup_get_application_forms(kind, all)
Get the membership application forms: kind company or individual. all=false (default) returns the default form's items in listing order; all=true returns every form including custom ones, each with its items. API: GET /public/membership/{kind}ApplicationForm or POST /public/membership/{kind}ApplicationForms.
Input Schema
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"company",
"individual"
],
"description": "company or individual."
},
"all": {
"description": "Every form including custom ones (default false: the default form only).",
"type": "boolean"
}
},
"required": [
"kind"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢glueup_list_application_form_fields(kind)
List every field of the company or individual membership application forms, including those of custom forms (keys, types, mandatory flags). API: GET /public/membership/{kind}ApplicationFormFields.
Input Schema
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"company",
"individual"
],
"description": "company or individual."
}
},
"required": [
"kind"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢glueup_list_invoices(status, fields, filters, limit, offset, ...)
List the organization's finance invoices: number, currency, face total, balance due, purchaser, origin (e.g. EventTicket), voided flag and dates (epoch milliseconds). Filter by status (e.g. Overdue) or any property. Returns purchaser names and emails. API: POST /finance/invoice/list.
Input Schema
{
"type": "object",
"properties": {
"status": {
"description": "Invoice status filter, e.g. Overdue.",
"type": "string",
"minLength": 1,
"maxLength": 40
},
"fields": {
"description": "Properties to return (the API's projection); omit for the default set. Dotted names reach nested values.",
"maxItems": 60,
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100
}
},
"filters": {
"description": "Extra filters; all must match.",
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"field": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "Property name to filter on, e.g. status, featured, createdOn, industryCode, properties.<custom-field>."
},
"operator": {
"type": "string",
"enum": [
"eq",
"ne",
"gt",
"ge",
"lt",
"le",
"lk",
"nl",
"bl",
"nb",
"st",
"ed",
"in",
"any"
],
"description": "eq equal, ne not equal, gt/ge/lt/le comparisons, lk like, nl not like, bl null, nb not null, st starts with, ed ends with, in is in, any one of."
},
"values": {
"maxItems": 50,
"type": "array",
"items": {
"type": [
"string",
"number",
"boolean"
]
},
"description": "Values to compare with (an array, even for a single value)."
}
},
"required": [
"field",
"operator",
"values"
]
}
},
"limit": {
"description": "Results per page, 1-200 (default 20).",
"type": "integer",
"minimum": 1,
"maximum": 200
},
"offset": {
"description": "How many results to skip (default 0). The reply's total says how many exist.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"order": {
"description": "Property to sort by, e.g. createdOn.",
"type": "string",
"minLength": 1,
"maxLength": 100
},
"descending": {
"description": "Sort descending (default ascending).",
"type": "boolean"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence