The Mine Works

31 pay-per-result web data tools: LinkedIn, Google Maps, SEC, real estate, jobs, leads, gov data.

Should I use this

Quality & Safety

A
Description quality
99%
Schema completeness
100%
Naming quality
97%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~4,733Tokens (tool definitions)
~1.2 KBTypical response size
Significant attention impact (3.70% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "the-mine-works": {
      "url": "https://the-mine-works-mcp.hatchable.site/api/mcp"
    }
  }
}

Remote endpoints

https://the-mine-works-mcp.hatchable.site/api/mcpstreamable-http

What it can do

Tool inventory

Tools (32)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_linkedin_employees(company, jobTitle, maxResults)

Find employees at a company on LinkedIn. Returns name, headline, location, and profile URL. Uses Google indexing — no LinkedIn login or cookies required.

Input Schema

{
  "type": "object",
  "properties": {
    "company": {
      "type": "string",
      "description": "Company name (e.g. \"Stripe\", \"Notion\")"
    },
    "jobTitle": {
      "type": "string",
      "description": "Optional job title filter (e.g. \"Head of Marketing\", \"CTO\")"
    },
    "maxResults": {
      "type": "integer",
      "description": "Max profiles to return (default 25)",
      "default": 25
    }
  },
  "required": [
    "company"
  ]
}
🟢search_linkedin_jobs(keywords, location, maxResults)

Search LinkedIn job listings by keyword and location. Returns job title, company, location, seniority, and applicant count. No login required.

Input Schema

{
  "type": "object",
  "properties": {
    "keywords": {
      "type": "string",
      "description": "Job title or skill (e.g. \"machine learning engineer\")"
    },
    "location": {
      "type": "string",
      "description": "Location filter (e.g. \"San Francisco\", \"Remote\", \"India\")"
    },
    "maxResults": {
      "type": "integer",
      "description": "Max listings (default 25)",
      "default": 25
    }
  },
  "required": [
    "keywords"
  ]
}
🟡search_linkedin_posts(query, maxResults)

Search LinkedIn posts by keyword. Returns post snippet, author name, headline, and profile URL. Uses Google indexing — no LinkedIn login required.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Keyword or phrase to search for in LinkedIn posts"
    },
    "maxResults": {
      "type": "integer",
      "description": "Max posts (default 25)",
      "default": 25
    }
  },
  "required": [
    "query"
  ]
}
🟢find_b2b_leads(companies, jobTitles, maxLeadsPerCompany)

Find B2B leads for target companies: LinkedIn profiles, job titles, and guessed business emails. Apollo and ZoomInfo alternative. No API key required.

Input Schema

