Node.js/TypeScript MCP server for Atlassian Confluence. Provides tools enabling AI systems (LLMs) to list/get spaces & pages (content
TechFabric is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Write TechFabric posts from your agent. Walk through posts, compare studies, check readiness.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http techfabric-mcp https://www.techfabric.com/mcp
# 2 — ask your agent for something these tools do
# search, get_page, list_posts and 22 more
TechFabric costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http techfabric-mcp https://www.techfabric.com/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
25 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
Search TechFabric's published site: blog posts, service and solution pages, case studies, city pages and events. Returns each match's title, URL, summary, date, author and type, best first. Read a result in full with get_page. Drafts are private: list_drafts lists a signed-in engineer's drafts; a TechFabric engineer connects with Microsoft (the client's Connect or Authenticate button) to list and
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query | string | yes | What to look for, in plain words |
| type | string | no | Only this kind of page: post, service, solution, case_study, city, event or page |
| limit | integer | no | How many results (default 10) |
One published page of www.techfabric.com as clean Markdown, with its title, search title (metaTitle), description, date, updated, author, tags, FAQs as question and answer pairs, and canonical URL. Takes a URL, a path or a post's slug. Only published, indexable pages. Drafts are private: list_drafts lists a signed-in engineer's drafts; a TechFabric engineer connects with Microsoft (the client's Co
| Parameter | Type | Required | Notes |
|---|---|---|---|
| url_or_slug | string | yes | A techfabric.com URL, a path such as /services/databricks, or a post's slug |
TechFabric's published blog posts, newest first, optionally only those with a tag, by an author, or dated on or after a day. Drafts are private: list_drafts lists a signed-in engineer's drafts; a TechFabric engineer connects with Microsoft (the client's Connect or Authenticate button) to list and write them.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| tag | string | no | Only posts with this tag (its name or slug, e.g. Databricks) |
| author | string | no | Only posts by this author (name or slug, e.g. Preetham Reddy) |
| since | string | no | Only posts dated on or after this day, YYYY-MM-DD |
| limit | integer | no | How many posts (default 20) |
Every service, solution, Databricks, AI, cloud, software, accelerator and product page on techfabric.com: its name, URL, kind and summary, exactly as the live page states them. Read one in full with get_page.
No parameter schema on file.
Requires a TechFabric engineer's Microsoft sign-in (scope blog.write). Today's topic for a daily post, claimed for you for 24 hours (asking again returns the same one): the topic, angle, target search, sources, internal links, and the brief_id to pass to submit_draft. Status none, with the reason, when there is nothing today: stop there. No model is called. Ask the engineer for first-hand detail;
No parameter schema on file.
Requires a TechFabric engineer's Microsoft sign-in (scope blog.write). The site's rule-based checks (slop, claims, known errors, voice, opening, title, description, FAQ, diagram, images, links, a case study's rules) on a post's Markdown, frontmatter included: about a second, free, filing nothing. Iterate with this, never with check_draft: rewrite each passage in rewrite_plan as its fix says and li
| Parameter | Type | Required | Notes |
|---|---|---|---|
| markdown | string | no | The whole post: frontmatter (title, description at least) and body |
| id | string | no | A draft of yours (the id submit_draft returned). Alone: lints its saved text. With markdown: lints that edit as this draft (its kind, slug, images and sources) before you save it |
| rubric | boolean | no | Also return judge_rubric while checks still fail (it comes anyway once they pass) |
| images | array | no | The images the post refers to by name (names only; no data needed) |
| kind | string | no | What the draft is: "post" (the default, a blog post) or "case-study" (content/case-studies, at /case-studies/<slug>). A case study's frontmatter is title, description, sector, stack, track (ai, migrat |
| sources | string | no | The engineer's own words the draft's claims come from, as text. For a post: what the engineer told you about their own work (what they built, measured, saw and decided, and any result, client or numbe |
| slug | string | no | The draft's slug, when it has one already (get_status draft.slug); otherwise it comes from the title |
Requires a TechFabric engineer's Microsoft sign-in (scope blog.write). The final verification publish_draft needs. With id: the full checks on your saved draft (the judge, the slop classifier and the fact-check), about a minute; call it after lint_draft passes, never to iterate. Each call waits up to 25 seconds and then reports progress: call it again for the answer (nothing runs twice; a client w
| Parameter | Type | Required | Notes |
|---|---|---|---|
| markdown | string | no | The whole post: frontmatter (title, description at least) and body. With id: optional, and must be the saved text |
| id | string | no | A draft of yours (the idea id from submit_draft): checks its saved text, the final verification publish_draft needs |
| images | array | no | — |
| kind | string | no | What the draft is: "post" (the default, a blog post) or "case-study" (content/case-studies, at /case-studies/<slug>). A case study's frontmatter is title, description, sector, stack, track (ai, migrat |
| sources | string | no | The engineer's own words the draft's claims come from, as text. For a post: what the engineer told you about their own work (what they built, measured, saw and decided, and any result, client or numbe |
| client_confirmed | boolean | no | Only when the engineer tells you they have the client's confirmation to name the client this draft names (its client:, or a client in its text the register doesn't approve). Recorded under the enginee |
| first_hand | array | no | First-hand claims only the engineer can source, which the fact-check flagged first_hand (first_hand_to_confirm): each the sentence exactly as quoted, with what it rests on. Sending it asks the enginee |
| first_hand_all | boolean | no | Confirm all listed: true asks the engineer to confirm, in one go, every first-hand claim the last check of this text listed (first_hand_to_confirm), instead of listing them in first_hand. The list is |
| first_hand_confirmation | string | no | Only after asking the engineer and hearing yes: the confirmation an earlier answer gave for exactly this first_hand (first_hand.confirmation). It works once, for ten minutes, for those claims in that |
| confirm_via | string | no | With first_hand or first_hand_all: how the engineer is asked. Default: a form in their client where it can show one. "token": the question and a one-time confirmation instead, for a UI that asks them |
| wait_seconds | integer | no | Without the tasks extension: how long to wait for the result before answering with progress (default and most 25; a larger value, accepted for older agents, waits 25) |
Requires a TechFabric engineer's Microsoft sign-in (scope blog.write). File a post (or, with kind "case-study", a case study) under the engineer's byline, exactly as written: the site builds its preview and emails it to them. Send the whole Markdown with frontmatter (title and description at least), the engineer's own words as sources, and brief_id when it comes from get_brief. Lint it clean first
| Parameter | Type | Required | Notes |
|---|---|---|---|
| title | string | yes | The post's working title |
| markdown | string | yes | The whole post, with its frontmatter (title, description at least): it becomes the draft as sent |
| images | array | no | — |
| kind | string | no | What the draft is: "post" (the default, a blog post) or "case-study" (content/case-studies, at /case-studies/<slug>). A case study's frontmatter is title, description, sector, stack, track (ai, migrat |
| sources | string | no | The engineer's own words the draft's claims come from, as text. For a post: what the engineer told you about their own work (what they built, measured, saw and decided, and any result, client or numbe |
| client_confirmed | boolean | no | Only when the engineer tells you they have the client's confirmation to name the client this draft names (its client:, or a client in its text the register doesn't approve). Recorded under the enginee |
| first_hand | array | no | First-hand claims only the engineer can source, which the fact-check flagged first_hand (first_hand_to_confirm): each the sentence exactly as quoted, with what it rests on. Sending it asks the enginee |
| brief_id | string | no | The brief_id get_brief returned, when the post is from today's brief: it marks the brief done |
Requires a TechFabric engineer's Microsoft sign-in (scope blog.write). Save a new version of your draft (state drafted): the whole Markdown, and base_hash, the hash of the version you edited (draft.base_hash from get_status, or your last update_draft's text_hash). Answers in a second or two; the preview rebuilds in the background. It runs no checks: lint_draft the edit first, then check_draft with
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | The idea id |
| markdown | string | yes | The whole post, with its frontmatter |
| base_hash | string | no | The hash of the version your edit started from: draft.base_hash from the get_status you edited from, or the text_hash your last update_draft returned. It stays good after that save is committed |
| app_instance | string | no | The draft app only, never an agent: the view whose own unsaved edits this save is |
| base_sha | string | no | Instead of base_hash: draft.base_sha from get_status, the commit your edit started from |
| kind | string | no | Optional: the draft's kind, which is fixed when it is submitted. Sent, it must match (get_status says it). |
| sources | string | no | New sources, replacing the ones sent before: the engineer's own words, which the fact-check reads a post's claims against, or a case study's numbers are checked against. |
| client_confirmed | boolean | no | Only when the engineer tells you they have the client's confirmation to name the client this draft names (its client:, or a client in its text the register doesn't approve). Recorded under the enginee |
| first_hand | array | no | First-hand claims only the engineer can source, which the fact-check flagged first_hand (first_hand_to_confirm): each the sentence exactly as quoted, with what it rests on. Sending it asks the enginee |
Requires a TechFabric engineer's Microsoft sign-in (scope blog.write). Lists your drafts (blog posts, case studies and revisions of live posts), newest first: each one's id, title, kind, state (writing, question_for_you, drafted, checks_failing, ready_to_publish, published and the rest), created and updated dates, preview link and next_action. Filter by state, kind and creation date (created_after
| Parameter | Type | Required | Notes |
|---|---|---|---|
| state | string | no | Only drafts in this state: writing, preview_building, question_for_you, drafted, checking, checks_failing, ready_to_publish, publishing, published, stuck, closed; or open, every one not yet published |
| kind | string | no | Only this kind: post, case-study, or revision (of a live post). Leave it out for all |
| created_after | string | no | Only drafts created at or after this: a date (YYYY-MM-DD, midnight UTC) or an ISO 8601 time with its offset. For yesterday: created_after yesterday's date and created_before today's (the answer's toda |
| created_before | string | no | Only drafts created before this (not at it): a date (YYYY-MM-DD, midnight UTC) or an ISO 8601 time |
| all | boolean | no | The blog's editor only: everyone's drafts, not just yours. Refused for anyone else |
| stale | boolean | no | The site owner only, his owner queue: everyone's drafts with nothing from their author for more than two days (stuck, a question for them, held, drafted or failing checks; never an agent's explainer), |
| limit | integer | no | How many to return, newest first (default 20) |
| cursor | string | no | The next_cursor from the previous page, with the same filters |
Requires a TechFabric engineer's Microsoft sign-in (scope blog.write). Where one of your drafts stands (by its id; list_drafts lists them), with next_action: the single next step and the call to make. Also its saved Markdown and base_hash (for update_draft; read them again before each edit, as the engineer may have saved one in the draft app), what is failing, the last check, the preview link and,
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | The idea id |
Requires a TechFabric engineer's Microsoft sign-in (scope blog.write). A read: whether one of your drafts may be published now, and if so the question to ask the engineer ("Publish '<title>' now? (yes/no)") with a one-time confirmation for this exact saved text and its checks (used once). Only after they say yes, call publish_draft with the id and that confirmation, and the same override. If it ca
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | The idea id of your own draft |
| override | array | no | Publish anyway: the failing check ids the engineer chooses to publish past (only wording and style checks). Send the same list to publish_draft with the confirmation |
Requires a TechFabric engineer's Microsoft sign-in (scope blog.write). Publish one of your drafts to techfabric.com, only after the engineer confirms, once check_draft with the id has passed on exactly the saved text. The first call publishes nothing: it asks the engineer by a form in their client, or returns a one-time confirmation that you send back on a second call only after their yes. Never i
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | The idea id of your own draft |
| confirmation | string | no | Only on the second call: the confirmation the first call returned, sent back after the engineer said yes |
| override | array | no | Publish anyway: the failing check ids (as check_draft reports them, such as gate:buyer) the engineer chooses to publish past. Only wording and style checks; the hard set (the page working, claims, our |
| confirm_via | string | no | How the engineer is asked. Default: elicitation where the client supports it. "token": the first call returns a one-time confirmation instead, for a UI (an MCP App's Publish button) that asks the engi |
Requires a TechFabric engineer's Microsoft sign-in (scope blog.write). A read: one of your drafts as techfabric.com renders it, with its last checks (each marked as one the engineer may publish past or one that must pass) and whether Publish may run, for the draft app in a host that shows MCP Apps. In any host its text starts with the preview link: show it to the engineer.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | The idea id |
| instance | string | no | The draft app only: its view's own id, with editing |
| editing | boolean | no | The draft app only, never an agent: true while the engineer has unsaved edits in its Edit tab (takes or renews the app's edit hold), false when they save, discard or leave it (lets go). It changes no |
Requires a TechFabric engineer's Microsoft sign-in (scope blog.write). Open a revision of a post that is live on techfabric.com, by its URL or slug: only its author or the blog's editor. The revision's draft starts as the live text, with its own preview; then the same loop: get_status for its markdown, lint_draft with the id and your edit, update_draft, check_draft with the id, publish_draft. Publ
| Parameter | Type | Required | Notes |
|---|---|---|---|
| post | string | yes | The live post to change: its URL (https://www.techfabric.com/blog/<slug>) or its slug |
Requires a TechFabric engineer's Microsoft sign-in (scope blog.write). Start here, before writing anything: the interview for a post, a case study or an explainer, about seven questions tailored to the topic and to today's brief. Send suggested (your answers from the repository) so the engineer only confirms or corrects. A client that answers forms shows them as one form; otherwise ask them in cha
| Parameter | Type | Required | Notes |
|---|---|---|---|
| kind | string | no | What the engineer is writing: "post" (the default), "case-study", or "explainer" (a post on news or a feature; submit it as kind "post"). |
| topic | string | no | What it is about, in the engineer's words. Leave it out with brief: true. |
| brief | boolean | no | Tailor the questions to the brief the engineer holds today (get_brief claims one; this only reads it). |
| suggested | object | no | Your suggested answer to each question, by its id, from the repository and the engineer's notes: shown to them to confirm or correct, never sent as their words. |
| answers | object | no | The engineer's own answers, by question id, word for word, once they've given them in chat: returned as sources for submit_draft. |
| form | boolean | no | false: never show the form; return the questions to ask in chat. |
Requires a TechFabric engineer's Microsoft sign-in (scope blog.write). A read, about a millisecond, free: an outline (title options, the opening's two sentences, four to six sections with a line each, the diagram, the FAQ questions; a case study's four sections) against the title, opening-pattern, heading and FAQ rules, before any prose. Fix what it finds and call again until ready; then show the
| Parameter | Type | Required | Notes |
|---|---|---|---|
| kind | string | no | — |
| titles | array | yes | Two or three title options, each one clause naming the subject. |
| meta_title | string | no | A search title of 60 characters or fewer, only when a title runs longer. |
| opening | string | no | The opening's first two sentences: the reader's problem in their words with one concrete detail, then who we are and our first-hand angle. Not for a case study. |
| sections | array | yes | Four to six for a post; Challenge, Strategy, Solution and Results for a case study. The FAQ isn't one of them. |
| diagram | string | no | What the diagram draws, step by step, and its point. Not for a case study. |
| faqs | array | no | Three or more questions a reader would search for. Not for a case study. |
| reader | string | no | Who the post is for. |
| unattended | boolean | no | true in a scheduled run with nobody to approve the outline: a passing outline goes straight to drafting. |
Requires a TechFabric engineer's Microsoft sign-in (scope blog.write). A read: what your agent needs to draft a LinkedIn post about a published techfabric.com post, any post on the site. Its key points and first-hand sentences, its link with the LinkedIn campaign, the engineer's voice notes, the social rules and LinkedIn's lengths. No model is called and nothing is posted: draft the post from it,
| Parameter | Type | Required | Notes |
|---|---|---|---|
| post | string | yes | A published post on techfabric.com: its URL (https://www.techfabric.com/blog/<slug>) or its slug |
Requires a TechFabric engineer's Microsoft sign-in (scope blog.write). A read: the site's writing rules and the social rules on a LinkedIn post's text (the AI tells, the slop, claims, announcement openers, engagement bait, hashtags), its length, what shows before "see more", and, with post, whether it links the post. Rewrite each finding and lint again until ready. Posts nothing.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| text | string | yes | The LinkedIn post's text, as the engineer would post it (at most 10000 characters) |
| post | string | no | The published post it shares (its URL or slug): the text is checked for its link |
Requires a TechFabric engineer's Microsoft sign-in (scope blog.write). A read: what your agent needs to draft a Reddit post or thread answer in your own voice, from a published techfabric.com post or your own notes. The subreddit's rules, the frame (a plain title; first person; the problem, what you tried, what worked, your numbers), the disclosure line, the optional link last, a checklist and the
| Parameter | Type | Required | Notes |
|---|---|---|---|
| subreddit | string | yes | The subreddit the post or answer is for |
| post | string | no | A published post on techfabric.com the Reddit post draws on: its URL or its slug. Optional |
| notes | string | no | The engineer's own notes about the problem, what they tried, what worked and their numbers (at most 8000 characters). Optional; send post, notes or both |
| thread | string | no | The Reddit thread being answered, if this is an answer: its URL. Optional |
| draft | object | no | The draft to check: the result then carries lint. Send it again after each rewrite until lint.ready is true |
Requires a TechFabric engineer's Microsoft sign-in (scope blog.write). A read: how one of your own published posts is doing in Google (the blog's editor: any post). Search Console's clicks, impressions, CTR and average position for the last 28 days against the 28 before, the searches it shows for, whether Google has indexed it, and what to improve, each with the numbers behind it. Without post: al
| Parameter | Type | Required | Notes |
|---|---|---|---|
| post | string | no | One of your published posts: its URL (https://www.techfabric.com/blog/<slug>) or its slug. Leave it out for all your posts, with their last 28 days. |
Requires a TechFabric engineer's Microsoft sign-in (scope blog.write). A read: the pages of ours a draft or post should link (posts, services, solutions and case studies sharing its distinctive words), each with why and where (the section, the paragraph and a phrase for the anchor), never one it already links; and the open searches that match your own work: searches people make that competitors ra
| Parameter | Type | Required | Notes |
|---|---|---|---|
| markdown | string | no | The post's text, frontmatter included. With id: an edit of that draft, read instead of its saved text |
| id | string | no | One of your drafts (the id submit_draft returned): its saved text |
| post | string | no | One of your published posts: its URL (https://www.techfabric.com/blog/<slug>) or its slug |
Requires a TechFabric engineer's Microsoft sign-in (scope blog.write). A read: every ```mermaid block in a post (or one mermaid source), as the site will treat it. For each: its lines in the post, its caption, whether the site's mermaid parses it (with the error and its line in the post when it doesn't), and the diagram rules' findings (a caption that states the point; no fact in a label the secti
| Parameter | Type | Required | Notes |
|---|---|---|---|
| markdown | string | yes | The whole post, frontmatter included, or one mermaid source. At most 200,000 characters |
Requires a TechFabric engineer's Microsoft sign-in (scope blog.write), and only the site owner's is accepted (the Fabric Agents brief automation runs as him). A read: the briefs proposed and not yet taken, the competitor-gap and backlog searches no post or idea covers yet, the 30 most recent posts and the ideas in flight. What the brief automation reads before it proposes. Deterministic, no model;
No parameter schema on file.
Requires a TechFabric engineer's Microsoft sign-in (scope blog.write), and only the site owner's is accepted (the Fabric Agents brief automation runs as him). Adds one brief to the pool get_brief offers engineers, first and matched to their work: topic, why (the evidence), angle, sources, target_query, for_author. Refused with the reason, nothing stored, when a live post or an idea in flight cover
| Parameter | Type | Required | Notes |
|---|---|---|---|
| topic | string | yes | The post's subject in a few words (8 to 140 characters) |
| why | string | yes | The evidence: the TechFabric work it comes from (a repository, a project, a published post), or the search data (query, monthly volume, who ranks). Never a guess |
| angle | string | yes | What the post argues or shows, and for which reader |
| sources | array | no | — |
| target_query | string | no | The search the post should answer, when there is one |
| for_author | string | no | An engineer from the author registry, when the work is theirs; leave out to offer it to whoever's work fits |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install TechFabric or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | moderate | capability blast radius (moderate) — client exposure if the model is manipulated | −3 |
| coverage-honesty | manifest | inspection depth (manifest) — how much of the target the scan could see | −4 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
The scan read each tool’s name, description, input schema and annotations exactly as the server listed them the last time it answered us; no code was reviewed. We ask the server again about once a month, and a list that changed is graded again.
The implementation source was not read — this reflects the declared tool metadata only.
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. moderate is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| search | no tags | |
| get_page | untrusted-input | untrusted-input: keyword "get_page" |
| list_posts | no tags | |
| get_services | no tags | |
| get_brief | state-write | state-write: declares readOnlyHint: false |
| lint_draft | no tags | |
| check_draft | state-write | state-write: declares readOnlyHint: false |
| submit_draft | state-write | state-write: declares readOnlyHint: false |
| update_draft | state-write | state-write: declares readOnlyHint: false, destructiveHint: true |
| list_drafts | no tags | |
| get_status | state-write | state-write: declares readOnlyHint: false |
| review_before_publishing | no tags | |
| publish_draft | external-sink | external-sink: declares readOnlyHint: false, destructiveHint: true, openWorldHint: true |
| preview_draft | no tags | |
| revise_post | state-write | state-write: declares readOnlyHint: false |
| start_post | no tags | |
| check_outline | no tags | |
| social_post_kit | no tags | |
| lint_social | no tags | |
| reddit_post_kit | no tags | |
| post_performance | untrusted-input | untrusted-input: declares openWorldHint: true (interacts with entities outside the server) |
| suggest_links_and_topics | no tags | |
| preview_diagram | no tags | |
| get_brief_pool | no tags | |
| propose_brief | state-write | state-write: declares readOnlyHint: false |
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 1.6.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish TechFabric can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.