Server definition
- Hash
- sha256:8a73bfe90b72209ad073aebb8e7bfccc6aebaa041e322722144b223eba89ab2f
- What it is
- What a remote MCP server returned when asked what it offers: 10 tools
The blob, as servednamed by its sha256
{
"instructions": null,
"tools": [
{
"description": "Creates a contact in Loops (additive). Loops API: POST /v1/contacts/create.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"email": {
"description": "Contact email address (required).",
"type": "string"
},
"firstName": {
"description": "First name.",
"type": "string"
},
"lastName": {
"description": "Last name.",
"type": "string"
},
"mailingLists": {
"additionalProperties": {
"type": "boolean"
},
"description": "Map of mailing-list id -> subscribed boolean.",
"propertyNames": {
"type": "string"
},
"type": "object"
},
"properties": {
"additionalProperties": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
}
]
},
"description": "Arbitrary custom contact properties (string/number/boolean); merged into the request body.",
"propertyNames": {
"type": "string"
},
"type": "object"
},
"source": {
"description": "Source label for where the contact came from.",
"type": "string"
},
"subscribed": {
"description": "Whether the contact is subscribed to email.",
"type": "boolean"
},
"userGroup": {
"description": "User group segment name.",
"type": "string"
},
"userId": {
"description": "Your app's user id for this contact.",
"type": "string"
}
},
"required": [
"email"
],
"type": "object"
},
"name": "loops_create_contact",
"outputSchema": null
},
{
"description": "Creates a custom contact property/field (additive schema change). Loops API: POST /v1/contacts/properties.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"name": {
"description": "Name of the custom property to create (required).",
"type": "string"
},
"type": {
"description": "Data type of the property (required).",
"enum": [
"string",
"number",
"boolean",
"date"
],
"type": "string"
}
},
"required": [
"name",
"type"
],
"type": "object"
},
"name": "loops_create_contact_property",
"outputSchema": null
},
{
"description": "Deletes a contact from Loops. Destructive. Supply email OR userId. Loops API: POST /v1/contacts/delete.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"email": {
"description": "Email of the contact to delete.",
"type": "string"
},
"userId": {
"description": "userId of the contact to delete.",
"type": "string"
}
},
"type": "object"
},
"name": "loops_delete_contact",
"outputSchema": null
},
{
"description": "Find a contact by email or userId (supply at least one). Loops API: GET /v1/contacts/find.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"email": {
"description": "Contact email address to look up.",
"type": "string"
},
"userId": {
"description": "Contact userId to look up (your app's user id).",
"type": "string"
}
},
"type": "object"
},
"name": "loops_find_contact",
"outputSchema": null
},
{
"description": "List contact fields / custom properties defined in Loops. Loops API: GET /v1/contacts/properties.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"list": {
"description": "Which properties to return: all (default) or custom only.",
"enum": [
"all",
"custom"
],
"type": "string"
}
},
"type": "object"
},
"name": "loops_list_contact_properties",
"outputSchema": null
},
{
"description": "List all mailing lists in the Loops account (id + name). Loops API: GET /v1/lists.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "loops_list_mailing_lists",
"outputSchema": null
},
{
"description": "Sends an event to Loops for a contact — TRIGGERS any automations/loops subscribed to this event. Loops API: POST /v1/events/send.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"contactProperties": {
"additionalProperties": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
}
]
},
"description": "Contact properties to update alongside the event.",
"propertyNames": {
"type": "string"
},
"type": "object"
},
"email": {
"description": "Contact email (supply email or userId).",
"type": "string"
},
"eventName": {
"description": "The event name to send (required).",
"type": "string"
},
"eventProperties": {
"additionalProperties": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
}
]
},
"description": "Properties attached to this event.",
"propertyNames": {
"type": "string"
},
"type": "object"
},
"mailingLists": {
"additionalProperties": {
"type": "boolean"
},
"description": "Map of mailing-list id -> subscribed boolean.",
"propertyNames": {
"type": "string"
},
"type": "object"
},
"userId": {
"description": "Contact userId (supply email or userId).",
"type": "string"
}
},
"required": [
"eventName"
],
"type": "object"
},
"name": "loops_send_event",
"outputSchema": null
},
{
"description": "SENDS a real transactional email via a Loops template. This dispatches an actual email to the recipient. Loops API: POST /v1/transactional.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"addToAudience": {
"description": "Whether to add the recipient to your audience.",
"type": "boolean"
},
"attachments": {
"description": "Optional attachments: array of { filename, contentType, data } objects.",
"items": {},
"type": "array"
},
"dataVariables": {
"additionalProperties": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
}
]
},
"description": "Template data variables (string/number) to interpolate into the template.",
"propertyNames": {
"type": "string"
},
"type": "object"
},
"email": {
"description": "Recipient email address (required).",
"type": "string"
},
"transactionalId": {
"description": "The Loops transactional template id (required).",
"type": "string"
}
},
"required": [
"transactionalId",
"email"
],
"type": "object"
},
"name": "loops_send_transactional",
"outputSchema": null
},
{
"description": "Verify the configured Loops API key and return the team name — a good first call. Loops API: GET /v1/api-key.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "loops_test_api_key",
"outputSchema": null
},
{
"description": "Updates (or creates) a contact by email/userId. Upserts — creates the contact if not found. Loops API: PUT /v1/contacts/update.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"email": {
"description": "Contact email address (required; identifies the contact).",
"type": "string"
},
"firstName": {
"description": "First name.",
"type": "string"
},
"lastName": {
"description": "Last name.",
"type": "string"
},
"mailingLists": {
"additionalProperties": {
"type": "boolean"
},
"description": "Map of mailing-list id -> subscribed boolean.",
"propertyNames": {
"type": "string"
},
"type": "object"
},
"properties": {
"additionalProperties": {
"anyOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
}
]
},
"description": "Arbitrary custom contact properties (string/number/boolean); merged into the request body.",
"propertyNames": {
"type": "string"
},
"type": "object"
},
"source": {
"description": "Source label.",
"type": "string"
},
"subscribed": {
"description": "Whether the contact is subscribed to email.",
"type": "boolean"
},
"userGroup": {
"description": "User group segment name.",
"type": "string"
},
"userId": {
"description": "Your app's user id (alternative identifier).",
"type": "string"
}
},
"required": [
"email"
],
"type": "object"
},
"name": "loops_update_contact",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:8a73bfe90b72209ad073aebb8e7bfccc6aebaa041e322722144b223eba89ab2f | sha256sum