{
  "type": "object",
  "properties": {
    "companies": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Company names or domains (e.g. [\"stripe.com\", \"notion.so\"])"
    },
    "jobTitles": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Job title filters (e.g. [\"CEO\", \"Head of Marketing\"])"
    },
    "maxLeadsPerCompany": {
      "type": "integer",
      "description": "Max leads per company (default 10)",
      "default": 10
    }
  },
  "required": [
    "companies"
  ]
}
🟡scrape_reddit(mode, subreddit, query, postUrl, username, ...)

Scrape Reddit posts and comments by subreddit, keyword search, or post URL. Returns full post data with comment trees.

Input Schema

{
  "type": "object",
  "properties": {
    "mode": {
      "type": "string",
      "enum": [
        "subreddit",
        "search",
        "post",
        "user"
      ],
      "description": "Scrape mode"
    },
    "subreddit": {
      "type": "string",
      "description": "Subreddit name without r/ prefix (for subreddit mode)"
    },
    "query": {
      "type": "string",
      "description": "Search query (for search mode)"
    },
    "postUrl": {
      "type": "string",
      "description": "Reddit post URL (for post mode)"
    },
    "username": {
      "type": "string",
      "description": "Reddit username (for user mode)"
    },
    "maxResults": {
      "type": "integer",
      "description": "Max posts (default 25)",
      "default": 25
    }
  },
  "required": [
    "mode"
  ]
}
⚪scrape_ats_jobs(company, platform, maxResults)

Scrape job listings from company ATS boards: Greenhouse, Lever, Workday, and Ashby. No auth required — uses their public job APIs.

Input Schema

{
  "type": "object",
  "properties": {
    "company": {
      "type": "string",
      "description": "Company slug as used in their ATS URL (e.g. \"stripe\" for boards.greenhouse.io/stripe)"
    },
    "platform": {
      "type": "string",
      "enum": [
        "greenhouse",
        "lever",
        "workday",
        "ashby",
        "auto"
      ],
      "description": "ATS platform (default: auto-detect)"
    },
    "maxResults": {
      "type": "integer",
      "description": "Max jobs (default 50)",
      "default": 50
    }
  },
  "required": [
    "company"
  ]
}
🟢search_google_trends(keywords, geo, timeRange)

Get Google Trends interest data for up to 5 keywords. Returns interest over time, geographic breakdown, and related queries.

Input Schema

{
  "type": "object",
  "properties": {
    "keywords": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Keywords to compare (1-5 terms)"
    },
    "geo": {
      "type": "string",
      "description": "Country code (e.g. \"US\", \"IN\", \"GB\"). Leave empty for worldwide."
    },
    "timeRange": {
      "type": "string",
      "description": "Time range: \"today 3-m\", \"today 12-m\", \"today 5-y\"",
      "default": "today 12-m"
    }
  },
  "required": [
    "keywords"
  ]
}
🟢search_sec_filings(query, dateFrom, filingType, maxResults)

Full-text search across SEC EDGAR filings: 10-K, 10-Q, 8-K, and more. Returns filing metadata and matched text excerpts.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Search query (e.g. \"artificial intelligence risk\" or company name)"
    },
    "dateFrom": {
      "type": "string",
      "description": "Filter filings from this date (YYYY-MM-DD)"
    },
    "filingType": {
      "type": "string",
      "description": "Filing type filter (e.g. \"10-K\", \"8-K\", \"10-Q\")"
    },
    "maxResults": {
      "type": "integer",
      "description": "Max filings (default 25)",
      "default": 25
    }
  },
  "required": [
    "query"
  ]
}
🟢search_indiamart_suppliers(query, maxResults)

Search IndiaMART for B2B suppliers and manufacturers in India. Returns company name, products, location, contact details, and ratings.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Product or supplier search query (e.g. \"stainless steel pipes manufacturer\")"
    },
    "maxResults": {
      "type": "integer",
      "description": "Max suppliers (default 25)",
      "default": 25
    }
  },
  "required": [
    "query"
  ]
}
🟢search_naukri_jobs(keywords, location, maxResults)

Search Naukri.com for job listings in India. Returns job title, company, location, salary range, experience required, and description.

Input Schema

{
  "type": "object",
  "properties": {
    "keywords": {
      "type": "string",
      "description": "Job title or skills (e.g. \"Python developer\", \"product manager\")"
    },
    "location": {
      "type": "string",
      "description": "City or region (e.g. \"Bangalore\", \"Mumbai\", \"Remote\")"
    },
    "maxResults": {
      "type": "integer",
      "description": "Max jobs (default 25)",
      "default": 25
    }
  },
  "required": [
    "keywords"
  ]
}
🟢search_pubmed(query, maxResults)

Search PubMed for biomedical literature. Returns PMID, title, abstract, authors, journal, and DOI. 36M+ articles indexed.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "PubMed search query (e.g. \"GLP-1 cardiovascular outcomes clinical trial\")"
    },
    "maxResults": {
      "type": "integer",
      "description": "Max articles (default 25)",
      "default": 25
    }
  },
  "required": [
    "query"
  ]
}
🟢search_arxiv(query, category, maxResults)

