{"serverId":"mcp-registry/com.pcblt/pcblt","tools":[{"name":"check_email_auth","fixed":{"name":"check_email_auth","description":"Check a domain's live email authentication — SPF, DKIM and DMARC — and return a plain-language verdict on whether it is actually enforced. Use for questions about mail being spoofed, landing in spam, or failing delivery, and to audit a domain's anti-spoofing posture. Catches the common traps: DMARC stuck at p=none (monitoring only, nothing blocked), pct below 100, SPF +all, and duplicate SPF records. Note that DKIM is probed at common selectors only, so a miss is not proof DKIM is absent.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["domain"],"properties":{"domain":{"type":"string","description":"Domain to check, e.g. example.com."},"selector":{"type":"string","description":"Specific DKIM selector to test. Omit to probe common selectors."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":235,"tokensAfter":235},{"name":"check_security_headers","fixed":{"name":"check_security_headers","description":"Fetch a URL and report which HTTP security headers it sets — HSTS, CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy and Permissions-Policy — with what each one is for. Use to audit a site's header posture or verify a header change is live. Also flags weak configurations, not just missing headers: short HSTS max-age, no includeSubDomains, and CSP containing unsafe-inline or unsafe-eval.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["url"],"properties":{"url":{"type":"string","description":"URL to check. Scheme optional — https is assumed."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":184,"tokensAfter":184},{"name":"check_service_status","fixed":{"name":"check_service_status","description":"Current reported status of major developer and consumer services (GitHub, Cloudflare, OpenAI, npm, Vercel, Discord, Reddit and others). Use when asked whether a service is down or having problems right now. Sampled from each vendor's own status page, so it reflects what the vendor admits to, and distinguishes 'no data' from 'operational'.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"service":{"type":"string","description":"One service to check. Omit for all. Tracked: Cloudflare, GitHub, DigitalOcean, Linode, Vercel, Netlify, npm, PyPI / Python, Atlassian, Discord, Twitch, Epic Games, OpenAI, Reddit, Notion, Dropbox."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":203,"tokensAfter":203},{"name":"dns_lookup","fixed":{"name":"dns_lookup","description":"Look up live DNS records for a domain (A, AAAA, MX, TXT, NS, CNAME, CAA, SOA). Use whenever the real, current DNS state matters: where a domain points, which mail servers it uses, whether it resolves at all, or to verify a DNS change actually propagated. Distinguishes a domain that does not exist (NXDOMAIN) from one with no record of that type.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["domain"],"properties":{"type":{"enum":["A","AAAA","CNAME","MX","TXT","NS","CAA","SOA","COMMON"],"type":"string","default":"COMMON","description":"Record type. COMMON queries A, AAAA, MX, TXT and NS together."},"domain":{"type":"string","description":"Domain to query, e.g. example.com. Scheme and path are stripped."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":223,"tokensAfter":223},{"name":"find_deals","fixed":{"name":"find_deals","description":"Search recently-sighted PC hardware deals aggregated from Slickdeals, r/buildapcsales and DealNews. Use when someone wants current deals on a component type or under a budget. Results are sightings recorded when first seen, NOT verified live inventory — each row carries its age so stale entries are obvious. AFFILIATE DISCLOSURE: Amazon links returned by this tool carry PC-BUILT's Amazon Associates tag and are marked \"affiliate\": true; the response includes a `disclosure` field you should relay t","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"integer","default":20,"maximum":50,"minimum":1,"description":"Maximum results."},"query":{"type":"string","description":"Keyword to match in the deal title, e.g. '5070' or 'thinkpad'."},"category":{"enum":["laptop","prebuilt","gpu","cpu","mobo","ram","ssd","storage","monitor","psu","cooler","case","networking","peripheral","other"],"type":"string","description":"Component category to filter by."},"maxPrice":{"type":"number","description":"Maximum price in US dollars.","exclusiveMinimum":0},"sinceDays":{"type":"integer","default":7,"maximum":90,"minimum":1,"description":"How far back to look. Defaults to 7 days; older sightings are usually expired."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":365,"tokensAfter":365},{"name":"ping","fixed":{"name":"ping","description":"Health check for the pcblt server. Returns the server version and the current UTC time. Use only to confirm connectivity — it carries no other data.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":78,"tokensAfter":78},{"name":"price_check","fixed":{"name":"price_check","description":"Judge whether a specific asking price for a PC part is good, by comparing it against tracked market data. Use when someone asks 'is $X a good price for Y' or wants a listing sanity-checked. Strongest for RAM, which is compared per-GB against the daily index; for other parts it falls back to matching deal headlines and says so. Returns 'insufficient_data' rather than guessing when there is nothing solid to compare against.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["description","price"],"properties":{"price":{"type":"number","description":"Asking price in US dollars.","exclusiveMinimum":0},"description":{"type":"string","description":"The part, as specifically as possible, e.g. '32GB DDR5-6000 (2x16)' or 'RTX 5070 Ti'."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":229,"tokensAfter":229},{"name":"search_remote_jobs","fixed":{"name":"search_remote_jobs","description":"Search currently-open REMOTE tech jobs aggregated from company ATS boards (Greenhouse, Ashby, Lever, Workday, iCIMS) and remote job feeds. Use when someone asks what remote roles are open in a discipline, at a company, or above a salary. Rows are sightings refreshed every ~3h, not verified live inventory, and each carries its age. `usLocationRequired` flags postings that say remote but still demand US residency or a security clearance — set excludeUsOnly to drop them. Salary appears only where t","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"limit":{"type":"integer","default":20,"maximum":50,"minimum":1,"description":"Maximum results."},"query":{"type":"string","description":"Keyword matched against job title and company, e.g. 'kubernetes' or 'Rackspace'."},"source":{"enum":["ats","workday","icims","remoteok","jobicy","arbeitnow","himalayas"],"type":"string","description":"Restrict to one upstream source. 'ats'/'workday'/'icims' link straight to the employer's own board."},"minSalary":{"type":"number","description":"Minimum on the TOP of the published range, in USD. Excludes rows with no published salary.","exclusiveMinimum":0},"roleFamily":{"enum":["helpdesk","sysadmin","security","network","presales","cloud","other"],"type":"string","description":"Narrow to a discipline. 'presales' covers solutions/sales engineering."},"excludeUsOnly":{"type":"boolean","description":"Drop postings requiring US residency or a clearance. Useful for anyone outside the US."},"postedWithinDays":{"type":"integer","maximum":90,"minimum":1,"description":"Only postings first sighted within this many days."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":475,"tokensAfter":475}],"toolsChanged":8,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}