Backlinks MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BACKLINK_MCP_DATA | No | The folder where the server saves all data. Defaults to ~/.backlink-mcp. | ~/.backlink-mcp |
| BACKLINK_MCP_TOKEN | No | The secret token used for HTTP mode. This is the password in the claude.ai connector URL. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| scan_siteB | Crawl a live website (respects robots.txt, reads sitemap.xml) and return a business profile (name, contact, address, keywords, social profiles), per-page SEO data, broken links and link stats. Results are cached for the other tools. |
| scan_codebaseA | Scan a local website project (React/Vite, Next.js, Django, plain HTML, etc.): detect framework, routes/pages, meta tags, sitemap/robots, structured data, contact details and external links. Use when the site isn't live yet or to find what to fix in code. |
| seo_link_auditA | Audit the cached scan_site result for problems that waste or block link equity: missing titles/ descriptions/canonicals, noindex, thin pages, missing schema/OG, broken links, orphan pages. Run scan_site first. |
| internal_link_suggestionsB | Suggest internal links (source page -> target page, anchor text) for weakly-linked pages, based on keyword overlap from the cached scan. Internal linking passes backlink equity to deeper pages. |
| save_projectB | Save (or update) a site you're working on - your own or a client's - so every other tool knows its niche, location, country, keywords and competitors. Only the fields you pass are changed. country: name or code ("India", "IN", "UK", "United States"...). |
| list_projectsB | List every site you've scanned or saved, with niche, location, country and tracker progress. |
| find_opportunitiesA | Return legit backlink opportunities for ANY business in ANY country: matching citation/directory/profile sites (filtered by niche and country) plus ready-to-run web-search footprint queries (roundups, local lists, guest posts, resource pages, podcasts, partners, competitor mentions). Run the queries with web search. Pass site= to use a saved project's niche/location/country/keywords/competitors (anything you pass wins). niche examples: software, saas, digital marketing, manufacturing, restaurant, salon, gym, hotel, dental clinic, law firm, real estate, plumber, interior design, school, online store, wedding photographer, charity. country: name or code (India, US, UK, UAE, Australia, Germany...). |
| add_custom_directoryA | Add your own directory/citation site so find_opportunities includes it from now on (saved to ~/.backlink-mcp/custom.json, survives updates). tags = niches it suits, e.g. ["legal", "local"] (see NICHE_TAGS in data.py); region = "global", a country (name or code) or a region (EU, GCC, ANZ, NA, SEA). location = optional city/area; if set, it only shows for projects in that location (e.g. a city chamber). |
| add_custom_footprintA | Add your own search footprint (saved to custom.json). Use {kw} for keyword, {loc} for city/area and {country} for the country name, e.g. group "local", query '{loc} {kw} association members'. |
| qualify_prospectA | Fetch a prospect page and score it 0-100. Detects guest-post pages, roundup/"top N companies" lists (ask to be included), resource pages and directories; checks noindex, outbound spam links and sponsored-only policies; follows the site's contact/about/write-for-us pages to find real contact emails; and says which outreach template to use. topic_keywords (e.g. ["dentist", "dental"]) raises the score for relevant pages; if omitted, the saved project's keywords for my_domain are used. |
| build_submission_kitB | Build one consistent Name/Address/Phone + descriptions kit for directory/citation sign-ups. Merges the cached scan profile with fields you pass (yours win). Placeholder values (XXXX, 20XX, "your address"...) are rejected, never saved. Returns needs_review so you know what to fix before submitting. Saves .md + .json; generate_schema reuses it. |
| generate_schemaA | Generate ready-to-paste LocalBusiness JSON-LD (name, address, phone, email, logo, sameAs, foundingDate) from the saved submission kit (or the last scan). Paste the returned script tag into your site's (e.g. index.html). business_type: ProfessionalService, LocalBusiness, Organization, Restaurant, BeautySalon, Hotel, MedicalClinic, Store... Fields still missing are listed, never invented. |
| draft_outreachA | Draft an outreach email to edit and send yourself (never sends anything). template: guest_post | list_inclusion (for "top N companies" roundups) | resource_page | broken_link | unlinked_mention | partner | testimonial | local_press. topic: a noun phrase, e.g. "how to choose a family dentist" or "local bakery wins state award". proof: real facts only, e.g. ["Served 200+ local families since 2019", "4.9 stars from 120 Google reviews"]. hook: ONE specific sentence about their page so it doesn't read as a mass email. Returns warnings when something required is missing - fix them before sending. |
| verify_backlinkA | Check whether a page links to your domain: anchor text, rel (nofollow/sponsored/ugc), target URL, and whether the source page is indexable. Updates any matching tracker entry. |
| tracker_addB | Add a backlink opportunity to the tracker. kind: citation | directory | guest_post | resource_page | broken_link | mention | partner | press | profile. status: todo | submitted | pitched | live | rejected. |
| tracker_updateC | Update a tracker entry's status/notes/contact by id. |
| tracker_listA | List tracked opportunities, optionally filtered by your site and/or status, with a summary. |
| recheck_live_linksB | Re-verify every 'live' tracker entry for a site and flag links that disappeared or became nofollow. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 18 tools
Each tool has a distinct role across scanning, prospecting, outreach, citations, and tracking. Potentially overlapping pairs are clearly differentiated: scan_site handles live sites while scan_codebase handles local projects, and verify_backlink checks one page while recheck_live_links bulk-checks tracked live links.
All names use readable snake_case, and most follow a consistent verb_noun pattern. The tracker_add/tracker_update/tracker_list resource-first convention and noun-style names such as seo_link_audit and internal_link_suggestions introduce minor inconsistencies.
Eighteen tools is somewhat above the ideal compact range, but the server covers a broad end-to-end workflow and the tools generally earn their place. It feels comprehensive rather than padded, though the additional technical SEO and schema utilities expand the surface beyond core backlink management.
The workflow is well covered from site profiling and opportunity discovery through qualification, outreach drafting, submission assets, tracking, and link verification. Minor lifecycle gaps remain: tracker entries and saved projects cannot be deleted, and custom directories and footprints have add-only management without listing, editing, or removal tools.