Search arXiv preprints by keyword or category. Returns title, abstract, authors, and PDF link. Best for AI, CS, physics, and biology research.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Search keyword or phrase"
    },
    "category": {
      "type": "string",
      "description": "arXiv category (e.g. \"cs.LG\", \"cs.AI\", \"cs.CL\", \"quant-ph\", \"q-bio.GN\")"
    },
    "maxResults": {
      "type": "integer",
      "description": "Max papers (default 25)",
      "default": 25
    }
  },
  "required": [
    "query"
  ]
}
🟢search_nih_grants(query, agency, maxResults)

Search NIH RePORTER for grant awards by topic, agency, or institution. Returns project title, abstract, award amount, PI names, and institution.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Research topic or keyword (e.g. \"CRISPR gene therapy cancer\")"
    },
    "agency": {
      "type": "string",
      "description": "NIH agency code (e.g. \"NCI\", \"NIAID\", \"NHLBI\")"
    },
    "maxResults": {
      "type": "integer",
      "description": "Max grants (default 25)",
      "default": 25
    }
  },
  "required": [
    "query"
  ]
}
⚪scrape_trustpilot(companyUrl, maxResults)

Scrape Trustpilot reviews for any company. Returns reviewer name, star rating, review title, body, date, and verified status.

Input Schema

{
  "type": "object",
  "properties": {
    "companyUrl": {
      "type": "string",
      "description": "Company domain (e.g. \"stripe.com\") or its Trustpilot URL (e.g. \"https://www.trustpilot.com/review/stripe.com\")"
    },
    "maxResults": {
      "type": "integer",
      "description": "Max reviews (default 25)",
      "default": 25
    }
  },
  "required": [
    "companyUrl"
  ]
}
🟢find_website_contacts(domains, maxPagesPerSite)

Crawl a list of domains and extract business emails, phone numbers, and social profile links (LinkedIn, X, Facebook, Instagram, YouTube) from homepages, contact and about pages. No API key required.

Input Schema

{
  "type": "object",
  "properties": {
    "domains": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Domains or URLs to crawl (e.g. [\"stripe.com\", \"notion.so\"])"
    },
    "maxPagesPerSite": {
      "type": "integer",
      "description": "Pages to crawl per domain (default 5)",
      "default": 5
    }
  },
  "required": [
    "domains"
  ]
}
⚪verify_emails(emails, checkSmtp)

Bulk-verify email addresses: syntax, MX records, SMTP deliverability, disposable-domain and role-based detection. Use before sending outreach so you only contact addresses that actually exist.

Input Schema

{
  "type": "object",
  "properties": {
    "emails": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Email addresses to verify"
    },
    "checkSmtp": {
      "type": "boolean",
      "description": "Run SMTP deliverability probe (default true)",
      "default": true
    }
  },
  "required": [
    "emails"
  ]
}
🟢find_linkedin_candidates(roleTitle, skills, location, minYears, maxYears, ...)

Recruiter sourcing: find LinkedIn profiles matching a role, skills, location, experience band, and optional target companies. Returns name, headline, current title/company, profile URL, matched skills, and a match-confidence score. No login required.

Input Schema

{
  "type": "object",
  "properties": {
    "roleTitle": {
      "type": "string",
      "description": "Role to source for (e.g. \"Senior Machine Learning Engineer\")"
    },
    "skills": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Required skills (e.g. [\"Python\", \"PyTorch\"])"
    },
    "location": {
      "type": "string",
      "description": "Location filter (e.g. \"Bangalore\", \"Remote\")"
    },
    "minYears": {
      "type": "integer",
      "description": "Minimum years of experience"
    },
    "maxYears": {
      "type": "integer",
      "description": "Maximum years of experience"
    },
    "targetCompanies": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Only return candidates currently at these companies"
    },
    "maxResults": {
      "type": "integer",
      "description": "Max candidates (default 25)",
      "default": 25
    }
  },
  "required": [
    "roleTitle"
  ]
}
🟢get_linkedin_profiles(profileUrls)

