Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,556Letters: 14Defects: 1,331counted 4 min ago
teppi

Server definition

Hash
sha256:3dc5cd6010d1deda35caca51ccd59bf4a566ee8b4d44117e050fbbaab0802f16
What it is
What a remote MCP server returned when asked what it offers: 12 tools

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "description": "MUTATES Memberful data: change WHEN a subscription expires (extend or shorten access). expiresAt is a Unix timestamp in SECONDS (Int). Memberful GraphQL: subscriptionChangeExpirationTime(id, expiresAt).", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "expiresAt": { "description": "New expiration as a Unix timestamp in SECONDS (Int, required).", "maximum": 9007199254740991, "minimum": -9007199254740991, "type": "integer" }, "id": { "description": "The subscription id (required).", "type": "string" } }, "required": [ "id", "expiresAt" ], "type": "object" }, "name": "change_subscription_expiration", "outputSchema": null }, { "description": "MUTATES Memberful data: create one or more coupon codes for a discount. Provide the discount id (discountId) and the coupon code strings. Memberful GraphQL: createCoupons(discountId, coupons).", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "codes": { "description": "Coupon code strings to create (at least one, required).", "items": { "type": "string" }, "minItems": 1, "type": "array" }, "discountId": { "description": "The discount id to attach the coupons to.", "type": "string" } }, "required": [ "codes" ], "type": "object" }, "name": "create_coupons", "outputSchema": null }, { "description": "MUTATES Memberful data: create a new member with an email (and optional full name). Memberful GraphQL: memberCreate(email, fullName).", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "email": { "description": "The new member's email (required).", "type": "string" }, "fullName": { "description": "The new member's full name.", "type": "string" } }, "required": [ "email" ], "type": "object" }, "name": "create_member", "outputSchema": null }, { "description": "Fetch one Memberful member by id: profile, Stripe customer id, unrestricted-access flag, total spend, metadata, address, and their subscriptions (each with plan). Memberful GraphQL: member(id).", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "id": { "description": "The member id.", "type": "string" } }, "required": [ "id" ], "type": "object" }, "name": "get_member", "outputSchema": null }, { "description": "Fetch one subscription by id: status, activated/expires/trial timestamps, plan, member, orders, coupon. Memberful GraphQL: subscription(id).", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "id": { "description": "The subscription id.", "type": "string" } }, "required": [ "id" ], "type": "object" }, "name": "get_subscription", "outputSchema": null }, { "description": "List members (Relay connection): each edge has a cursor + node (profile, Stripe customer id, unrestricted-access flag, total spend, and their subscriptions). Paginate with `first` + `after` (pass the last edge's `cursor`); `first` defaults to 50. Set `activeOnly` to return only members with an ACTIVE membership state. For member-state filters beyond active, use memberful_query. Memberful GraphQL: members connection.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "activeOnly": { "description": "Only return members with an ACTIVE membership state.", "type": "boolean" }, "after": { "description": "Cursor for the next page (the `cursor` of the last edge from a prior call).", "type": "string" }, "before": { "description": "Cursor for the previous page.", "type": "string" }, "first": { "description": "Max members to return, from the start (page size).", "maximum": 1000, "minimum": 1, "type": "integer" }, "last": { "description": "Max members to return, from the end.", "maximum": 1000, "minimum": 1, "type": "integer" } }, "type": "object" }, "name": "list_members", "outputSchema": null }, { "description": "List all passes (Memberful dashboard 'Plans' — the access groups a member subscribes to): id, name. Memberful GraphQL: passes.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "list_passes", "outputSchema": null }, { "description": "List all plans (Memberful dashboard 'Prices'): name, interval, price (cents), for-sale flag, plan group. Memberful GraphQL: plans.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": {}, "type": "object" }, "name": "list_plans", "outputSchema": null }, { "description": "List subscriptions (Relay connection): each edge has a cursor + node (status, expires/created timestamps, plan, member). Paginate with `first` + `after` (pass the last edge's `cursor`); `first` defaults to 50. NOTE: this uses the top-level `subscriptions` connection, which is sourced from the community SDK — validate against a live account. Memberful GraphQL: subscriptions connection.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "after": { "description": "Cursor for the next page (the `cursor` of the last edge from a prior call).", "type": "string" }, "before": { "description": "Cursor for the previous page.", "type": "string" }, "first": { "description": "Max subscriptions to return, from the start (page size).", "maximum": 1000, "minimum": 1, "type": "integer" }, "last": { "description": "Max subscriptions to return, from the end.", "maximum": 1000, "minimum": 1, "type": "integer" } }, "type": "object" }, "name": "list_subscriptions", "outputSchema": null }, { "description": "MUTATES Memberful data (potentially): escape hatch to run an arbitrary Memberful GraphQL operation — including any mutation — against your account's /api/graphql endpoint with optional variables. Prefer memberful_query for read-only calls.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "query": { "description": "A GraphQL query or mutation document.", "type": "string" }, "variables": { "additionalProperties": {}, "description": "Variables object for the operation.", "propertyNames": { "type": "string" }, "type": "object" } }, "required": [ "query" ], "type": "object" }, "name": "memberful_graphql", "outputSchema": null }, { "description": "Escape hatch: run an arbitrary Memberful GraphQL QUERY (read-only) against your account's /api/graphql endpoint with optional variables. Mutations are REJECTED — use the dedicated write tools or memberful_graphql for those. Useful for fields not covered by the curated read tools (e.g. member-state filters beyond active).", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "query": { "description": "A GraphQL query document (must be a query, not a mutation).", "type": "string" }, "variables": { "additionalProperties": {}, "description": "Variables object for the query.", "propertyNames": { "type": "string" }, "type": "object" } }, "required": [ "query" ], "type": "object" }, "name": "memberful_query", "outputSchema": null }, { "description": "MUTATES Memberful data: update a member's metadata (a JSON string; max 50 keys, 40-char keys, 500-char values). Only metadata is supported here; for other inline member fields use memberful_graphql. Memberful GraphQL: memberUpdate(id, metadata).", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "id": { "description": "The member id (required).", "type": "string" }, "metadata": { "description": "Metadata as a JSON string (max 50 keys, 40-char keys, 500-char values).", "type": "string" } }, "required": [ "id" ], "type": "object" }, "name": "update_member", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:3dc5cd6010d1deda35caca51ccd59bf4a566ee8b4d44117e050fbbaab0802f16 | sha256sum