{"$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-05T19:29:39.808Z","url":"https://verifymcp.io/servers/io-usefulapi-jurnal/jurnal","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-jurnal/jurnal.md","server":{"slug":"io-usefulapi-jurnal","name":"Mekari Jurnal MCP by usefulapi","registryName":"io.usefulapi/jurnal","description":"MCP server for Mekari Jurnal — company accounting, sales, purchases and customer/vendor creation.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"jurnal","type":"remote","identifier":"https://jurnal.usefulapi.io/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/io-usefulapi-jurnal/jurnal","version":"1.6.3","transport":null,"scoredAt":"2026-11-05T15:02:14.109Z"},"score":{"total":18,"tier":"low","status":"scored","weekDelta":null,"history":[{"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":18},{"date":"2026-10-31","total":65}]},"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":"jurnal","type":"remote","identifier":"https://jurnal.usefulapi.io/mcp","withdrawn":false,"score":18,"current":true,"url":"https://verifymcp.io/servers/io-usefulapi-jurnal/jurnal","markdownUrl":"https://verifymcp.io/servers/io-usefulapi-jurnal/jurnal.md"}],"facts":[{"label":"Endpoint","value":"https://jurnal.usefulapi.io/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.6.3"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"jurnal_get_current_user","title":"Get the current user","description":"The Jurnal user the credential acts as: id, name, email, status, owner flag and roles. GET /public/jurnal/api/v1/users/me.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":43},{"name":"jurnal_list_companies","title":"List companies","description":"The Jurnal company (or companies) the credential belongs to: id, name, industry, address, tax number, currency settings and feature flags. GET /companies.","inputs":[{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Use next_page from the previous reply."},{"name":"page_size","type":"integer","required":false,"description":"Results per page, 1-100 (Jurnal's default applies when omitted)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":93},{"name":"jurnal_list_customers","title":"List customers","description":"Customers with display name, addresses, email, phone, tax number and receivable balance. Paged. GET /customers.","inputs":[{"name":"include_archive","type":"boolean","required":false,"description":"false = only active (non-archived) records; Jurnal includes archived ones by default."},{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Use next_page from the previous reply."},{"name":"page_size","type":"integer","required":false,"description":"Results per page, 1-100 (Jurnal's default applies when omitted)."},{"name":"sort_key","type":"string","required":false,"description":"Sort field: display_name, billing_address, email, phone, balance_customer."},{"name":"sort_order","type":"string","required":false,"description":"Sort direction."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":144},{"name":"jurnal_get_customer","title":"Get a customer","description":"One customer by id (from jurnal_list_customers). GET /customers/{id}.","inputs":[{"name":"id","type":"integer","required":true,"description":"Customer id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":35},{"name":"jurnal_list_vendors","title":"List vendors","description":"Vendors (suppliers) with display name, addresses, email, phone, tax number and payable balance. Paged. GET /vendors.","inputs":[{"name":"include_archive","type":"boolean","required":false,"description":"false = only active (non-archived) records; Jurnal includes archived ones by default."},{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Use next_page from the previous reply."},{"name":"page_size","type":"integer","required":false,"description":"Results per page, 1-100 (Jurnal's default applies when omitted)."},{"name":"sort_key","type":"string","required":false,"description":"Sort field: display_name, billing_address, email, phone."},{"name":"sort_order","type":"string","required":false,"description":"Sort direction."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":144},{"name":"jurnal_get_vendor","title":"Get a vendor","description":"One vendor by id (from jurnal_list_vendors). GET /vendors/{id}.","inputs":[{"name":"id","type":"integer","required":true,"description":"Vendor id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":35},{"name":"jurnal_list_products","title":"List products","description":"Products and services: code, name, buy and sell prices, stock quantity, category, units, active flag. Paged. GET /products.","inputs":[{"name":"include_archive","type":"boolean","required":false,"description":"false = only active (non-archived) records; Jurnal includes archived ones by default."},{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Use next_page from the previous reply."},{"name":"page_size","type":"integer","required":false,"description":"Results per page, 1-100 (Jurnal's default applies when omitted)."},{"name":"sort_key","type":"string","required":false,"description":"Sort field: product_code, name, quantity_inventory, last_avg_price, last_buy_price, buy_price_per_unit, sell_price_per_unit, product_categories_name."},{"name":"sort_order","type":"string","required":false,"description":"Sort direction."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":165},{"name":"jurnal_get_product","title":"Get a product","description":"One product by id (from jurnal_list_products). GET /products/{id}.","inputs":[{"name":"id","type":"integer","required":true,"description":"Product id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":34},{"name":"jurnal_list_accounts","title":"List chart of accounts","description":"The chart of accounts: id, number, name, category, currency and balance. Not paged. Use the ids as account_id in jurnal_get_general_ledger. GET /accounts.","inputs":[{"name":"include_archive","type":"boolean","required":false,"description":"false = only active (non-archived) records; Jurnal includes archived ones by default."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":74},{"name":"jurnal_get_account","title":"Get an account","description":"One chart-of-accounts entry by id. GET /accounts/{id}.","inputs":[{"name":"id","type":"integer","required":true,"description":"Account id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":33},{"name":"jurnal_list_sales_invoices","title":"List sales invoices","description":"Sales invoices: number, customer, dates, status, total (original_amount) and balance due (remaining). Sort by transaction_date or remaining to find recent or unpaid ones. Paged. GET /sales_invoices.","inputs":[{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Use next_page from the previous reply."},{"name":"page_size","type":"integer","required":false,"description":"Results per page, 1-100 (Jurnal's default applies when omitted)."},{"name":"sort_key","type":"string","required":false,"description":"Sort field: transaction_date, get_number, people_display_name, transaction_status_name, remaining, original_amount, created_at."},{"name":"sort_order","type":"string","required":false,"description":"Sort direction."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":146},{"name":"jurnal_get_sales_invoice","title":"Get a sales invoice","description":"One sales invoice with its lines, taxes and payments. GET /sales_invoices/{id}.","inputs":[{"name":"id","type":"integer","required":true,"description":"Sales invoice id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":39},{"name":"jurnal_list_sales_orders","title":"List sales orders","description":"Sales orders with customer, dates, status and totals. Paged. GET /sales_orders.","inputs":[{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Use next_page from the previous reply."},{"name":"page_size","type":"integer","required":false,"description":"Results per page, 1-100 (Jurnal's default applies when omitted)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":78},{"name":"jurnal_list_sales_quotes","title":"List sales quotes","description":"Sales quotes (offers) with customer, dates, status and totals. Paged. GET /sales_quotes.","inputs":[{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Use next_page from the previous reply."},{"name":"page_size","type":"integer","required":false,"description":"Results per page, 1-100 (Jurnal's default applies when omitted)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":81},{"name":"jurnal_list_receive_payments","title":"List received payments","description":"Customer payments received against sales invoices. Paged. GET /receive_payments.","inputs":[{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Use next_page from the previous reply."},{"name":"page_size","type":"integer","required":false,"description":"Results per page, 1-100 (Jurnal's default applies when omitted)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":76},{"name":"jurnal_list_purchase_invoices","title":"List purchase invoices","description":"Purchase invoices (bills from vendors): number, vendor, dates, status, total and balance due. Paged. GET /purchase_invoices.","inputs":[{"name":"end_date","type":"string","required":false,"description":"Only transactions up to this date, yyyy-mm-dd. Needs sort_key transaction_no or created_at."},{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Use next_page from the previous reply."},{"name":"page_size","type":"integer","required":false,"description":"Results per page, 1-100 (Jurnal's default applies when omitted)."},{"name":"sort_key","type":"string","required":false,"description":"Sort field: transaction_date, created_at, transaction_no, people_display_name, due_date, transaction_status_name, remaining, original_amount."},{"name":"sort_order","type":"string","required":false,"description":"Sort direction."},{"name":"start_date","type":"string","required":false,"description":"Only transactions from this date, yyyy-mm-dd. Needs sort_key transaction_no or created_at (Jurnal applies the date range only with those)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":198},{"name":"jurnal_get_purchase_invoice","title":"Get a purchase invoice","description":"One purchase invoice with its lines, taxes and payments. GET /purchase_invoices/{id}.","inputs":[{"name":"id","type":"integer","required":true,"description":"Purchase invoice id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":39},{"name":"jurnal_list_purchase_orders","title":"List purchase orders","description":"Purchase orders with vendor, dates, status and totals. Paged. GET /purchase_orders.","inputs":[{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Use next_page from the previous reply."},{"name":"page_size","type":"integer","required":false,"description":"Results per page, 1-100 (Jurnal's default applies when omitted)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":78},{"name":"jurnal_list_purchase_payments","title":"List purchase payments","description":"Payments made to vendors against purchase invoices. Paged. GET /purchase_payments.","inputs":[{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Use next_page from the previous reply."},{"name":"page_size","type":"integer","required":false,"description":"Results per page, 1-100 (Jurnal's default applies when omitted)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":77},{"name":"jurnal_list_expenses","title":"List expenses","description":"Expenses: number, date, beneficiary, status, total and balance due. Paged. GET /expenses.","inputs":[{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Use next_page from the previous reply."},{"name":"page_size","type":"integer","required":false,"description":"Results per page, 1-100 (Jurnal's default applies when omitted)."},{"name":"sort_key","type":"string","required":false,"description":"Sort field: transaction_date, transaction_no, transaction_status_name, remaining, original_amount."},{"name":"sort_order","type":"string","required":false,"description":"Sort direction."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":116},{"name":"jurnal_get_expense","title":"Get an expense","description":"One expense with its lines. GET /expenses/{id}.","inputs":[{"name":"id","type":"integer","required":true,"description":"Expense id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":31},{"name":"jurnal_list_journal_entries","title":"List journal entries","description":"Manual journal entries (general journal). Paged. GET /journal_entries.","inputs":[{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Use next_page from the previous reply."},{"name":"page_size","type":"integer","required":false,"description":"Results per page, 1-100 (Jurnal's default applies when omitted)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":75},{"name":"jurnal_get_journal_entry","title":"Get a journal entry","description":"One journal entry with its debit and credit lines. GET /journal_entries/{id}.","inputs":[{"name":"id","type":"integer","required":true,"description":"Journal entry id."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":38},{"name":"jurnal_list_taxes","title":"List taxes","description":"The company's tax rates (PPN, PPh and so on). Paged. GET /taxes.","inputs":[{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Use next_page from the previous reply."},{"name":"page_size","type":"integer","required":false,"description":"Results per page, 1-100 (Jurnal's default applies when omitted)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":81},{"name":"jurnal_list_tags","title":"List transaction tags","description":"Transaction tags. Not paged. GET /tags.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":20},{"name":"jurnal_list_payment_methods","title":"List payment methods","description":"Payment methods (cash, transfer and so on). Not paged. GET /payment_methods.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":29},{"name":"jurnal_list_warehouses","title":"List warehouses","description":"Warehouses (needs a Jurnal plan with inventory). Paged. GET /warehouses.","inputs":[{"name":"page","type":"integer","required":false,"description":"Page number, 1-based (default 1). Use next_page from the previous reply."},{"name":"page_size","type":"integer","required":false,"description":"Results per page, 1-100 (Jurnal's default applies when omitted)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":79},{"name":"jurnal_list_product_categories","title":"List product categories","description":"Product categories. Not paged. GET /product_categories.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":22},{"name":"jurnal_get_profit_and_loss","title":"Get the profit and loss report","description":"Profit and loss (income statement) for a period: revenue, cost of sales, expenses and net profit by account. Dates are yyyy-mm-dd. GET /profit_and_loss.","inputs":[{"name":"compare_type","type":"string","required":false,"description":"Period shortcut (day = today). Use custom with start_date and end_date."},{"name":"end_date","type":"string","required":false,"description":"End of the period, yyyy-mm-dd (default today)."},{"name":"start_date","type":"string","required":false,"description":"Start of the period, yyyy-mm-dd (default today)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":108},{"name":"jurnal_get_balance_sheet","title":"Get the balance sheet","description":"Balance sheet as of end_date (yyyy-mm-dd, default today): assets, liabilities and equity by account. GET /balance_sheet.","inputs":[{"name":"end_date","type":"string","required":false,"description":"End of the period, yyyy-mm-dd (default today)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":56},{"name":"jurnal_get_trial_balance","title":"Get the trial balance","description":"Trial balance for a period: opening, movement and closing balance of every account. GET /trial_balance.","inputs":[{"name":"compare_type","type":"string","required":false,"description":"Period shortcut (day = today). Use custom with start_date and end_date."},{"name":"end_date","type":"string","required":false,"description":"End of the period, yyyy-mm-dd (default today)."},{"name":"start_date","type":"string","required":false,"description":"Start of the period, yyyy-mm-dd (default today)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":92},{"name":"jurnal_get_cash_flow","title":"Get the cash flow report","description":"Cash flow statement for a period (operating, investing, financing). GET /cash_flow.","inputs":[{"name":"compare_type","type":"string","required":false,"description":"Period shortcut (day = today). Use custom with start_date and end_date."},{"name":"end_date","type":"string","required":false,"description":"End of the period, yyyy-mm-dd (default today)."},{"name":"start_date","type":"string","required":false,"description":"Start of the period, yyyy-mm-dd (default today)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":90},{"name":"jurnal_get_general_ledger","title":"Get the general ledger","description":"General ledger for a period, optionally limited to some accounts (ids from jurnal_list_accounts). GET /general_ledger.","inputs":[{"name":"account_ids","type":"array","required":false,"description":"Only these accounts (ids from jurnal_list_accounts)."},{"name":"compare_type","type":"string","required":false,"description":"Period shortcut (day = today). Use custom with start_date and end_date."},{"name":"end_date","type":"string","required":false,"description":"End of the period, yyyy-mm-dd (default today)."},{"name":"start_date","type":"string","required":false,"description":"Start of the period, yyyy-mm-dd (default today)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":113},{"name":"jurnal_get_aged_receivables","title":"Get aged receivables","description":"Aged receivables: what customers owe, bucketed by how overdue it is. GET /aged_receivables.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":38},{"name":"jurnal_get_aged_payables","title":"Get aged payables","description":"Aged payables: what is owed to vendors, bucketed by how overdue it is. GET /aged_payables.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":37},{"name":"jurnal_get_executive_summary","title":"Get the executive summary","description":"Executive summary: key figures (cash, revenue, profit, receivables, payables) for the company. GET /executive_summary.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":41},{"name":"jurnal_create_customer","title":"Create a customer","description":"Create a new customer contact in Jurnal. This writes to the user's books (a customer can be archived or deleted later in Jurnal). Only display_name is required. POST /customers.","inputs":[{"name":"address","type":"string","required":false,"description":null},{"name":"associate_company","type":"string","required":false,"description":"Company the contact belongs to."},{"name":"billing_address","type":"string","required":false,"description":null},{"name":"display_name","type":"string","required":true,"description":"Display name shown in Jurnal (required)."},{"name":"email","type":"string","required":false,"description":null},{"name":"first_name","type":"string","required":false,"description":null},{"name":"last_name","type":"string","required":false,"description":null},{"name":"mobile","type":"string","required":false,"description":null},{"name":"other_detail","type":"string","required":false,"description":null},{"name":"phone","type":"string","required":false,"description":null},{"name":"tax_no","type":"string","required":false,"description":"Tax number (NPWP)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":149},{"name":"jurnal_create_vendor","title":"Create a vendor","description":"Create a new vendor (supplier) contact in Jurnal. This writes to the user's books (a vendor can be archived or deleted later in Jurnal). Only display_name is required. POST /vendors.","inputs":[{"name":"address","type":"string","required":false,"description":null},{"name":"associate_company","type":"string","required":false,"description":"Company the contact belongs to."},{"name":"billing_address","type":"string","required":false,"description":null},{"name":"display_name","type":"string","required":true,"description":"Display name shown in Jurnal (required)."},{"name":"email","type":"string","required":false,"description":null},{"name":"first_name","type":"string","required":false,"description":null},{"name":"last_name","type":"string","required":false,"description":null},{"name":"mobile","type":"string","required":false,"description":null},{"name":"other_detail","type":"string","required":false,"description":null},{"name":"phone","type":"string","required":false,"description":null},{"name":"tax_no","type":"string","required":false,"description":"Tax number (NPWP)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":152}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T15:02:14.000Z","track":"remote","endpoint":"https://jurnal.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":"jurnal.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_01a19668-37f3-73bc-a400-69d4c8a8baf3","kind":"check.unverifiable","summary":"Tool safety (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-jurnal/jurnal#chg-chg_01a19668-37f3-73bc-a400-69d4c8a8baf3"},{"id":"chg_01a19668-37f5-70d7-aec1-238a757205f2","kind":"check.unverifiable","summary":"Authorization (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-jurnal/jurnal#chg-chg_01a19668-37f5-70d7-aec1-238a757205f2"},{"id":"chg_01a19668-37f5-765e-b65a-1d20a313bd8b","kind":"check.unverifiable","summary":"Schema quality (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-jurnal/jurnal#chg-chg_01a19668-37f5-765e-b65a-1d20a313bd8b"},{"id":"chg_01a19668-37f5-7ab1-be07-1bc62df2baa2","kind":"check.unverifiable","summary":"Capabilities (pass → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-jurnal/jurnal#chg-chg_01a19668-37f5-7ab1-be07-1bc62df2baa2"},{"id":"chg_01a19668-37f5-7e4f-8bc9-9b1ec26dd580","kind":"check.unverifiable","summary":"Tool coverage (100 → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-jurnal/jurnal#chg-chg_01a19668-37f5-7e4f-8bc9-9b1ec26dd580"},{"id":"chg_01a19668-37f6-7359-9b9a-ca7b32fbeba1","kind":"capture.status_changed","summary":"Endpoint reachability (reachable → not serving MCP)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-jurnal/jurnal#chg-chg_01a19668-37f6-7359-9b9a-ca7b32fbeba1"},{"id":"chg_01a19668-37f6-7842-91d3-f12f49088149","kind":"score.total_changed","summary":"Trust score (65 → 18)","materiality":"functional","direction":"regression","scoreDelta":-47,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/io-usefulapi-jurnal/jurnal#chg-chg_01a19668-37f6-7842-91d3-f12f49088149"},{"id":"chg_01a193fb-9275-7574-8f9d-e44031194b69","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-jurnal/jurnal#chg-chg_01a193fb-9275-7574-8f9d-e44031194b69"},{"id":"chg_01a19028-51b0-78cf-97bd-305fb306dde8","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-jurnal/jurnal#chg-chg_01a19028-51b0-78cf-97bd-305fb306dde8"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/io-usefulapi-jurnal/jurnal/changelog.json"},"links":{"html":"https://verifymcp.io/servers/io-usefulapi-jurnal/jurnal","markdown":"https://verifymcp.io/servers/io-usefulapi-jurnal/jurnal.md","changelogJson":"https://verifymcp.io/servers/io-usefulapi-jurnal/jurnal/changelog.json","changelogRss":"https://verifymcp.io/servers/io-usefulapi-jurnal/jurnal.xml","external":[{"label":"Remote endpoint","href":"https://jurnal.usefulapi.io/mcp"},{"label":"Repository","href":"https://github.com/m190/usefulapi-mcp"},{"label":"Website","href":"https://usefulapi.io/jurnal/"}]}}