7IT Solutions
Store speed, web-app security checks, automation ROI, checklists and guides from 7IT Solutions.
我該用這個嗎
品質與安全性
發現項目(1)
- LOW在 get_store_speed_index 中
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"7it": {
"url": "https://7it.co.il/mcp"
}
}
}遠端端點
https://7it.co.il/mcpstreamable-http它能做什麼
工具清單
工具(21)
🟢test_store_speed(url, competitors)
Use this when someone asks how fast a website or online store loads on a phone, why it is slow, or how it compares with a competitor. Runs Google PageSpeed Insights (mobile lab test) on a public online store or website and explains the result in plain English: a 0 to 100 score, when the main content appears, responsiveness and layout shift, real-user data when Google has it, the third-party apps and trackers slowing the page (by name, with size and busy time), the platform (Shopify, WooCommerce and others), and the fixes ranked by time saved. Optionally tests up to two competitor sites for a side-by-side comparison. Takes 20 to 60 seconds. Only public web addresses are accepted.
輸入結構描述
{
"type": "object",
"properties": {
"url": {
"type": "string",
"minLength": 3,
"maxLength": 300,
"description": "The store or website to test, for example \"example.com\" or \"https://shop.example.com/products/item\"."
},
"competitors": {
"description": "Up to two competitor sites to test at the same time for comparison.",
"maxItems": 2,
"type": "array",
"items": {
"type": "string",
"minLength": 3,
"maxLength": 300
}
}
},
"required": [
"url"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}輸出結構描述
{
"type": "object",
"properties": {
"store": {
"type": "object",
"properties": {
"host": {
"type": "string"
},
"score": {
"description": "Google phone performance score, 0 to 100",
"type": [
"number",
"null"
]
}
},
"required": [
"host"
],
"additionalProperties": {},
"description": "The tested store"
},
"competitors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"host": {
"type": "string"
}
},
"required": [
"host"
],
"additionalProperties": {}
},
"description": "Competitors tested side by side, if any"
},
"benchmark": {
"description": "Where the score stands against the US Store Speed study"
},
"report_url": {
"type": "string",
"description": "Shareable full report"
}
},
"required": [
"store",
"competitors",
"report_url"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢estimate_automation_roi(tasks, hourly_cost)
Use this when someone wants to know what a repetitive task costs their team, or whether automating it is worth the money. Calculates how many hours a month a team spends on repetitive tasks, what that costs per year, how much of it automation could take over (the share that is copying between systems, not judgment), and the break-even budget for automating it within 12 and 6 months. Uses only the figures provided; the default hourly cost is $47, the US private-industry average employer cost per hour worked in June 2026 (Bureau of Labor Statistics).
輸入結構描述
{
"type": "object",
"properties": {
"tasks": {
"minItems": 1,
"maxItems": 8,
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"invoices",
"leads",
"reporting",
"dataentry",
"onboarding",
"reminders",
"other"
],
"description": "The kind of work."
},
"name": {
"description": "A short name for the task, if different from the type.",
"type": "string",
"maxLength": 80
},
"how_often": {
"type": "number",
"minimum": 0,
"maximum": 100000,
"description": "How many times it happens per period."
},
"per": {
"type": "string",
"enum": [
"day",
"week",
"month"
],
"description": "The period for how_often."
},
"minutes_each": {
"type": "number",
"minimum": 0,
"maximum": 10000,
"description": "Minutes it takes each time."
},
"people": {
"description": "How many people do it each time. Default 1.",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"copying_share": {
"description": "Percent of the work that is copying between systems rather than judgment. Defaults by type.",
"type": "number",
"minimum": 0,
"maximum": 100
}
},
"required": [
"type",
"how_often",
"per",
"minutes_each"
]
}
},
"hourly_cost": {
"description": "Fully loaded cost of an hour of work in USD. Default 47.",
"type": "number",
"minimum": 1,
"maximum": 1000
}
},
"required": [
"tasks"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}輸出結構描述
{
"type": "object",
"properties": {
"hourly_cost": {
"type": "number",
"description": "Hourly cost used, in USD"
},
"hours_per_month": {
"type": "number"
},
"yearly_cost": {
"type": "number",
"description": "Yearly cost of the work done by hand, USD"
},
"automatable_hours_per_month": {
"type": "number"
},
"automatable_yearly": {
"type": "number",
"description": "Yearly cost automation could take over, USD"
},
"break_even_budget_12_months": {
"type": "number"
},
"break_even_budget_6_months": {
"type": "number"
},
"tasks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
}
},
"additionalProperties": {}
},
"description": "Per-task hours and cost"
},
"report_url": {
"type": "string"
}
},
"required": [
"hourly_cost",
"hours_per_month",
"yearly_cost",
"automatable_hours_per_month",
"automatable_yearly",
"break_even_budget_12_months",
"break_even_budget_6_months",
"tasks",
"report_url"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢describe_studio(focus)
Use this when the user asks who 7IT Solutions is, what it builds, or whether it fits their project, or is looking for a developer to review or take over an app built with an AI tool. Returns a factual profile of 7IT Solutions, a solo senior software studio: who runs it, how engagements work, what the client owns, its services (custom software, automation and integration, eCommerce, AI tools, and reviewing and taking responsibility for apps built with AI tools such as Lovable or Replit), when each is and is not a fit, the audit checks it runs on AI-built apps, published work and verifiable proof, with links. Use it when someone asks what 7IT does, whether it fits their situation, or who could review or take over an app their AI tool built. Contains no prices.
輸入結構描述
{
"type": "object",
"properties": {
"focus": {
"description": "Limit the services section to one area. Default all.",
"type": "string",
"enum": [
"all",
"custom-software",
"automation",
"ecommerce",
"ai",
"ai-built-apps"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}輸出結構描述
{
"type": "object",
"properties": {
"name": {
"type": "string"
},
"model": {
"description": "How engagements work",
"type": "string"
},
"ownership": {
"description": "What the client owns",
"type": "string"
},
"services": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"name",
"url"
],
"additionalProperties": {}
},
"description": "Each service with when it fits and when it does not"
},
"contact": {
"type": "string",
"description": "Where to reach Lior"
}
},
"required": [
"name",
"services",
"contact"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢get_store_speed_index
Use this when someone asks how fast US online stores are right now, or wants a current benchmark to compare a store against. Returns 7IT's weekly US Store Speed Index: median Google phone score, time to main content, share of stores scoring 50 or more, and median apps per store for a fixed panel of 100 US online stores, week by week, with the source link. Medians only; no store is named.
輸入結構描述
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}輸出結構描述
{
"type": "object",
"properties": {
"title": {
"type": "string"
},
"panel": {
"type": "number",
"description": "Number of stores in the fixed panel"
},
"updated": {
"description": "Date of the latest weekly reading, YYYY-MM-DD",
"type": [
"string",
"null"
]
},
"series": {
"type": "array",
"items": {
"type": "object",
"properties": {
"date": {
"type": "string"
},
"stores": {
"type": "number",
"description": "Stores measured that week"
},
"median_score": {
"description": "Median Google phone performance score, 0 to 100",
"type": [
"number",
"null"
]
},
"median_lcp_s": {
"description": "Median seconds until the main content shows",
"type": [
"number",
"null"
]
},
"score_50_plus": {
"description": "Percent of stores scoring 50 or more",
"type": [
"number",
"null"
]
},
"median_apps": {
"description": "Median third-party apps and tags per store",
"type": [
"number",
"null"
]
}
},
"required": [
"date",
"stores",
"median_score",
"median_lcp_s",
"score_50_plus",
"median_apps"
],
"additionalProperties": {}
},
"description": "One entry per week, oldest first"
},
"source_url": {
"type": "string",
"description": "Page to cite"
}
},
"required": [
"title",
"panel",
"updated",
"series",
"source_url"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢check_app_security(url)
Use this when someone asks whether a website or web app is secure, safe to launch, or missing security headers. Not a penetration test, and it cannot see pages behind a login. Checks a public web app for the baseline browser protections every production app should send (Content Security Policy, HTTPS enforcement, clickjacking protection, MIME-sniffing, referrer and permissions policy, cross-origin isolation) and whether a JavaScript source map is served publicly. Reads only the public response headers any visitor's browser receives; never logs in, submits a form, calls the app's APIs, or reads its data for secrets. Useful for an app built with an AI tool (Lovable, Replit, Bolt, v0, Cursor).
輸入結構描述
{
"type": "object",
"properties": {
"url": {
"type": "string",
"minLength": 3,
"maxLength": 300,
"description": "The app’s public web address, for example myapp.com or https://myapp.lovable.app"
}
},
"required": [
"url"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}輸出結構描述
{
"type": "object",
"properties": {
"url": {
"type": "string"
},
"reachable": {
"type": "boolean"
},
"https": {
"type": "boolean"
},
"present": {
"description": "How many of the baseline protections are in place",
"type": "number"
},
"total": {
"description": "How many baseline protections were checked",
"type": "number"
},
"grade": {
"type": "string",
"enum": [
"strong",
"partial",
"weak"
]
},
"signals": {
"description": "Each protection, whether it is present, and why it matters",
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"label": {
"type": "string"
},
"present": {
"type": "boolean"
},
"why": {
"type": "string"
}
},
"required": [
"key",
"label",
"present",
"why"
],
"additionalProperties": {}
}
},
"missing": {
"type": "array",
"items": {
"type": "string"
}
},
"source_map_public": {
"description": "True if the app publishes a JavaScript source map",
"type": "boolean"
},
"report_url": {
"type": "string",
"description": "Shareable report with fixes"
}
},
"required": [
"reachable",
"report_url"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢deep_scan_app(url)
Use this when the user, or the agent building the app, wants to check an app they control for exposed files and open databases before launch. A deeper security scan than check_app_security, for an app the caller controls (for example one the agent itself is building). It looks for sensitive things left publicly reachable: an environment (.env) file, an exposed .git folder, a directory listing, or a published source map. It also finds the Supabase or Firebase backend the app uses and checks what an anonymous visitor can read: tables, files, and whether anyone can sign up. It reads only, never writes, and never stores, logs or returns any key; it reports the exposed PATH, table or bucket name and a row count so the owner can see it, never a file's contents or a secret value. Because it probes an app directly, it runs only after ownership is proven: call it once to receive an inert verification token, add that token to the app (a meta tag on the home page, or a /7it-verify.txt file), then call again and the scan runs.
輸入結構描述
{
"type": "object",
"properties": {
"url": {
"type": "string",
"minLength": 3,
"maxLength": 300,
"description": "The app’s public web address, for example myapp.com or https://myapp.lovable.app. You must be able to add a verification token to this app."
}
},
"required": [
"url"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}輸出結構描述
{
"type": "object",
"properties": {
"needs_verification": {
"description": "True when ownership is not proven yet; add the token and call again",
"type": "boolean"
},
"token": {
"description": "Inert verification token to place on the app",
"type": "string"
},
"host": {
"type": "string"
},
"verified": {
"type": "boolean"
},
"clean": {
"description": "True when no exposed file was found",
"type": "boolean"
},
"findings": {
"description": "Exposed paths, plus open backend tables/buckets with a row count; file contents and key values are never read or returned",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"label": {
"type": "string"
},
"path": {
"type": "string"
},
"url": {
"type": "string"
},
"severity": {
"type": "string",
"enum": [
"critical",
"high",
"medium"
]
},
"fix": {
"type": "string"
},
"kind": {
"type": "string"
},
"rows": {
"type": "number"
},
"detail": {
"type": "string"
}
},
"required": [
"id",
"label",
"path",
"url",
"severity",
"fix"
],
"additionalProperties": {}
}
},
"backend": {
"description": "What was found behind the app: supabase/firebase presence and how many tables an anonymous visitor could read",
"type": "object",
"properties": {},
"additionalProperties": {}
},
"report_url": {
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢ask_7it(question)
Use this when the user has a specific question for 7IT that describe_studio does not answer. Ask 7IT Solutions, a solo senior software studio, a question about whether it fits a project, what a first phase could cover, how engagements run, or what the client owns. Answers come only from 7IT's published profile and contain no prices or commitments; questions that need a quote are passed to Lior Aharonov, who replies himself.
輸入結構描述
{
"type": "object",
"properties": {
"question": {
"type": "string",
"minLength": 5,
"maxLength": 1000,
"description": "The question, in plain words. Include the business context that matters, for example the platform, the systems involved or what the app does."
}
},
"required": [
"question"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}輸出結構描述
{
"type": "object",
"properties": {
"answer": {
"description": "Answer from the published profile, or null when it was forwarded without one",
"type": [
"string",
"null"
]
},
"forwarded_to_founder": {
"type": "boolean"
},
"contact": {
"type": "string"
}
},
"required": [
"answer",
"forwarded_to_founder",
"contact"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢list_field_kits(topic)
Use this when someone wants a working checklist for a technical job (webhooks, store speed, integrations, migrations, AI in production, security). Lists 7IT Field Kits: working checklists for custom software, eCommerce, automation, payments, AI, security and reliability work (for example webhook reliability, store speed audits, integration design, SEO-safe migrations, LLM production readiness). Each has a title, a one-line purpose, the number of checks and a link. Optionally filter by a topic word.
輸入結構描述
{
"type": "object",
"properties": {
"topic": {
"description": "Optional word to filter by, for example \"shopify\", \"webhook\" or \"AI\".",
"type": "string",
"maxLength": 80
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}輸出結構描述
{
"type": "object",
"properties": {
"kits": {
"type": "array",
"items": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"title": {
"type": "string"
},
"purpose": {
"type": "string"
},
"checks": {
"type": "number"
},
"url": {
"type": "string"
}
},
"required": [
"slug",
"title",
"purpose",
"checks",
"url"
],
"additionalProperties": {}
},
"description": "Matching kits; pass a slug to get_field_kit"
}
},
"required": [
"kits"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢get_field_kit(kit)
Use this after list_field_kits, to read one checklist in full. Returns one 7IT Field Kit in full: every check with the reason it matters, grouped in order, plus how to use it and the guide it comes from. Pass the slug from list_field_kits or words from the title.
輸入結構描述
{
"type": "object",
"properties": {
"kit": {
"type": "string",
"minLength": 2,
"maxLength": 120,
"description": "The kit slug (for example \"webhook-reliability-checklist\") or words from its title."
}
},
"required": [
"kit"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}輸出結構描述
{
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"title": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"slug",
"title",
"url"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢search_7it_guides(query, limit)
Use this when the user is weighing a software, eCommerce, automation or AI decision and a cited article would help. Searches 7IT Solutions’ guides and articles on custom software, eCommerce (Shopify, WooCommerce, headless), automation and integrations (connecting CRMs, accounting tools such as QuickBooks, ERPs and online stores), payments, AI in production, security and reliability. Returns the best matches with a short excerpt and a link to cite.
輸入結構描述
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 2,
"maxLength": 200,
"description": "What to look for, for example \"reliable webhooks\" or \"shopify vs woocommerce\"."
},
"limit": {
"description": "How many results to return. Default 5.",
"type": "integer",
"minimum": 1,
"maximum": 8
}
},
"required": [
"query"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}輸出結構描述
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string"
},
"url": {
"type": "string"
},
"excerpt": {
"type": "string"
}
},
"required": [
"title",
"url"
],
"additionalProperties": {}
},
"description": "Best matches, most relevant first"
}
},
"required": [
"results"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢check_email_authentication(url)
Use this when someone asks why their emails land in spam, whether their domain is protected from spoofing or phishing in their name, or whether they meet the Gmail, Yahoo and Outlook rules for bulk senders. Reads the domain's public DNS records (SPF, DKIM under the common email services' selectors, the DMARC policy, BIMI, MX) and returns what is missing with the exact fix, compared with 7IT's study of US online stores. Sends no email and needs no access.
輸入結構描述
{
"type": "object",
"properties": {
"url": {
"type": "string",
"minLength": 3,
"maxLength": 300,
"description": "The domain or website, for example example.com"
}
},
"required": [
"url"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}輸出結構描述
{
"type": "object",
"properties": {
"domain": {
"type": "string"
},
"mx": {
"type": "boolean"
},
"spf": {
"type": "boolean"
},
"spf_all": {
"type": [
"string",
"null"
]
},
"dmarc": {
"type": "boolean"
},
"dmarc_policy": {
"type": [
"string",
"null"
]
},
"dmarc_enforced": {
"description": "DMARC set to quarantine or reject for all mail",
"type": "boolean"
},
"dkim_found": {
"type": "boolean"
},
"bimi": {
"type": "boolean"
},
"meets_bulk_sender_rules": {
"description": "SPF, DKIM and DMARC all in place, as Gmail, Yahoo and Outlook require of bulk senders",
"type": "boolean"
},
"fixes": {
"description": "What to fix, most important first",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"severity": {
"type": "string"
},
"fix": {
"type": "string"
}
},
"required": [
"id",
"severity",
"fix"
],
"additionalProperties": {}
}
},
"benchmark": {
"description": "The 7IT study this is compared with",
"anyOf": [
{
"type": "object",
"properties": {
"study": {
"type": "string"
},
"url": {
"type": "string"
},
"stores": {
"type": "number"
}
},
"required": [
"study",
"url"
],
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"report_url": {
"type": "string",
"description": "Shareable report"
}
},
"required": [
"report_url"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢check_ai_shopper_readiness(url, product_url)
Use this when someone asks whether ChatGPT, Claude, Perplexity or other AI shopping agents can find, read and recommend their online store's products. Checks what robots.txt tells AI search crawlers versus training-only crawlers, llms.txt, agents.md, the UCP commerce discovery file, and one product page's structured data (price, currency, stock, brand, GTIN or SKU, reviews, shipping and returns). Returns the gaps with fixes, compared with 7IT's study of US online stores. Uses an identified crawler that respects robots.txt.
輸入結構描述
{
"type": "object",
"properties": {
"url": {
"type": "string",
"minLength": 3,
"maxLength": 300,
"description": "The store, for example shop.example.com"
},
"product_url": {
"description": "A product page on the same store to test; otherwise one is found from the home page",
"type": "string",
"maxLength": 300
}
},
"required": [
"url"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}輸出結構描述
{
"type": "object",
"properties": {
"host": {
"type": "string"
},
"readable": {
"description": "False if the store refused or disallows identified crawlers",
"type": "boolean"
},
"blocks_ai_search": {
"description": "AI search and shopping crawlers robots.txt blocks",
"type": "array",
"items": {
"type": "string"
}
},
"llms_txt": {
"type": "boolean"
},
"agents_md": {
"type": "boolean"
},
"ucp": {
"type": "boolean"
},
"product_data_complete": {
"type": "boolean"
},
"product_fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": {
"type": "string"
},
"label": {
"type": "string"
},
"present": {
"type": "boolean"
}
},
"required": [
"key",
"label",
"present"
],
"additionalProperties": {}
}
},
"fixes": {
"description": "What to fix, most important first",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"severity": {
"type": "string"
},
"fix": {
"type": "string"
}
},
"required": [
"id",
"severity",
"fix"
],
"additionalProperties": {}
}
},
"benchmark": {
"description": "The 7IT study this is compared with",
"anyOf": [
{
"type": "object",
"properties": {
"study": {
"type": "string"
},
"url": {
"type": "string"
},
"stores": {
"type": "number"
}
},
"required": [
"study",
"url"
],
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"report_url": {
"type": "string",
"description": "Shareable report"
}
},
"required": [
"report_url"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢check_accessibility(url)
Use this when someone asks whether a website or online store is accessible, meets WCAG, or could face an ADA accessibility complaint. Runs Google Lighthouse's automated accessibility checks (axe-core rules) on the page as a phone sees it, and returns the score, each failing rule in plain English with its WCAG criterion and how many elements fail, and how the site compares with 7IT's study of US online stores. Automated checks cover only part of WCAG; this is a starting point, not a legal opinion. Takes 20 to 60 seconds.
輸入結構描述
{
"type": "object",
"properties": {
"url": {
"type": "string",
"minLength": 3,
"maxLength": 300,
"description": "The page to check, for example example.com or a product page address"
}
},
"required": [
"url"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}輸出結構描述
{
"type": "object",
"properties": {
"host": {
"type": "string"
},
"score": {
"description": "Lighthouse accessibility score, 0 to 100",
"type": [
"number",
"null"
]
},
"better_than_share": {
"description": "Share of the US store sample that scored lower",
"type": [
"number",
"null"
]
},
"issues": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"label": {
"type": "string"
},
"wcag": {
"type": [
"string",
"null"
]
},
"elements": {
"type": "number"
}
},
"required": [
"id",
"label",
"wcag",
"elements"
],
"additionalProperties": {}
}
},
"benchmark": {
"description": "The 7IT study this is compared with",
"anyOf": [
{
"type": "object",
"properties": {
"study": {
"type": "string"
},
"url": {
"type": "string"
},
"stores": {
"type": "number"
}
},
"required": [
"study",
"url"
],
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"report_url": {
"type": "string",
"description": "Shareable report"
}
},
"required": [
"report_url"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢map_agent_oversight(url, tools, server_name)
Use this when someone asks which actions their AI agent or its connected tools may take on their own, which need a person's approval, and which a person must do; or how to set up human oversight, permissions or AI governance for an agent (for example under the EU AI Act). Give either the address of a public MCP server, or the list of tools the agent has (name, description and annotations). Sorts every tool into green (runs alone: reads and prepares), yellow (a person approves: sending, updating, scheduling) or red (a person does it: money, permissions, deletion, code execution, commitments), flags tools with no risk annotations, and returns a ready policy, Claude Code permission rules (allow, ask, deny) and an oversight checklist. Reads tool lists only and never calls a tool. A working checklist, not legal advice.
輸入結構描述
{
"type": "object",
"properties": {
"url": {
"description": "The MCP server address, for example https://mcp.example.com/mcp",
"type": "string",
"maxLength": 300
},
"tools": {
"description": "Instead of an address: the tools the agent has, with their description and annotations",
"maxItems": 300,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"annotations": {
"type": "object",
"properties": {},
"additionalProperties": {}
}
},
"required": [
"name"
],
"additionalProperties": {}
}
},
"server_name": {
"description": "The name this server has in the agent setup, used in the Claude Code permission rules",
"type": "string",
"maxLength": 80
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}輸出結構描述
{
"type": "object",
"properties": {
"server": {
"type": "string"
},
"total": {
"type": "number"
},
"green": {
"description": "Tools the agent may run on its own",
"type": "number"
},
"yellow": {
"description": "Tools that need a person to approve",
"type": "number"
},
"red": {
"description": "Tools a person should do themselves",
"type": "number"
},
"unlabeled": {
"description": "Tools whose server publishes no risk annotations",
"type": "number"
},
"tools": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"level": {
"type": "string",
"enum": [
"green",
"yellow",
"red"
]
},
"reasons": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"name",
"level",
"reasons"
],
"additionalProperties": {}
}
},
"claude_code_permissions": {
"description": "Paste into .claude/settings.json",
"type": "object",
"properties": {},
"additionalProperties": {}
},
"checklist": {
"type": "array",
"items": {
"type": "string"
}
},
"report_url": {
"type": "string",
"description": "Shareable page with the full map"
}
},
"required": [
"report_url"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}⚪report_road(server, tool, ok, fail, ms, ...)
Use this after calling a tool on an MCP server (especially one 7Maps pointed you to) to report how it went: whether it worked, why not, how long it took, whether the result matched the description, and anything it did that you did not ask for. Fixed fields only, no open text. Reports from many agents become the server's rating and, once 7Maps confirms them, live incident alerts that every agent sees. You can also pass the same fields as last_trip on any paid 7Maps call. No charge.
輸入結構描述
{
"type": "object",
"properties": {
"server": {
"type": "string",
"minLength": 3,
"maxLength": 300,
"description": "The MCP server you called (URL or registry name)"
},
"tool": {
"description": "The tool you called",
"type": "string",
"maxLength": 120
},
"ok": {
"type": "boolean",
"description": "Whether the call did what you needed"
},
"fail": {
"description": "If it failed: unreachable, auth, args, server_error, timeout, rate_limited or wrong_result",
"type": "string",
"enum": [
"unreachable",
"auth",
"args",
"server_error",
"timeout",
"rate_limited",
"wrong_result"
]
},
"ms": {
"description": "How long the call took, in milliseconds",
"type": "number",
"minimum": 0,
"maximum": 600000
},
"matched_description": {
"description": "Whether the result matched what the tool description promised",
"type": "boolean"
},
"result_tokens": {
"description": "About how many tokens the result was",
"type": "number",
"minimum": 0,
"maximum": 5000000
},
"charged_usd": {
"description": "What the server charged, if anything",
"type": "number",
"minimum": 0,
"maximum": 1000
},
"surprise": {
"description": "Anything the tool did that you did not ask for",
"type": "string",
"enum": [
"side_effect",
"unexpected_cost",
"data_leak_suspected",
"other"
]
},
"tools_hash": {
"description": "The tool_list_hash of the tool list you received, if you computed it as 7Maps does",
"type": "string",
"maxLength": 64
}
},
"required": [
"server",
"ok"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡submit_mcp_server(url, category, about, country, language, ...)
Use this when someone has built or runs an MCP server that is not in the official MCP registry (for example a small business's own server) and wants AI agents to be able to find it, or asks how to get their server listed. Give the server address, or just the business's domain and the usual endpoint paths are tried. The server is observed every 6 hours for 7 days; if it answers reliably, keeps its tools stable and describes every tool, it joins the 7Maps map that agents use to choose servers. Placement cannot be bought. Returns the status page and an optional owner-verification token. No charge.
輸入結構描述
{
"type": "object",
"properties": {
"url": {
"type": "string",
"minLength": 3,
"maxLength": 300,
"description": "The MCP server address, or the business domain (example.com)"
},
"category": {
"description": "What the business does; agents also see the category its tools show",
"type": "string",
"enum": [
"commerce",
"booking",
"payments",
"marketing",
"crm",
"documents",
"data",
"dev",
"realestate",
"health",
"travel",
"legal",
"other"
]
},
"about": {
"description": "One sentence: what the business does and for whom",
"type": "string",
"maxLength": 200
},
"country": {
"description": "Where the business serves customers",
"type": "string",
"maxLength": 40
},
"language": {
"description": "Main language of the tools and their data",
"type": "string",
"maxLength": 30
},
"charges": {
"description": "Whether the server charges agents (x402 or a subscription)",
"type": "boolean"
}
},
"required": [
"url"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡claim_mcp_server(server, note, alert_url)
Use this when the person you work for owns or runs an MCP server that is on the 7Maps map and wants its page to show it is owner verified, add a short note for agents (rate limits, sign-up, what the tools are for), or get a live status badge for their README. Verified owners' servers are checked every 5 minutes (uptime on the page and badge), and with alert_url the owner gets a message when the server stops answering and when it is back. First call returns the proof options (a line in /.well-known/7maps-verify.txt on the server's host, a DNS TXT record, or for io.github registry names a file in the GitHub repo); after one is in place, call again to confirm. Verifying does not change how the server is measured or ranked. No charge.
輸入結構描述
{
"type": "object",
"properties": {
"server": {
"type": "string",
"minLength": 3,
"maxLength": 300,
"description": "The MCP server address as it appears on its 7Maps page"
},
"note": {
"description": "Optional plain-text note from the owner, no links, up to 280 characters",
"type": "string",
"maxLength": 280
},
"alert_url": {
"description": "Optional: where to send down and up alerts. An ntfy topic for phone push without email (https://ntfy.sh/<hard-to-guess topic, at least 10 characters>, a self-hosted https://ntfy.<domain>/<topic>, or ntfy:https://<host>/<topic>), a Slack incoming webhook (https://hooks.slack.com/services/...), a Discord webhook (https://discord.com/api/webhooks/...), or any https webhook that receives JSON. Stored encrypted, saved only once ownership is proven; a test message is sent on save. An empty string turns alerts off.",
"type": "string",
"maxLength": 600
}
},
"required": [
"server"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢my_server_report(server, owner_key, days)
Use this when the person you work for owns an MCP server on the 7Maps map and wants to know how AI agents look for servers like it: how often agents asked 7Maps for servers in its category in the last 7 or 30 days, how often this server was shown and picked, and, for a verified owner with owner_key, the words agents used, the servers picked instead, failure reasons agents reported, uptime, tool changes, and its token cost and handshake time against similar servers. Counts only, no agent identities. Without owner_key it returns the public numbers and how to verify ownership with claim_mcp_server. Read-only; never changes ranking or routing. No charge.
輸入結構描述
{
"type": "object",
"properties": {
"server": {
"type": "string",
"minLength": 3,
"maxLength": 300,
"description": "The MCP server address as it appears on its 7Maps page, or its official registry name"
},
"owner_key": {
"description": "The owner key returned to the verified owner by claim_mcp_server",
"type": "string",
"maxLength": 64
},
"days": {
"description": "Window in days: 7 (default) or 30",
"anyOf": [
{
"type": "number",
"const": 7
},
{
"type": "number",
"const": 30
}
]
}
},
"required": [
"server"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢my_7maps_usage(window)
Use this when the person you work for asks what 7Maps has done for them: calls made with their personal 7Maps key today, in the last 7 days and in the last 30 days, servers checked, an estimate of the tokens saved compared with finding the same thing out without 7Maps, failures avoided (servers not answering that were skipped, risk changes caught by watch or verify_lock, calls that would have failed) and the average response time. It reads the optional personal key sent with this connection (the X-7Maps-Key header); without one it says so in one line, since every 7Maps answer already states its own saving. Only that person's own counts. No charge.
輸入結構描述
{
"type": "object",
"properties": {
"window": {
"description": "Which window to lead with: day (today), week (last 7 days) or month (last 30 days); all three are returned",
"type": "string",
"enum": [
"day",
"week",
"month"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢find_tool(job, may, answering_now, max_handshake_ms, max_tool_list_tokens, ...)
Use this when you need a tool for a job and do not know which MCP server has one: searches every tool of every public MCP server on the 7Maps map (over 200,000 tools, probed daily) and returns the best matches with an automated estimate of what each tool can do (read-only, changes data, high risk), whether its server is answering now, its handshake time, the tokens its tool list costs to load, and a page to check it. Filter to read-only tools, servers answering now, a latency or token ceiling. Copies of the same tool on several servers are collapsed. No charge. To have 7Maps pick one server and tool for you with alternatives, use route.
輸入結構描述
{
"type": "object",
"properties": {
"job": {
"type": "string",
"minLength": 3,
"maxLength": 200,
"description": "What the tool should do, in plain words, for example \"send a transactional email\" or \"query a postgres database\""
},
"may": {
"description": "What the tool may do: read = read-only only; change = read or change data; any = include high-risk tools (default any)",
"type": "string",
"enum": [
"read",
"change",
"any"
]
},
"answering_now": {
"description": "Only servers that answered with tools on the last check (default true)",
"type": "boolean"
},
"max_handshake_ms": {
"type": "integer",
"minimum": 50,
"maximum": 30000
},
"max_tool_list_tokens": {
"type": "integer",
"minimum": 100,
"maximum": 200000
},
"limit": {
"description": "How many results (default 10)",
"type": "integer",
"minimum": 1,
"maximum": 25
}
},
"required": [
"job"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}輸出結構描述
{
"type": "object",
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"tool": {
"type": "string"
},
"server": {
"type": "string"
},
"does": {
"type": "string"
},
"status": {
"type": "string"
}
},
"required": [
"tool",
"server",
"does",
"status"
],
"additionalProperties": {}
}
},
"matched": {
"type": "number"
},
"tools_indexed": {
"type": "number"
}
},
"required": [
"results",
"matched",
"tools_indexed"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}⚪report_problem(tool, problem, url)
Use this when a 7IT tool returned something that looks wrong, failed unexpectedly, or did not match what the user asked for, so 7IT can fix it. Sends a short report to 7IT: which tool, what went wrong, and optionally the site address involved. Do not include personal details or the conversation. Nothing changes for the user; it is only feedback.
輸入結構描述
{
"type": "object",
"properties": {
"tool": {
"type": "string",
"minLength": 2,
"maxLength": 60,
"description": "The 7IT tool that misbehaved, for example \"test_store_speed\"."
},
"problem": {
"type": "string",
"minLength": 5,
"maxLength": 600,
"description": "What went wrong, in one or two sentences."
},
"url": {
"description": "The site address the tool was used on, if any.",
"type": "string",
"maxLength": 300
}
},
"required": [
"tool",
"problem"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}輸出結構描述
{
"type": "object",
"properties": {
"received": {
"type": "boolean",
"description": "Whether the report was recorded"
}
},
"required": [
"received"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}社群
證據