Fetch full LinkedIn profile details by profile URL: experience, education, skills, headline, and location. No login or cookies required.

Input Schema

{
  "type": "object",
  "properties": {
    "profileUrls": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "LinkedIn profile URLs (e.g. [\"https://www.linkedin.com/in/satyanadella\"])"
    }
  },
  "required": [
    "profileUrls"
  ]
}
🟢get_linkedin_company(companies)

Get LinkedIn company details: employee count, industry, website, follower count, headquarters, and description. Accepts LinkedIn company URLs, or plain company names (resolved best-effort to a linkedin.com/company slug).

Input Schema

{
  "type": "object",
  "properties": {
    "companies": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "LinkedIn company URLs, or company names (e.g. [\"https://www.linkedin.com/company/openai\", \"stripe\"])"
    }
  },
  "required": [
    "companies"
  ]
}
🟢search_google_maps(query, location, maxResults)

Search Google Maps business listings by keyword and location. Returns name, category, address, phone, website, rating, review count, opening hours, and coordinates. No login, no Google Maps API key.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "What to search for (e.g. \"dentists\", \"coffee shops\")"
    },
    "location": {
      "type": "string",
      "description": "Where to search (e.g. \"Austin, TX\", \"Bangalore\")"
    },
    "maxResults": {
      "type": "integer",
      "description": "Max listings (default 25)",
      "default": 25
    }
  },
  "required": [
    "query"
  ]
}
🟢search_crunchbase(query, maxResults)

Look up company funding and firmographic data on Crunchbase: total funding, last round, investors, founding year, employee range, and category. Use to check whether a company is actually growing.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Company name to search (e.g. \"anthropic\")"
    },
    "maxResults": {
      "type": "integer",
      "description": "Max companies (default 5)",
      "default": 5
    }
  },
  "required": [
    "query"
  ]
}
🟢analyze_github_repos(repos, includeReadme)

Deep metadata for public GitHub repositories: stars, forks, language breakdown, topics, license, README content, contributor count, latest release, and commit recency. Use to see what a company or project is actually building. No GitHub token required.

Input Schema

{
  "type": "object",
  "properties": {
    "repos": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Repos as \"owner/name\" or full GitHub URLs (e.g. [\"anthropics/claude-code\"])"
    },
    "includeReadme": {
      "type": "boolean",
      "description": "Include full README text (default true)",
      "default": true
    }
  },
  "required": [
    "repos"
  ]
}
⚪lookup_lei(legalNames, matchesPerName)

Look up a company Legal Entity Identifier (LEI) in the official GLEIF registry by legal name. Returns LEI code, registration status, legal address, and entity status. Authoritative source for verifying a company legally exists.

Input Schema

