{"name":"io.anakin/mcp","slug":"anakin-mcp","title":"Anakin","description":"Web data for AI agents: scrape, crawl, search, deep research, site monitoring, browser automation","url":"https://mcp.market/server/anakin-mcp","rating":null,"grade":"B","score":83,"certified":false,"status":"active","category":"scraping","tags":["scraping","search"],"presence":{"score":37,"stars":3,"forks":2,"downloads_week":366,"last_push_at":"2026-09-16T12:51:38.000Z","license":"Apache-2.0"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/Anakin-Inc/anakin-mcp","website":"https://anakin.io","version":"0.2.1","remotes":[],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@anakin-io/mcp","version":"0.2.1","transport":{"type":"stdio"},"environmentVariables":[{"description":"Anakin API key. Get one free at https://anakin.io/dashboard (500 credits, no card required).","isRequired":true,"isSecret":true,"name":"ANAKIN_API_KEY"}]}],"tools":[{"name":"agentic_search","description":"Run multi-source deep research. The pipeline searches the web, scrapes the most relevant citations, and uses an LLM to structure the combined data into a unified answer. Async \\u2014 typically 1\\u20135 minutes. Use this when one URL or a flat search result will not answer the question (comparative analysis, multi-jurisdictional research, market intelligence). Returns a summary plus structured_data","write_action":true,"price_micros":0,"input_schema":null},{"name":"ai_visibility_search","description":"Ask multiple AI answer engines (ChatGPT, Gemini, Google AI Overview) the same question and compare their answers. Returns one result per engine \\u2014 status, an answer summary, latency, credits used, and a consensus/outlier verdict \\u2014 plus an AI-generated synthesis of where the engines agree and diverge. Async; typically completes within 1\\u20132 minutes and this tool polls to completion. Use","write_action":false,"price_micros":0,"input_schema":null},{"name":"ai_visibility_sources","description":"List the AI answer engines available to ai_visibility_search \\u2014 each with its slug (what you pass as `sources`) and display label. Call this when you need to query a subset of engines or check what is currently enabled.","write_action":false,"price_micros":0,"input_schema":null},{"name":"browser_task","description":"Run a natural-language task in a real cloud browser driven by an AI agent: it navigates, clicks, types, scrolls, and extracts on your behalf (\"find the cheapest 65-inch TV on this site and list its specs\", \"fill the contact form with \\u2026\"). Use when scrape cannot do the job (multi-step flows, interactions, complex navigation) and no Wire action covers the site (check wire_discover first \\u2014 ","write_action":true,"price_micros":0,"input_schema":null},{"name":"crawl","description":"Bulk-fetch markdown across a site. Use this when an agent needs the contents of many pages at once (catalog ingestion, site-wide RAG corpus). Pair with includePatterns / excludePatterns to scope which URLs are fetched. Returns an array of pages each with markdown and per-page status.","write_action":false,"price_micros":0,"input_schema":null},{"name":"map","description":"Discover all reachable URLs under a given site. Useful for understanding a domain's structure before crawling, or finding the sub-pages an agent should scrape. Returns lists of internal links, external links, and counts. Honors depth and limit parameters.","write_action":false,"price_micros":0,"input_schema":null},{"name":"monitor_changes","description":"Get the detected changes for a monitor \\u2014 each entry records when the watched content differed from the previous check, with a diff/summary (and the AI change summary when aiMode is on). Use monitor_list first to find the monitor id.","write_action":false,"price_micros":0,"input_schema":null},{"name":"monitor_control","description":"Control an existing website monitor: \"pause\" stops scheduled checks, \"resume\" restarts them (may hit the plan's active-monitor cap), \"run_now\" triggers an immediate out-of-schedule check (billed like a normal check), and \"delete\" permanently removes the monitor and its history. Use monitor_list to find the id.","write_action":false,"price_micros":0,"input_schema":null},{"name":"monitor_create","description":"Create a scheduled website monitor that checks a URL every intervalMinutes (min 15) and records a change when the content differs \\u2014 optionally alerting a webhook or email. scope \"page\" (default) watches one URL; \"site\" crawls the site each run and tracks pages added/removed/changed; \"wire\" runs a Wire action each check and diffs its JSON. watchMode \"full_page\" (2 credits/check) compares the w","write_action":true,"price_micros":0,"input_schema":null},{"name":"monitor_list","description":"List your website monitors, or pass `id` to fetch one monitor's full configuration and status (next/last check time, active state, per-check credit cost, alert settings). Use this to find a monitor's id before monitor_changes or monitor_control.","write_action":false,"price_micros":0,"input_schema":null},{"name":"scrape","description":"Fetch a single URL and return clean markdown by default. Set generateJson=true to also extract structured data with AI. Set useBrowser=true for SPAs and JS-heavy sites (slower and more expensive \\u2014 only when needed). Returns markdown unless generateJson is true, in which case it returns the structured JSON.","write_action":false,"price_micros":0,"input_schema":null},{"name":"search","description":"Run an AI web search and return result URLs, titles, and snippets. Synchronous \\u2014 returns immediately, no polling. Use this when the agent needs to discover pages relevant to a query before scraping. Returns a results array with url/title/snippet/date for each hit.","write_action":true,"price_micros":0,"input_schema":null},{"name":"session_delete","description":"Permanently delete a saved browser session and its encrypted login data. Irreversible \\u2014 the user must log in again through the dashboard to recreate it, and any monitors or requests referencing this sessionId will lose authenticated access. Find ids with session_list.","write_action":true,"price_micros":0,"input_schema":null},{"name":"session_list","description":"List your saved browser sessions \\u2014 encrypted login states captured via the Anakin dashboard or Browser API. Each session's id is what you pass as sessionId to scrape/crawl, monitor_create, or browser_task to work with login-protected pages. Optionally filter by the website domain the session belongs to. If no session exists for a site, the user must create one interactively in the dashboard (","write_action":false,"price_micros":0,"input_schema":null},{"name":"wire_build","description":"Request a brand-new Wire action for a website that isn't in the catalog yet. Describe the site (`website_url`) and what the action should do or extract (`goal`); Wire generates and auto-tests a scraper, then publishes it. Asynchronous (returns status \"pending\") and charges credits, refunded automatically if the build fails. Only use this after wire_discover / wire_catalog confirm no existing actio","write_action":false,"price_micros":0,"input_schema":null},{"name":"wire_catalog","description":"Browse the Wire catalog. With no arguments, lists every supported website and its action count. Pass a catalog `slug` (e.g. \"walmart\", \"amazon\", \"linkedin\") to get that site's full action list with exact parameter schemas, each action's type (read/write), auth mode (none/optional/required), and credit cost \\u2014 plus the login fields for credentials-mode sites. Use this to see everything a specif","write_action":false,"price_micros":0,"input_schema":null},{"name":"wire_discover","description":"Find Wire actions for a task from a natural-language intent. Wire is a catalog of pre-built automation actions across hundreds of websites (Amazon, Walmart, LinkedIn, Airbnb, Zillow, and others). Actions are of two kinds: READ actions that extract data (search listings, fetch a category's products, get a product's price/specs/reviews, read a profile, pull dashboard metrics) and WRITE actions that ","write_action":false,"price_micros":0,"input_schema":null},{"name":"wire_identities","description":"List your saved Wire identities and their credentials. An identity is a named account on a site; each credential's `id` is the `credential_id` you pass to wire_read_action / wire_write_action to run actions whose auth_mode is \"required\". Optionally filter by catalog_id. Use this to find an existing credential before running an auth-required action (and check its status is \"active\", not \"expired\").","write_action":false,"price_micros":0,"input_schema":null},{"name":"wire_login","description":"Sign in to a credentials-mode site and get a credential_id usable immediately with wire_read_action / wire_write_action. Provide the catalog `slug` and login `params` (the fields that catalog's login schema defines, e.g. email/password \\u2014 see wire_catalog's login_input_schema). The password is never stored, only the encrypted session. Only needed for actions whose auth_mode is \"required\", and ","write_action":false,"price_micros":0,"input_schema":null},{"name":"wire_read_action","description":"Run a Wire READ action \\u2014 one whose type is \"read\" (it EXTRACTS data and does not change state on the target site): search listings, fetch a category's products, get a product's price/specs/reviews, read a profile, pull dashboard metrics. Discover action_ids first with wire_discover or wire_catalog and confirm the action's type is \"read\"; `params` must match that action's parameter schema. Thi","write_action":true,"price_micros":0,"input_schema":null},{"name":"wire_write_action","description":"Run a Wire WRITE action \\u2014 one whose type is \"write\" (it performs a state-changing interaction on the target site): submit a form, add an item to a cart, post or send content, update account settings. Discover action_ids first with wire_discover or wire_catalog and confirm the action's type is \"write\"; `params` must match that action's parameter schema. Most write actions need auth \\u2014 pass","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":83,"grade":"B","scanned_at":"2026-09-25T17:22:00.508Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-25T17:22:00.386Z","components":{"code":{"score":25,"max":25,"notes":["4 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 9 days ago"]},"identity":{"score":8,"max":10,"notes":["namespace and repository owner differ","GitHub account older than a year","website matches verified namespace"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@anakin-io/mcp","version":"0.2.1","found":true,"license":"Apache-2.0","hasInstallScripts":false,"dependencyCount":1,"publishedAt":"2026-07-21T17:42:58.832Z","repositoryUrl":"git+https://github.com/Anakin-Inc/anakin-mcp.git","weeklyDownloads":366}],"repo":{"found":true,"owner":"Anakin-Inc","repo":"anakin-mcp","archived":false,"pushedAt":"2026-09-16T12:51:38Z","stars":3,"forks":2,"openIssues":6,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/87242662?v=4","ownerCreatedAt":"2021-07-10T18:02:05Z","license":"Apache-2.0"},"icon":{"url":"https://anakin.io/favicon.png","source":"site","width":256,"height":256},"presence":{"stars":3,"forks":2,"downloadsWeek":366,"license":"Apache-2.0","lastPushAt":"2026-09-16T12:51:38.000Z","score":37}}}},"grade_history":[],"reviews":[]}