{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-07T17:39:59.455Z","url":"https://verifymcp.io/servers/io-usefulapi-getfly-crm/getfly-crm","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-getfly-crm/getfly-crm.md","server":{"slug":"io-usefulapi-getfly-crm","name":"Getfly CRM MCP by usefulapi","registryName":"io.usefulapi/getfly-crm","description":"MCP server for Getfly CRM — customers, opportunities, orders, tickets and tasks.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"getfly-crm","type":"remote","identifier":"https://getfly-crm.usefulapi.io/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/io-usefulapi-getfly-crm/getfly-crm","version":"1.7.3","transport":null,"scoredAt":"2026-11-07T11:24:37.988Z"},"score":{"total":18,"tier":"low","status":"scored","weekDelta":-46,"history":[{"date":"2026-11-07","total":18},{"date":"2026-11-06","total":18},{"date":"2026-11-05","total":18},{"date":"2026-11-04","total":18},{"date":"2026-11-03","total":18},{"date":"2026-11-02","total":18},{"date":"2026-11-01","total":64},{"date":"2026-10-31","total":64}]},"categories":[{"name":"Endpoint Security","score":46,"verdict":"fail","reasons":["The endpoint's TLS certificate is valid, in date, and uses a strong key.","Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.","HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven.","HSTS check failed: the Strict-Transport-Security header is absent.","DNSSEC check failed: this domain isn't protected by DNSSEC."],"codes":[{"code":"tls.valid","args":{}},{"code":"auth.unreachable","args":{}},{"code":"https.inconclusive","args":{"reason":"redirect_not_https"}},{"code":"headers.hsts_absent","args":{}},{"code":"dnssec.absent","args":{}}]},{"name":"Transport & Reachability","score":0,"verdict":"fail","reasons":["Transport check failed: declared streamable-http, but the endpoint redirected instead of responding directly."],"codes":[{"code":"transport.redirected","args":{"transport":"streamable-http"}}]},{"name":"Schema Quality & AI Usability","score":0,"verdict":"unverified","reasons":["Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list."],"codes":[{"code":"schema.unreachable","args":{}}]},{"name":"Stability & Change Management","score":0,"verdict":"unverified","reasons":["Stability not yet verified: not enough scan history yet (needs a 30-day window)."],"codes":[{"code":"stability.insufficient_history","args":{}}]},{"name":"Tool Coverage","score":0,"verdict":"unverified","reasons":["Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list."],"codes":[{"code":"toolquality.unreachable","args":{}}]},{"name":"Tool Safety","score":0,"verdict":"unverified","reasons":["Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list."],"codes":[{"code":"toolsafety.unreachable","args":{}}]},{"name":"Capabilities","score":0,"verdict":"unverified","reasons":["Capabilities not yet verified: we couldn't read the endpoint's capabilities."],"codes":[{"code":"cap.unreachable","args":{}}]}],"inconclusive":["Authorisation not yet verified: we couldn't confirm whether this endpoint requires it.","HTTPS enforcement could not be verified: the plaintext port redirected somewhere other than https, so enforcement is unproven.","Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.","Stability not yet verified: not enough scan history yet (needs a 30-day window).","Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.","Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.","Capabilities not yet verified: we couldn't read the endpoint's capabilities."],"malware":[],"components":[{"slug":"getfly-crm","type":"remote","identifier":"https://getfly-crm.usefulapi.io/mcp","withdrawn":false,"score":18,"current":true,"url":"https://verifymcp.io/servers/io-usefulapi-getfly-crm/getfly-crm","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-getfly-crm/getfly-crm.md"}],"facts":[{"label":"Endpoint","value":"https://getfly-crm.usefulapi.io/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.7.3"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"getfly_list_users","title":"List users","description":"List the Getfly CRM users (employees): user id, name, department, email, phone. Use the user_name (login name) for the recipient/manager arguments of the create tools. Filters: user_id, contact_name, email, contact_mobile, valid (1 = active users). GET /api/v6.1/users.","inputs":[{"name":"direction","type":"string","required":false,"description":"Sort direction, used with sort (default asc)."},{"name":"fields","type":"string","required":false,"description":"Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set."},{"name":"filters","type":"object","required":false,"description":"Filters as { \"field\": value } or { \"field:operator\": value }; operators eq, is, in, not_in, contains, between, not_between, gte, gt, lte, lt. in, not_in, between and not_between take an array. Exampl…"},{"name":"limit","type":"integer","required":false,"description":"Records to return, 1-100 (default 20)."},{"name":"offset","type":"integer","required":false,"description":"Records to skip (default 0). Pass the previous reply's next_offset."},{"name":"sort","type":"string","required":false,"description":"Field to sort by (e.g. id, created_at, updated_at). Default: newest id first."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":312},{"name":"getfly_get_user","title":"Get user","description":"One user by id or by login name (exactly one of user_id and user_username). GET /api/v6.1/user.","inputs":[{"name":"fields","type":"string","required":false,"description":"Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set."},{"name":"user_id","type":"integer","required":false,"description":"User id (from getfly_list_users)."},{"name":"user_username","type":"string","required":false,"description":"User login name."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":95},{"name":"getfly_list_accounts","title":"List customers","description":"List customers (accounts, i.e. companies or individuals) with code, name, phone, email, address, type, source, relationship, manager, total revenue and contacts. Filters: id, account_code, account_name, phone_office, email, account_type, account_source, relation_id, industry, billing_address_street, created_at, updated_at (gte/lte/between), account_manager (user id), sale_order_status. Newest first. GET /api/v6/accounts.","inputs":[{"name":"direction","type":"string","required":false,"description":"Sort direction, used with sort (default asc)."},{"name":"fields","type":"string","required":false,"description":"Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set."},{"name":"filters","type":"object","required":false,"description":"Filters as { \"field\": value } or { \"field:operator\": value }; operators eq, is, in, not_in, contains, between, not_between, gte, gt, lte, lt. in, not_in, between and not_between take an array. Exampl…"},{"name":"limit","type":"integer","required":false,"description":"Records to return, 1-100 (default 20)."},{"name":"offset","type":"integer","required":false,"description":"Records to skip (default 0). Pass the previous reply's next_offset."},{"name":"sort","type":"string","required":false,"description":"Field to sort by (e.g. id, created_at, updated_at). Default: newest id first."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":345},{"name":"getfly_get_account","title":"Get customer","description":"One customer by its customer code (account_code, e.g. KH/2025/000001): full profile with contacts, custom fields, type, source, industry, manager and revenue. GET /api/v6.1/account?account_code=.","inputs":[{"name":"account_code","type":"string","required":true,"description":"Customer code (account_code), from getfly_list_accounts."},{"name":"fields","type":"string","required":false,"description":"Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":111},{"name":"getfly_create_account","title":"Create customer","description":"WRITE: Create a new customer (account) in Getfly CRM. The customer code must be unique (leave it out to let Getfly generate one). Type, source, industry, relationship, country, province, district and ward are given by NAME and must match the names configured in Getfly. Optionally adds one primary contact. Creating records may trigger the workflows and notifications set up in the CRM. POST /api/v6.1/account.","inputs":[{"name":"account_code","type":"string","required":false,"description":"Unique customer code. Optional."},{"name":"account_manager_username","type":"string","required":false,"description":"Login name of the managing user (getfly_list_users → user_name)."},{"name":"account_name","type":"string","required":true,"description":"Customer name (company or person)."},{"name":"account_source_names","type":"array","required":false,"description":"Customer source names."},{"name":"account_type_names","type":"array","required":false,"description":"Customer type names."},{"name":"billing_address_street","type":"string","required":false,"description":"Street address."},{"name":"birthday","type":"string","required":false,"description":"Birthday or founding date, yyyy-mm-dd."},{"name":"contact","type":"object","required":false,"description":"One primary contact person."},{"name":"country_name","type":"string","required":false,"description":null},{"name":"custom_fields","type":"object","required":false,"description":"Custom field values by field key."},{"name":"description","type":"string","required":false,"description":null},{"name":"district_name","type":"string","required":false,"description":null},{"name":"email","type":"string","required":false,"description":null},{"name":"industry_names","type":"array","required":false,"description":"Industry names."},{"name":"phone_office","type":"string","required":false,"description":"Office phone number."},{"name":"province_name","type":"string","required":false,"description":null},{"name":"relation_name","type":"string","required":false,"description":"Relationship name (e.g. New customer)."},{"name":"sic_code","type":"string","required":false,"description":"Tax code."},{"name":"ward_name","type":"string","required":false,"description":null},{"name":"website","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":327},{"name":"getfly_update_account","title":"Update customer","description":"WRITE: Update fields of an existing customer, found by its current customer code. Send only the fields to change. Names (relationship, country, province...) must match those configured in Getfly. Contacts and the type/source/industry lists are not editable here. PUT /api/v6.1/account.","inputs":[{"name":"account_code","type":"string","required":false,"description":"New customer code, only to rename the code."},{"name":"account_manager_username","type":"string","required":false,"description":"Login name of the new managing user."},{"name":"account_name","type":"string","required":false,"description":null},{"name":"billing_address_street","type":"string","required":false,"description":null},{"name":"birthday","type":"string","required":false,"description":"yyyy-mm-dd."},{"name":"country_name","type":"string","required":false,"description":null},{"name":"current_account_code","type":"string","required":true,"description":"The customer's current code (account_code)."},{"name":"custom_fields","type":"object","required":false,"description":"Custom field values by field key."},{"name":"description","type":"string","required":false,"description":null},{"name":"district_name","type":"string","required":false,"description":null},{"name":"email","type":"string","required":false,"description":null},{"name":"phone_office","type":"string","required":false,"description":null},{"name":"province_name","type":"string","required":false,"description":null},{"name":"relation_name","type":"string","required":false,"description":null},{"name":"sic_code","type":"string","required":false,"description":"Tax code."},{"name":"ward_name","type":"string","required":false,"description":null},{"name":"website","type":"string","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":242},{"name":"getfly_list_campaigns","title":"List campaigns","description":"List sales campaigns (opportunity pipelines): campaign code and name, responsible user, lock state, related users and the pipeline stages (status ids and names). GET /api/v6.1/campaigns.","inputs":[{"name":"fields","type":"string","required":false,"description":"Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":83},{"name":"getfly_get_campaign_stages","title":"Get campaign stages","description":"The pipeline stages of one campaign (status id, name and how many opportunities are in each). Pass exactly one of campaign_id and campaign_code. GET /api/v6.1/campaign/status.","inputs":[{"name":"campaign_code","type":"string","required":false,"description":null},{"name":"campaign_id","type":"integer","required":false,"description":null}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":68},{"name":"getfly_list_opportunities","title":"List opportunities","description":"List sales opportunities (deals in a campaign pipeline) with code, name, stage, probability, handler, customer and campaign. Filter by campaign with the campaign_code argument. GET /api/v6.1/opportunities.","inputs":[{"name":"campaign_code","type":"string","required":false,"description":"Only opportunities of this campaign (campaign code from getfly_list_campaigns)."},{"name":"direction","type":"string","required":false,"description":"Sort direction, used with sort (default asc)."},{"name":"fields","type":"string","required":false,"description":"Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set."},{"name":"filters","type":"object","required":false,"description":"Filters as { \"field\": value } or { \"field:operator\": value }; operators eq, is, in, not_in, contains, between, not_between, gte, gt, lte, lt. in, not_in, between and not_between take an array. Exampl…"},{"name":"limit","type":"integer","required":false,"description":"Records to return, 1-100 (default 20)."},{"name":"offset","type":"integer","required":false,"description":"Records to skip (default 0). Pass the previous reply's next_offset."},{"name":"sort","type":"string","required":false,"description":"Field to sort by (e.g. id, created_at, updated_at). Default: newest id first."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":312},{"name":"getfly_get_opportunity","title":"Get opportunity","description":"One opportunity by its code (e.g. CH2284): stage, probability, handler, customer and campaign. GET /api/v6.1/opportunity.","inputs":[{"name":"fields","type":"string","required":false,"description":"Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set."},{"name":"opportunity_code","type":"string","required":true,"description":"Opportunity code (opportunity_code)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":88},{"name":"getfly_list_opportunity_comments","title":"List opportunity comments","description":"The discussion (comments) on an opportunity: author, text and time. GET /api/v6.1/opportunity/{id}/comments.","inputs":[{"name":"direction","type":"string","required":false,"description":"Sort direction, used with sort (default asc)."},{"name":"fields","type":"string","required":false,"description":"Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set."},{"name":"limit","type":"integer","required":false,"description":"Records to return, 1-100 (default 20)."},{"name":"offset","type":"integer","required":false,"description":"Records to skip (default 0). Pass the previous reply's next_offset."},{"name":"opportunity_id","type":"integer","required":true,"description":"Opportunity id (the numeric id, not the code)."},{"name":"sort","type":"string","required":false,"description":"Field to sort by (e.g. id, created_at, updated_at). Default: newest id first."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":174},{"name":"getfly_create_opportunity","title":"Create opportunity","description":"WRITE: Create a sales opportunity in a campaign for a customer and assign it to a user. Creates (or links) the customer and contact from the details given. The assigned user and the campaign rules may be notified by Getfly. POST /api/v6.1/opportunity.","inputs":[{"name":"account_code","type":"string","required":false,"description":"Existing customer code, if the customer already exists."},{"name":"account_email","type":"string","required":false,"description":null},{"name":"account_name","type":"string","required":true,"description":"Customer name."},{"name":"account_phone","type":"string","required":true,"description":"Customer phone number."},{"name":"campaign_code","type":"string","required":true,"description":"Campaign code (getfly_list_campaigns)."},{"name":"contact_email","type":"string","required":false,"description":null},{"name":"contact_name","type":"string","required":true,"description":"Contact person name."},{"name":"contact_phone","type":"string","required":true,"description":"Contact phone number."},{"name":"recipient_username","type":"string","required":true,"description":"Login name of the user who handles it (getfly_list_users → user_name)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":184},{"name":"getfly_move_opportunity_stage","title":"Move opportunity to a pipeline stage","description":"WRITE: Move an opportunity to another stage of its campaign pipeline, without changing anything else. Identify the opportunity by code (or id) and the campaign by code (or id); the new stage by name (or status id) from getfly_get_campaign_stages. Won/lost/cancelled results are not set here. PUT /api/v6.1/opportunity/stage.","inputs":[{"name":"campaign_code","type":"string","required":false,"description":"Campaign code. Use this or campaign_id."},{"name":"campaign_id","type":"integer","required":false,"description":null},{"name":"opportunity_code","type":"string","required":false,"description":"Opportunity code. Use this or opportunity_id."},{"name":"opportunity_id","type":"integer","required":false,"description":null},{"name":"opportunity_status","type":"integer","required":false,"description":"New stage (status) id."},{"name":"opportunity_status_name","type":"string","required":false,"description":"New stage name. Use this or opportunity_status."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":170},{"name":"getfly_add_opportunity_comment","title":"Add opportunity comment","description":"WRITE: Post a comment in the discussion of an opportunity, as the given user. Other users following the opportunity may be notified. POST /api/v6.1/opportunity/{id}/comments.","inputs":[{"name":"content","type":"string","required":true,"description":"Comment text."},{"name":"opportunity_id","type":"integer","required":true,"description":"Opportunity id (the numeric id, not the code)."},{"name":"user_id","type":"integer","required":true,"description":"User id posting the comment (getfly_list_users)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":97},{"name":"getfly_list_products","title":"List products","description":"List products and services with code, name, category, unit, retail/wholesale/online price, sale price, VAT and dates. GET /api/v6.1/products.","inputs":[{"name":"direction","type":"string","required":false,"description":"Sort direction, used with sort (default asc)."},{"name":"fields","type":"string","required":false,"description":"Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set."},{"name":"limit","type":"integer","required":false,"description":"Records to return, 1-100 (default 20)."},{"name":"offset","type":"integer","required":false,"description":"Records to skip (default 0). Pass the previous reply's next_offset."},{"name":"sort","type":"string","required":false,"description":"Field to sort by (e.g. id, created_at, updated_at). Default: newest id first."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":162},{"name":"getfly_get_product","title":"Get product","description":"One product by its code (e.g. SP.00192): prices, unit, category, VAT, variants and custom fields. GET /api/v6.1/product.","inputs":[{"name":"fields","type":"string","required":false,"description":"Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set."},{"name":"product_code","type":"string","required":true,"description":"Product code (product_code)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":89},{"name":"getfly_list_sale_orders","title":"List sales orders","description":"List sales orders with code, customer, amounts, discount, VAT, status, payment status, assigned user and line items. Filters: id, order_date, created_at, updated_at (eq, gte, lte, between). Newest first. GET /api/v6.1/sale_orders.","inputs":[{"name":"direction","type":"string","required":false,"description":"Sort direction, used with sort (default asc)."},{"name":"fields","type":"string","required":false,"description":"Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set."},{"name":"filters","type":"object","required":false,"description":"Filters as { \"field\": value } or { \"field:operator\": value }; operators eq, is, in, not_in, contains, between, not_between, gte, gt, lte, lt. in, not_in, between and not_between take an array. Exampl…"},{"name":"limit","type":"integer","required":false,"description":"Records to return, 1-100 (default 20)."},{"name":"offset","type":"integer","required":false,"description":"Records to skip (default 0). Pass the previous reply's next_offset."},{"name":"order_date_from","type":"string","required":false,"description":"Orders dated on or after this day, yyyy-mm-dd."},{"name":"order_date_to","type":"string","required":false,"description":"Orders dated on or before this day, yyyy-mm-dd."},{"name":"sort","type":"string","required":false,"description":"Field to sort by (e.g. id, created_at, updated_at). Default: newest id first."},{"name":"updated_since","type":"string","required":false,"description":"Orders updated at or after this time, yyyy-mm-dd hh:mm:ss."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":370},{"name":"getfly_get_sale_order","title":"Get sales order","description":"One sales order by its order code: status, payment status, amounts, customer, line items, shipping info and custom fields. Add payment_periods to fields to include the payment schedule. GET /api/v6.1/sale_order.","inputs":[{"name":"fields","type":"string","required":false,"description":"Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set."},{"name":"order_code","type":"string","required":true,"description":"Order code (order_code), from getfly_list_sale_orders."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":110},{"name":"getfly_list_tickets","title":"List support tickets","description":"List support tickets with code, title, content, category, customer and custom fields. GET /api/v6.1/tickets.","inputs":[{"name":"direction","type":"string","required":false,"description":"Sort direction, used with sort (default asc)."},{"name":"fields","type":"string","required":false,"description":"Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set."},{"name":"filters","type":"object","required":false,"description":"Filters as { \"field\": value } or { \"field:operator\": value }; operators eq, is, in, not_in, contains, between, not_between, gte, gt, lte, lt. in, not_in, between and not_between take an array. Exampl…"},{"name":"limit","type":"integer","required":false,"description":"Records to return, 1-100 (default 20)."},{"name":"offset","type":"integer","required":false,"description":"Records to skip (default 0). Pass the previous reply's next_offset."},{"name":"sort","type":"string","required":false,"description":"Field to sort by (e.g. id, created_at, updated_at). Default: newest id first."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":272},{"name":"getfly_get_ticket","title":"Get support ticket","description":"One support ticket by its ticket code. GET /api/v6.1/ticket.","inputs":[{"name":"fields","type":"string","required":false,"description":"Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set."},{"name":"ticket_code","type":"string","required":true,"description":"Ticket code (ticket_code), from getfly_list_tickets."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":78},{"name":"getfly_list_ticket_comments","title":"List ticket comments","description":"The discussion (comments) on a support ticket: author, text and time. GET /api/v6.1/ticket/{id}/comments.","inputs":[{"name":"direction","type":"string","required":false,"description":"Sort direction, used with sort (default asc)."},{"name":"fields","type":"string","required":false,"description":"Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set."},{"name":"limit","type":"integer","required":false,"description":"Records to return, 1-100 (default 20)."},{"name":"offset","type":"integer","required":false,"description":"Records to skip (default 0). Pass the previous reply's next_offset."},{"name":"sort","type":"string","required":false,"description":"Field to sort by (e.g. id, created_at, updated_at). Default: newest id first."},{"name":"ticket_id","type":"integer","required":true,"description":"Ticket id (the numeric id, not the code)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":174},{"name":"getfly_list_ticket_categories","title":"List ticket categories","description":"The support ticket categories (id and name). Use a name as cate_name when creating a ticket. GET /api/v6.1/ticket/categories.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":42},{"name":"getfly_list_ticket_statuses","title":"List ticket statuses","description":"The support ticket statuses (id and name). Use a name as status_name when creating a ticket. GET /api/v6.1/ticket/status.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":43},{"name":"getfly_create_ticket","title":"Create support ticket","description":"WRITE: Create a support ticket, optionally for a customer. Category and status are given by NAME and must match the names configured in Getfly (getfly_list_ticket_categories, getfly_list_ticket_statuses). The content may contain HTML. Getfly may notify the support team. POST /api/v6.1/ticket.","inputs":[{"name":"account_code","type":"string","required":false,"description":"Customer code."},{"name":"account_email","type":"string","required":false,"description":"Customer email."},{"name":"cate_name","type":"string","required":false,"description":"Category name."},{"name":"contact_name","type":"string","required":false,"description":"Contact person name."},{"name":"emergency_phone","type":"string","required":false,"description":"Emergency contact phone."},{"name":"expected_at","type":"string","required":false,"description":"Expected resolution date, yyyy-mm-dd."},{"name":"status_name","type":"string","required":false,"description":"Initial status name."},{"name":"ticket_content","type":"string","required":true,"description":"Ticket text (HTML allowed)."},{"name":"ticket_title","type":"string","required":true,"description":"Short title."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":177},{"name":"getfly_list_tasks","title":"List tasks","description":"List tasks with code, name, start/end time, status, progress, assignee, project and related customers. GET /api/v6.1/tasks.","inputs":[{"name":"fields","type":"string","required":false,"description":"Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set."},{"name":"limit","type":"integer","required":false,"description":"Records to return, 1-100 (default 20)."},{"name":"offset","type":"integer","required":false,"description":"Records to skip (default 0). Pass the previous reply's next_offset."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":113},{"name":"getfly_get_task","title":"Get task","description":"One task by its task code: status, progress, assignee, project, dates and custom fields. GET /api/v6.1/task.","inputs":[{"name":"fields","type":"string","required":false,"description":"Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set."},{"name":"task_code","type":"string","required":true,"description":"Task code (task_code), from getfly_list_tasks."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":89},{"name":"getfly_create_task","title":"Create task","description":"WRITE: Create a task, optionally in a project, assigned to a user and linked to a customer. Project and task type are given by NAME and must exist in Getfly; users by login name. The assignee may be notified by Getfly. POST /api/v6.1/task.","inputs":[{"name":"account_code","type":"string","required":false,"description":"Code of a customer to link to the task."},{"name":"project_name","type":"string","required":false,"description":"Project name (must exist)."},{"name":"related_users","type":"array","required":false,"description":"Login names of related users."},{"name":"task_code","type":"string","required":false,"description":"Unique task code. Optional."},{"name":"task_description","type":"string","required":false,"description":"Description (HTML allowed)."},{"name":"task_end_date","type":"string","required":false,"description":"End, yyyy-mm-dd hh:mm:ss."},{"name":"task_name","type":"string","required":true,"description":"Task name."},{"name":"task_parent_code","type":"string","required":false,"description":"Code of the parent task."},{"name":"task_receiver_username","type":"string","required":false,"description":"Login name of the assignee (getfly_list_users → user_name)."},{"name":"task_start_date","type":"string","required":false,"description":"Start, yyyy-mm-dd hh:mm:ss."},{"name":"task_type_name","type":"string","required":false,"description":"Task type name."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":231},{"name":"getfly_complete_task","title":"Complete task","description":"WRITE: Mark a task as completed, by its task code. POST /api/v6.1/task/complete.","inputs":[{"name":"task_code","type":"string","required":true,"description":"Task code (task_code)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":47},{"name":"getfly_list_funds","title":"List funds","description":"List the cash/bank funds (accounts for receipts and payments) with id, name, parent, level and financial account. GET /api/v6.1/funds.","inputs":[{"name":"direction","type":"string","required":false,"description":"Sort direction, used with sort (default asc)."},{"name":"fields","type":"string","required":false,"description":"Comma-separated field names to return (e.g. id,account_name,email). Leave empty for the default set."},{"name":"filters","type":"object","required":false,"description":"Filters as { \"field\": value } or { \"field:operator\": value }; operators eq, is, in, not_in, contains, between, not_between, gte, gt, lte, lt. in, not_in, between and not_between take an array. Exampl…"},{"name":"limit","type":"integer","required":false,"description":"Records to return, 1-100 (default 20)."},{"name":"offset","type":"integer","required":false,"description":"Records to skip (default 0). Pass the previous reply's next_offset."},{"name":"sort","type":"string","required":false,"description":"Field to sort by (e.g. id, created_at, updated_at). Default: newest id first."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":280}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-07T11:24:37.000Z","track":"remote","endpoint":"https://getfly-crm.usefulapi.io/mcp","declaredUrl":null,"truncated":false,"tls":{"outcome":"valid","label":"Valid","version":"TLS 1.3","cipherSuite":"TLS_AES_128_GCM_SHA256","chainError":null,"certificates":[{"subject":"CN=usefulapi.io","issuer":"CN=WE1,O=Google Trust Services,C=US","notBefore":"2026-09-13T08:55:39Z","notAfter":"2026-12-12T09:54:12Z","keyType":"ECDSA","keyBits":256,"isCa":false},{"subject":"CN=WE1,O=Google Trust Services,C=US","issuer":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","notBefore":"2023-12-13T09:00:00Z","notAfter":"2029-02-20T14:00:00Z","keyType":"ECDSA","keyBits":256,"isCa":true},{"subject":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","issuer":"CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE","notBefore":"2023-11-15T03:43:21Z","notAfter":"2028-01-28T00:00:42Z","keyType":"ECDSA","keyBits":384,"isCa":true}]},"dnssec":{"result":"insecure","label":"Not signed","name":"getfly-crm.usefulapi.io.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"io.","outcome":"verified","label":"Verified"},{"zone":"usefulapi.io.","outcome":"insecure_proven","label":"Unsigned (proven)"}]},"auth":{"outcome":"inconclusive","label":"Inconclusive","gate":null,"gateLabel":null,"status":302,"authorizationServers":[]},"httpsRedirect":{"outcome":"inconclusive","label":"Inconclusive","status":302},"transports":[{"transport":"streamable-http","outcome":"redirected","label":"Redirected","status":302,"followed":false}],"provenance":null,"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":null},"mismatches":[],"changelog":{"trackingSince":"2026-10-31","recent":[{"id":"chg_01a1ae2c-eecb-713c-b78a-924ba30b80ad","kind":"score.rubric_changed","summary":"We updated how we score, so this day's move reflects our rubric, not a change to the server","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-06","url":"https://verifymcp.io/servers/io-usefulapi-getfly-crm/getfly-crm#chg-chg_01a1ae2c-eecb-713c-b78a-924ba30b80ad"},{"id":"chg_01a1998f-5da9-7818-973b-08efff3736e3","kind":"check.unverifiable","summary":"Tool safety (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-getfly-crm/getfly-crm#chg-chg_01a1998f-5da9-7818-973b-08efff3736e3"},{"id":"chg_01a1998f-5daa-77fd-a871-24f7f7721494","kind":"check.unverifiable","summary":"Authorization (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-getfly-crm/getfly-crm#chg-chg_01a1998f-5daa-77fd-a871-24f7f7721494"},{"id":"chg_01a1998f-5dab-7c7a-a795-0fb512e7c088","kind":"check.unverifiable","summary":"Stability (0.03 → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-getfly-crm/getfly-crm#chg-chg_01a1998f-5dab-7c7a-a795-0fb512e7c088"},{"id":"chg_01a1998f-5dac-7c0d-9559-023724b8a230","kind":"check.unverifiable","summary":"Schema quality (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-getfly-crm/getfly-crm#chg-chg_01a1998f-5dac-7c0d-9559-023724b8a230"},{"id":"chg_01a1998f-5dad-78b9-945f-129613c3b3e2","kind":"check.unverifiable","summary":"Capabilities (pass → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-getfly-crm/getfly-crm#chg-chg_01a1998f-5dad-78b9-945f-129613c3b3e2"},{"id":"chg_01a1998f-5dad-7e57-a6fe-f0b217aa8ea6","kind":"check.unverifiable","summary":"Tool coverage (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-getfly-crm/getfly-crm#chg-chg_01a1998f-5dad-7e57-a6fe-f0b217aa8ea6"},{"id":"chg_01a1998f-5daf-766d-9028-1a92fe964c4c","kind":"capture.status_changed","summary":"Endpoint reachability (reachable → not serving MCP)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-getfly-crm/getfly-crm#chg-chg_01a1998f-5daf-766d-9028-1a92fe964c4c"},{"id":"chg_01a1998f-5daf-7b4b-a01a-c5264d8e216f","kind":"score.total_changed","summary":"Trust score (64 → 18)","materiality":"functional","direction":"regression","scoreDelta":-46,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/io-usefulapi-getfly-crm/getfly-crm#chg-chg_01a1998f-5daf-7b4b-a01a-c5264d8e216f"},{"id":"chg_01a19468-4269-7470-8a88-7acccfdd92e3","kind":"check.reverified","summary":"Stability (unverified → 0.03)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-getfly-crm/getfly-crm#chg-chg_01a19468-4269-7470-8a88-7acccfdd92e3"},{"id":"chg_01a193fa-2c05-7e63-8eb1-e8cbb053529d","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-getfly-crm/getfly-crm#chg-chg_01a193fa-2c05-7e63-8eb1-e8cbb053529d"},{"id":"chg_01a18fe7-6586-75dc-a7cc-4d5c98783749","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-10-31","url":"https://verifymcp.io/servers/io-usefulapi-getfly-crm/getfly-crm#chg-chg_01a18fe7-6586-75dc-a7cc-4d5c98783749"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/io-usefulapi-getfly-crm/getfly-crm/changelog.json"},"links":{"html":"https://verifymcp.io/servers/io-usefulapi-getfly-crm/getfly-crm","markdown":"https://verifymcp.io/servers/io-usefulapi-getfly-crm/getfly-crm.md","changelogJson":"https://verifymcp.io/servers/io-usefulapi-getfly-crm/getfly-crm/changelog.json","changelogRss":"https://verifymcp.io/servers/io-usefulapi-getfly-crm/getfly-crm.xml","external":[{"label":"Remote endpoint","href":"https://getfly-crm.usefulapi.io/mcp"},{"label":"Repository","href":"https://github.com/m190/usefulapi-mcp"},{"label":"Website","href":"https://usefulapi.io/getfly-crm/"}]}}