{
  "type": "object",
  "properties": {
    "legalNames": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Company legal names (e.g. [\"Apple Inc.\"])"
    },
    "matchesPerName": {
      "type": "integer",
      "description": "Max matches per name (default 3)",
      "default": 3
    }
  },
  "required": [
    "legalNames"
  ]
}
⚪resolve_company_identity(companies, countryCode)

Resolve a company name to its authoritative identifiers across registries in one call: GLEIF LEI, legal name, country, entity status, and SEC EDGAR CIK plus last filing date. Use to ground company facts before trusting them.

Input Schema

{
  "type": "object",
  "properties": {
    "companies": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Company names (e.g. [\"Apple Inc\", \"Lockheed Martin\"])"
    },
    "countryCode": {
      "type": "string",
      "description": "Optional ISO country code filter (e.g. \"US\")"
    }
  },
  "required": [
    "companies"
  ]
}
🟢search_zillow(location, maxItems, minPrice, maxPrice, minBeds, ...)

Search Zillow for-sale or rental listings by city, ZIP, or neighborhood. Returns price, beds, baths, sqft, address, coordinates, and listing URL. No API key.

Input Schema

{
  "type": "object",
  "properties": {
    "location": {
      "type": "string",
      "description": "City, ZIP, or neighborhood (e.g. \"Austin, TX\", \"78701\")"
    },
    "maxItems": {
      "type": "integer",
      "description": "Max properties (default 50)",
      "default": 50
    },
    "minPrice": {
      "type": "integer",
      "description": "Minimum price"
    },
    "maxPrice": {
      "type": "integer",
      "description": "Maximum price"
    },
    "minBeds": {
      "type": "integer",
      "description": "Minimum bedrooms"
    },
    "daysOnZillow": {
      "type": "integer",
      "description": "Only listings posted within this many days"
    }
  },
  "required": [
    "location"
  ]
}
🟢get_zillow_property_details(urls)

Fetch deep Zillow property data from listing URLs or ZPIDs: price history, tax history, school ratings, HOA fee, year built, Zestimate, rent Zestimate, and photos. Chains off search_zillow output.

Input Schema

{
  "type": "object",
  "properties": {
    "urls": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Zillow property URLs or raw ZPIDs"
    }
  },
  "required": [
    "urls"
  ]
}
🟢search_redfin(location, maxItems, soldWithinDays, minPrice, maxPrice, ...)

Search Redfin for-sale or recently-sold listings by city, ZIP, or Redfin URL. Returns price, beds, baths, sqft, price per sqft, listing agent, broker, MLS ID, and listing URL. Use soldWithinDays for comparable-sales analysis.

Input Schema

{
  "type": "object",
  "properties": {
    "location": {
      "type": "string",
      "description": "City, ZIP, or Redfin URL"
    },
    "maxItems": {
      "type": "integer",
      "description": "Max properties (default 50)",
      "default": 50
    },
    "soldWithinDays": {
      "type": "integer",
      "description": "Return recently-sold within N days (7-365) instead of for-sale"
    },
    "minPrice": {
      "type": "integer",
      "description": "Minimum price"
    },
    "maxPrice": {
      "type": "integer",
      "description": "Maximum price"
    },
    "minBeds": {
      "type": "integer",
      "description": "Minimum bedrooms"
    }
  },
  "required": [
    "location"
  ]
}
🟢search_realtor(location, maxItems, soldMode, minPrice, maxPrice, ...)

Search Realtor.com for-sale or sold listings by city or ZIP. Returns price, beds, baths, sqft, county, listing status, and the listing agent and brokerage office for every record. No MLS login.

Input Schema

{
  "type": "object",
  "properties": {
    "location": {
      "type": "string",
      "description": "City or ZIP (e.g. \"Austin, TX\")"
    },
    "maxItems": {
      "type": "integer",
      "description": "Max properties (default 50)",
      "default": 50
    },
    "soldMode": {
      "type": "boolean",
      "description": "Return sold listings instead of for-sale (default false)",
      "default": false
    },
    "minPrice": {
      "type": "integer",
      "description": "Minimum price"
    },
    "maxPrice": {
      "type": "integer",
      "description": "Maximum price"
    },
    "minBeds": {
      "type": "integer",
      "description": "Minimum bedrooms"
    }
  },
  "required": [
    "location"
  ]
}
🟡search_sam_gov_contracts(apiKey, keyword, naicsCode, noticeType, organizationName, ...)

Search live US federal contract opportunities on SAM.gov: solicitations, presolicitations, sources-sought, and award notices. Filter by keyword, NAICS code, notice type, agency, and set-aside type. Requires your own free SAM.gov / api.data.gov API key.

Input Schema

{
  "type": "object",
  "properties": {
    "apiKey": {
      "type": "string",
      "description": "Your free SAM.gov / api.data.gov API key. Get one at sam.gov (Account Details -> API Key) or api.data.gov/signup."
    },
    "keyword": {
      "type": "string",
      "description": "Full-text search on the opportunity title (e.g. \"software\")"
    },
    "naicsCode": {
      "type": "string",
      "description": "NAICS industry code, up to 6 digits (e.g. \"541511\")"
    },
    "noticeType": {
      "type": "string",
      "description": "Procurement type code: o=Solicitation, p=Presolicitation, r=Sources Sought, a=Award Notice, k=Combined Synopsis, s=Special Notice, g=Sale of Surplus, u=Justification, i=Intent to Bundle"
    },
    "organizationName": {
      "type": "string",
      "description": "Department/sub-tier name (e.g. \"DEPARTMENT OF DEFENSE\")"
    },
    "setAsideType": {
      "type": "string",
      "description": "Set-aside code (e.g. \"SBA\", \"8A\", \"WOSB\", \"HZC\")"
    },
    "postedFrom": {
      "type": "string",
      "description": "Earliest posted date, MM/DD/YYYY or YYYY-MM-DD. Defaults to 30 days ago."
    },
    "postedTo": {
      "type": "string",
      "description": "Latest posted date. Defaults to today."
    },
    "maxResults": {
      "type": "integer",
      "description": "Max opportunities to return (default 100)",
      "default": 100
    }
  },
  "required": [
    "apiKey"
  ]
}
🟢search_fec_campaign_finance(mode, query, committeeId, apiKey, maxResults)

Search US federal campaign finance via the official OpenFEC API: candidates by name, committees/PACs by name, or itemized Schedule A contributions for one committee.

Input Schema

{
  "type": "object",
  "properties": {
    "mode": {
      "type": "string",
      "enum": [
        "candidates",
        "committees",
        "contributions"
      ],
      "description": "candidates/committees search by name; contributions pulls itemized donations for one committee"
    },
    "query": {
      "type": "string",
      "description": "Name to search for candidates/committees modes (e.g. \"Warren\")"
    },
    "committeeId": {
      "type": "string",
      "description": "FEC committee ID (e.g. \"C00401224\") - required for contributions mode. Find it via committees mode first."
    },
    "apiKey": {
      "type": "string",
      "description": "Your free api.data.gov key. Falls back to FEC's public DEMO_KEY (rate-limited) if omitted."
    },
    "maxResults": {
      "type": "integer",
      "description": "Max rows to return (default 25)",
      "default": 25
    }
  },
  "required": [
    "mode"
  ]
}
🟢search_companies_house_uk(apiKey, query, companyNumbers, includeOfficers, maxResults)

Search or look up UK companies on the official Companies House register: status, type, incorporation date, registered office address, SIC codes, and optionally the full officer roster. Requires your own free Companies House API key.

Input Schema

{
  "type": "object",
  "properties": {
    "apiKey": {
      "type": "string",
      "description": "Your free Companies House REST API key. Register an application at developer.company-information.service.gov.uk."
    },
    "query": {
      "type": "string",
      "description": "Company name/keyword search. Use this OR companyNumbers."
    },
    "companyNumbers": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Exact UK company numbers for direct lookup (e.g. [\"09446231\"])"
    },
    "includeOfficers": {
      "type": "boolean",
      "description": "Fetch the officer roster (directors, secretaries) for each company (default false)",
      "default": false
    },
    "maxResults": {
      "type": "integer",
      "description": "Max companies to return (default 50)",
      "default": 50
    }
  },
  "required": [
    "apiKey"
  ]
}
🟢get_run_results(run_id)

Collect the results of a previously started actor run. Use this when another tool returned status "pending" with a run_id: wait a few seconds, then call this with that run_id. Repeat until it returns results.

Input Schema

{
  "type": "object",
  "properties": {
    "run_id": {
      "type": "string",
      "description": "The run_id returned by a tool whose status was \"pending\""
    }
  },
  "required": [
    "run_id"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded32 tools
verifiedversion not recorded32 tools