{"apiVersion":"v1","directorySlug":"tgmsp-mcp-1505bf13d9","title":"403 Forbidden","description":null,"pageUrl":"https://www.mcpbundles.com/skills/tgmsp-mcp-1505bf13d9","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://mcp.tgmsp.com/mcp","hostedMcpUrl":null,"toolCount":22,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"com.tgmsp/tgmsp-mcp-1505bf13d9","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"get_connector_info","description":"Returns non-sensitive availability information for the Tech Guardian Reports connector. Does not access reports or user data. Report access requires sign-in.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"title":"Get Tech Guardian Reports connector info","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_connector_info","displayName":"Get Tech Guardian Reports connector info"},{"name":"check_report_access","description":"Confirms that Tech Guardian Report Control recognizes you through this app. It returns only whether Report Control was reachable, whether it recognized and authorized you, and whether this app is enabled for you. It returns no reports, clients, metrics or personal details.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"title":"Check Report Control access","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"check_report_access","displayName":"Check Report Control access"},{"name":"find_eta_client","description":"Finds a client of Tech Guardian's ETA Ticket Performance report by name, among only the clients you are authorized to see. match exact returns the client and its company_id; match ambiguous returns up to 10 candidates, so ask the user which one they mean and never guess; match none means no authorized client matched. Use the company_id with run_eta_ticket_performance for a new report, or with get_eta_ticket_performance for stored history.","inputSchema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","pattern":"[A-Za-z0-9]","maxLength":120,"minLength":1}},"additionalProperties":false},"title":"Find an ETA Ticket Performance client","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"find_eta_client","displayName":"Find an ETA Ticket Performance client"},{"name":"get_eta_ticket_performance","description":"HISTORY ONLY. Reads governed ETA Ticket Performance points stored from ETA reports that were run earlier, for one authorized client. History exists only for periods someone already ran, so it can be missing, quarterly or partial: use it only when the user explicitly asks about stored history or earlier report results. To run, generate or create a report, to analyze a chosen or custom date range, the latest or current period, or the last N completed days, weeks, months or quarters, use run_eta_ti","inputSchema":{"type":"object","required":["company_id","period_from","period_to","run_mode","metric_keys"],"properties":{"run_mode":{"enum":["closed","current"],"type":"string"},"period_to":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])$"},"company_id":{"type":"integer","maximum":999999999,"minimum":1},"metric_keys":{"type":"array","items":{"enum":["eta.tickets.completed","eta.tickets.sla_measured","eta.tickets.outside_target","eta.ticket_start.attainment_pct","eta.ticket_start.avg_hours","eta.ticket_start.median_hours","eta.resolution.avg_hours","eta.worked.avg_hours"],"type":"string"},"maxItems":6,"minItems":1,"uniqueItems":true},"period_from":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])$"}},"additionalProperties":false},"title":"Get stored ETA Ticket Performance history","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_eta_ticket_performance","displayName":"Get stored ETA Ticket Performance history"},{"name":"run_eta_ticket_performance","description":"Starts a NEW ETA Ticket Performance report for one authorized client and one date range, computed fresh from source data by the ETA report. Use it whenever the user asks to run, generate or create an ETA report, or to analyze a chosen or custom date range, the latest or current period, or the last N completed days, weeks, months or quarters (work out the exact calendar dates first). Give the company_id from find_eta_client, start_date, end_date and output_formats. BEFORE calling it, settle two c","inputSchema":{"type":"object","required":["company_id","start_date","end_date","output_formats"],"properties":{"end_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"company_id":{"type":"integer","maximum":999999999,"minimum":1},"start_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"output_formats":{"type":"array","items":{"enum":["pdf","xlsx","csv","html"],"type":"string"},"maxItems":4,"minItems":1,"uniqueItems":true}},"additionalProperties":false},"title":"Run a new ETA Ticket Performance report","logicalName":"run_eta_ticket_performance","displayName":"Run a new ETA Ticket Performance report","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_eta_ticket_performance_run","description":"Reads the status of one ETA Ticket Performance report run by the request_id run_eta_ticket_performance returned: queued, running, completed or a failure status, its client and dates, and whether its data can be fetched. STARTUP GRACE: on the FIRST check after run_eta_ticket_performance accepted a run, pass wait_seconds 25. While the run is still queued the tool waits up to that long for the report worker to start, and it answers as soon as the status changes, so do not end your answer just becau","inputSchema":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string","pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"},"wait_seconds":{"type":"integer","maximum":30,"minimum":0}},"additionalProperties":false},"title":"Check an ETA Ticket Performance report run","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_eta_ticket_performance_run","displayName":"Check an ETA Ticket Performance report run"},{"name":"get_eta_ticket_performance_dataset","description":"Returns one governed table of the ETA Ticket Performance report run with this request_id, once it has completed: headline (overall volumes, SLA attainment, average and median start and resolution times, worked hours), sla_milestones (the start and resolution SLA milestones) or priority (one row per ticket priority). The columns describe every value. Every value is computed by the ETA report: use it as returned, never recompute or invent a value that is not in the table, and cite the table's cita","inputSchema":{"type":"object","required":["request_id","table"],"properties":{"table":{"enum":["headline","sla_milestones","priority"],"type":"string"},"request_id":{"type":"string","pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"}},"additionalProperties":false},"title":"Get the data of a completed ETA Ticket Performance run","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_eta_ticket_performance_dataset","displayName":"Get the data of a completed ETA Ticket Performance run"},{"name":"get_eta_ticket_performance_download","description":"Returns a secure download link for the report file of a completed ETA Ticket Performance run, in one format the user requested for that run. Call it once per requested format after get_eta_ticket_performance_run shows the run completed, and give the user the download_url as a link labelled with the format, for example Download PDF. The link downloads the report from Tech Guardian Report Center. It works ONCE and expires at expires_at (about five minutes): if the user says it expired or was alrea","inputSchema":{"type":"object","required":["request_id","format"],"properties":{"format":{"enum":["pdf","xlsx","csv","html"],"type":"string"},"request_id":{"type":"string","pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"}},"additionalProperties":false},"title":"Get the download link of a completed ETA Ticket Performance report","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_eta_ticket_performance_download","displayName":"Get the download link of a completed ETA Ticket Performance report"},{"name":"get_utilization_summary","description":"Technician Utilization for one month and window: each technician's utilization percent, qualified ticket hours, capacity-excluded and clocked hours, and whether the value matches what production published to the scorecard (published: MATCH, DRIFT, UNPUBLISHED or NOT_EVALUATED; never claim a match unless it says MATCH), plus the department total. It carries no utilization target or scorecard goal: never state, infer or compare against one. Give technician for one person. Answers come from the lat","inputSchema":{"type":"object","required":["period","window_basis"],"properties":{"period":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])$"},"technician":{"type":"string","maxLength":100,"minLength":1},"window_basis":{"enum":["PUBLISHED_ALIGNED","CURRENT_MTD","FULL_MONTH"],"type":"string"}},"additionalProperties":false},"title":"Get Technician Utilization","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_utilization_summary","displayName":"Get Technician Utilization"},{"name":"explain_utilization_ticket","description":"Explains how one ticket's time entries counted toward utilization: per technician, each entry's treatment, rule and reason, what it fed into, whether entries of the same ticket were treated differently (then say so, never a single yes/no), and calculation-only counterfactuals (what the percent would be if they were treated otherwise; nothing is changed). Give the ticket id or ticket number. Answers come from the latest VERIFIED snapshot of the production utilization calculation for that month an","inputSchema":{"type":"object","required":["period","window_basis","ticket"],"properties":{"period":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])$"},"ticket":{"type":"string","pattern":"^(?:\\d{1,12}|[Tt]\\d{8}\\.\\d{1,6}(?:\\.\\d{1,6})?)$"},"technician":{"type":"string","maxLength":100,"minLength":1},"window_basis":{"enum":["PUBLISHED_ALIGNED","CURRENT_MTD","FULL_MONTH"],"type":"string"}},"additionalProperties":false},"title":"Explain a ticket in Technician Utilization","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"explain_utilization_ticket","displayName":"Explain a ticket in Technician Utilization"},{"name":"list_utilization_items","description":"Lists the time entries behind utilization (at most 40), filtered by technician, treatment, ticket or dates, or totals grouped by reason, treatment, ticket or date. An ungrouped list that matches more rows than the limit FAILS instead of being cut: then group it or narrow the filters. Answers come from the latest VERIFIED snapshot of the production utilization calculation for that month and window; a snapshot is never refreshed by reading it. If available is false there is no snapshot yet: tell t","inputSchema":{"type":"object","required":["period","window_basis"],"properties":{"sort":{"enum":["entry_asc","hours_desc","date_asc","date_desc","key_asc"],"type":"string"},"limit":{"type":"integer","maximum":40,"minimum":1},"period":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])$"},"ticket":{"type":"string","pattern":"^(?:\\d{1,12}|[Tt]\\d{8}\\.\\d{1,6}(?:\\.\\d{1,6})?)$"},"date_to":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"group_by":{"enum":["none","reason","treatment","ticket","date"],"type":"string"},"date_from":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"treatment":{"enum":["QUALIFIED","APPROVED_EXCLUDED","NOT_COUNTED","SKIPPED"],"type":"string"},"technician":{"type":"string","maxLength":100,"minLength":1},"window_basis":{"enum":["PUBLISHED_ALIGNED","CURRENT_MTD","FULL_MONTH"],"type":"string"}},"additionalProperties":false},"title":"List Technician Utilization entries","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"list_utilization_items","displayName":"List Technician Utilization entries"},{"name":"preview_utilization_change","description":"CALCULATION ONLY: what the utilization percent WOULD be if the selected entries (a ticket, or explicit entries) were treated as the target instead. Nothing is saved, overridden, published or sent anywhere, and the scorecard does not change: say so when you answer. Entries that share a duplicated source id are marked and are not valid individual targets. Answers come from the latest VERIFIED snapshot of the production utilization calculation for that month and window; a snapshot is never refreshe","inputSchema":{"type":"object","required":["period","window_basis","target"],"properties":{"period":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])$"},"target":{"enum":["QUALIFIED","APPROVED_EXCLUDED","NOT_COUNTED"],"type":"string"},"ticket":{"type":"string","pattern":"^(?:\\d{1,12}|[Tt]\\d{8}\\.\\d{1,6}(?:\\.\\d{1,6})?)$"},"entries":{"type":"array","items":{"type":"object","properties":{"ordinal":{"type":"integer","minimum":0},"resource_id":{"type":"integer","minimum":1},"time_entry_id":{"type":"integer","minimum":1}},"additionalProperties":false},"maxItems":50,"minItems":1},"technician":{"type":"string","maxLength":100,"minLength":1},"window_basis":{"enum":["PUBLISHED_ALIGNED","CURRENT_MTD","FULL_MONTH"],"type":"string"}},"additionalProperties":false},"title":"Preview a Technician Utilization change","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"preview_utilization_change","displayName":"Preview a Technician Utilization change"},{"name":"refresh_utilization_snapshot","description":"Builds a NEW verified utilization snapshot for one month and window from the source time data, with the production calculation, read-only: it never publishes or changes the scorecard. Call it ONLY when the user asks to build or refresh a snapshot. It returns a request_id at once; the build takes a few minutes. Then call get_utilization_snapshot_run with that request_id (wait_seconds 25 on the first check). Never call this again because a build is queued or running: an identical request while one","inputSchema":{"type":"object","required":["period","window_basis"],"properties":{"period":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])$"},"window_basis":{"enum":["PUBLISHED_ALIGNED","CURRENT_MTD","FULL_MONTH"],"type":"string"}},"additionalProperties":false},"title":"Build a Technician Utilization snapshot","logicalName":"refresh_utilization_snapshot","displayName":"Build a Technician Utilization snapshot","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_utilization_snapshot_run","description":"Reads the status of one snapshot build by the request_id refresh_utilization_snapshot returned: queued, running, completed or a failure. terminal false means it is still working: check the same request_id again later, never start another build. When status is completed, the snapshot is the latest for its month and window: answer with get_utilization_summary and the other utilization tools.","inputSchema":{"type":"object","required":["request_id"],"properties":{"request_id":{"type":"string","pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"},"wait_seconds":{"type":"integer","maximum":30,"minimum":0}},"additionalProperties":false},"title":"Check a Technician Utilization snapshot build","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_utilization_snapshot_run","displayName":"Check a Technician Utilization snapshot build"},{"name":"get_report_guidance","description":"Describes how to request one Tech Guardian report you are authorized to see: its scope, the parameters start_report_run needs and their rules, the report file formats the user may choose, the standard view and the views that are not available, when to ask the user before running, the data tables of a completed run and the recommended first status wait. Call it before start_report_run for a report you have not used in this conversation and follow its instructions. Reports: ETA Ticket Performance","inputSchema":{"type":"object","required":["report_key"],"properties":{"report_key":{"enum":["eta-ticket-performance","effective-hourly-rate","reactive-same-day-close","opportunity-sla-adherence"],"type":"string"}},"additionalProperties":false},"title":"Get how to request a Tech Guardian report","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_report_guidance","displayName":"Get how to request a Tech Guardian report"},{"name":"find_report_client","description":"Finds a client of one Tech Guardian client report by name, among only the clients you are authorized to see for that report. match exact returns the client and its company_id; match ambiguous returns up to 10 candidates, so ask the user which one they mean and never guess; match none means no authorized client matched. Use the company_id with start_report_run for the same report_key.","inputSchema":{"type":"object","required":["report_key","query"],"properties":{"query":{"type":"string","pattern":"^.*[A-Za-z0-9].*$","maxLength":120,"minLength":1},"report_key":{"enum":["eta-ticket-performance","effective-hourly-rate"],"type":"string"}},"additionalProperties":false},"title":"Find a client of a Tech Guardian report","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"find_report_client","displayName":"Find a client of a Tech Guardian report"},{"name":"start_report_run","description":"Starts a NEW Tech Guardian report run for one registered report, computed fresh from source data by that report. Use it whenever the user asks to run, generate or create a report. For a report whose period is requested, this includes analyzing a chosen or custom date range, the latest or current period, or the last N completed days, weeks, months or quarters (work out the exact calendar dates first); a report with a fixed period takes no dates at all, a report with a completed-weeks period takes","inputSchema":{"type":"object","required":["report_key","parameters"],"properties":{"parameters":{"type":"object","required":[],"properties":{"grain":{"enum":["week","month"],"type":"string"},"end_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"as_of_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"company_id":{"type":"integer","maximum":999999999,"minimum":1},"start_date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"week_count":{"type":"integer","maximum":13,"minimum":1}},"additionalProperties":false},"report_key":{"enum":["eta-ticket-performance","effective-hourly-rate","reactive-same-day-close","opportunity-sla-adherence"],"type":"string"},"output_formats":{"type":"array","items":{"enum":["pdf","xlsx","csv","html"],"type":"string"},"maxItems":4,"minItems":1,"uniqueItems":true}},"additionalProperties":false},"title":"Run a new Tech Guardian report","logicalName":"start_report_run","displayName":"Run a new Tech Guardian report","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_report_run_status","description":"Reads the status of one report run by its report_key and the request_id start_report_run returned: queued, running, completed or a failure status, its client and dates, and whether its data can be fetched. STARTUP GRACE: on the FIRST check after start_report_run accepted a run, pass wait_seconds 25. While the run is still queued the tool waits up to that long for the report worker to start, and it answers as soon as the status changes, so do not end your answer just because the run was queued a","inputSchema":{"type":"object","required":["report_key","request_id"],"properties":{"report_key":{"enum":["eta-ticket-performance","effective-hourly-rate","reactive-same-day-close","opportunity-sla-adherence"],"type":"string"},"request_id":{"type":"string","pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"},"wait_seconds":{"type":"integer","maximum":30,"minimum":0}},"additionalProperties":false},"title":"Check a Tech Guardian report run","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_report_run_status","displayName":"Check a Tech Guardian report run"},{"name":"get_report_run_dataset","description":"Returns one governed table of the report run with this report_key and request_id, once it has completed and its status shows dataset.available true. Tables: eta-ticket-performance: headline (One row of overall totals: volumes, SLA attainment, average and median start and resolution times, worked hours), sla_milestones (The start and resolution SLA milestones), priority (One row per ticket priority). effective-hourly-rate: main (One row per month of the 12-month window, newest first, then the wei","inputSchema":{"type":"object","required":["report_key","request_id","table"],"properties":{"table":{"enum":["headline","sla_milestones","priority","main","weekly","sla_breakdown","exclusions"],"type":"string"},"report_key":{"enum":["eta-ticket-performance","effective-hourly-rate","reactive-same-day-close","opportunity-sla-adherence"],"type":"string"},"request_id":{"type":"string","pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"}},"additionalProperties":false},"title":"Get the data of a completed Tech Guardian report run","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_report_run_dataset","displayName":"Get the data of a completed Tech Guardian report run"},{"name":"get_report_run_download","description":"Returns a secure download link for the report file of a completed report run, in one format the user requested for that run. Call it once per requested format after get_report_run_status shows the run completed, and give the user the download_url as a link labelled with the format, for example Download PDF. The link downloads the report from Tech Guardian Report Center. It works ONCE and expires at expires_at (about five minutes): if the user says it expired or was already used, call this tool a","inputSchema":{"type":"object","required":["report_key","request_id","format"],"properties":{"format":{"enum":["pdf","xlsx","csv","html"],"type":"string"},"report_key":{"enum":["eta-ticket-performance","effective-hourly-rate","opportunity-sla-adherence"],"type":"string"},"request_id":{"type":"string","pattern":"^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$"}},"additionalProperties":false},"title":"Get the download link of a completed Tech Guardian report","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_report_run_download","displayName":"Get the download link of a completed Tech Guardian report"},{"name":"get_itglue_documentation_kpi","description":"Reads Tech Guardian's monthly IT Glue documentation KPI (the Strety metric \"IT Glue Documentation [AUTO]\") for the technicians the signed-in user may see. Read-only: it never changes Strety, IT Glue or any score, and it cannot run or recalculate the KPI. How the score works: each technician earns one credit per distinct IT Glue item created in the month and one credit per item and ISO week with at least one update; updates in the same week the item was created earn nothing extra; structural item","inputSchema":{"type":"object","properties":{"month":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])$"},"detail":{"enum":["summary","explain"],"type":"string"},"months":{"type":"integer","maximum":13,"minimum":1},"technician":{"type":"string","maxLength":80,"minLength":1}},"additionalProperties":false},"title":"Get the IT Glue documentation KPI","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_itglue_documentation_kpi","displayName":"Get the IT Glue documentation KPI"},{"name":"get_service_labor_budget_history","description":"HISTORY ONLY. Reads Tech Guardian's MSP-wide Service Labor Budget as stored by its scheduled monthly and daily jobs; it never runs, refreshes or recalculates the report. Months are Pacific calendar months. run_mode closed reads finished months (closed on the 5th of the next month, restated on the 15th); run_mode current reads only the open month's month-to-date snapshot (actuals through period_end, normally yesterday), whose budget is for the whole month and is not prorated: never call an open m","inputSchema":{"type":"object","required":["view","period_from","period_to","run_mode"],"properties":{"view":{"enum":["month_budget_vs_actual","month_totals","category_breakdown","category_trend","data_quality"],"type":"string"},"category":{"enum":["Reactive","Proactive","IMACRD","ProjectsAndTm","TgmInternalSupport","TgmInitiatives"],"type":"string"},"run_mode":{"enum":["closed","current"],"type":"string"},"period_to":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])$"},"period_from":{"type":"string","pattern":"^\\d{4}-(0[1-9]|1[0-2])$"}},"additionalProperties":false},"title":"Get Service Labor Budget history","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"logicalName":"get_service_labor_budget_history","displayName":"Get Service Labor Budget history"}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=403-Forbidden&config=eyJ1cmwiOiAiaHR0cHM6Ly9tY3AudGdtc3AuY29tL21jcCJ9"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22403-Forbidden%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.tgmsp.com%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22403-Forbidden%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.tgmsp.com%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=403+Forbidden&connectorUrl=https%3A%2F%2Fmcp.tgmsp.com%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"403-Forbidden\" --url \"https://mcp.tgmsp.com/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/tgmsp-mcp-1505bf13d9","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/tgmsp-mcp-1505bf13d9/tools/{tool}","mcpServerUrl":"https://mcp.tgmsp.com/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/tgmsp-mcp-1505bf13d9?live=1"}