Atlas / MCP servers / tianhaoz95 / feedback-kit-skills

feedback-kit-skillsBLOCK

mcp/tianhaoz95/feedback-kit

Turn in-app user feedback into agent-ready coding prompts.

Verdict
BLOCK
Grade
F
Trust score
35 /100
Exposed tools
13 11r · 2w · 0d
Transport
stdio
License
NOASSERTION
Stars
1
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

FeedbackKit

Read from source at commit afe462e3344eOBSERVED · 2026-10-14
Advertisement
02

Connect

Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.

claude-code
claude mcp add web --env FEEDBACKKIT_ANON_KEY=${FEEDBACKKIT_ANON_KEY} --env FEEDBACKKIT_RELEASE_TOKEN=${FEEDBACKKIT_RELEASE_TOKEN} --env FEEDBACKKIT_TOKEN=${FEEDBACKKIT_TOKEN} --env GITHUB_WEBHOOK_SECRET=${GITHUB_WEBHOOK_SECRET} -- npx -y [email protected]
claude-desktop
{
  "mcpServers": {
    "web": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "FEEDBACKKIT_ANON_KEY": "${FEEDBACKKIT_ANON_KEY}",
        "FEEDBACKKIT_RELEASE_TOKEN": "${FEEDBACKKIT_RELEASE_TOKEN}",
        "FEEDBACKKIT_TOKEN": "${FEEDBACKKIT_TOKEN}",
        "GITHUB_WEBHOOK_SECRET": "${GITHUB_WEBHOOK_SECRET}"
      }
    }
  }
}
03

Exposed tools (13)

11 read · 2 write · 0 destructive.

ToolRiskDescription
ask_reporterread
attach_after_screenshotread
attach_previewread
claim_feedbackread
get_docsread
get_feedbackread
get_promptread
link_fixread
list_feedbackread
list_projectsread
list_releasesread
post_updatewrite
update_feedback_statuswrite
04

Trust audit

BLOCKgrade F · trust 35/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryWARN
L1Static analysis of the codeWARN
L2Instruction surface (what it tells the agent)FAIL
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (6 observation(s))
Network
declared (11 observation(s))
Shell
declared (5 observation(s))
Dependencies
not all pinned
Secrets in source
found

Findings (25)

CRITICALPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
skills/setup/setup-agent-runner/SKILL.md:104
Install the Claude GitHub App on the repo (https://github.com/apps/claude). claude-code-action trades the job's `id-token: write` for a short-lived token from that app's installation, and uses it for
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
CRITICALPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
skills/setup/setup-agent-runner/SKILL.md:132
3. Optional but recommended — the FeedbackKit MCP tools, so the agent claims the report, can ask the reporter, and attaches a screenshot or short video of the fix (the loop works without them, through
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine
MEDIUMInventory / provenance · inv.binary · CWE-1104
android/gradle/wrapper/gradle-wrapper.jar
gradle-wrapper.jar
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMInventory / provenance · inv.binary · CWE-1104
desktop/tauri-demo/src-tauri/icons/icon.icns
icon.icns
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
cli/src/commands/release.ts:78
console.log(`Project: ${project.name} (release token)`);
MEDIUMInformation disclosure · disclose.log_secret · CWE-209, CWE-532
cli/src/commands/whoami.ts:10
console.log(`Access token "${token.name}" for ${token.project_name ?? token.project_id} [${token.scopes.join(" ")}]${limit}${expiry}`);
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
DeveloperApp/Sources/Services/SupabasePortalClient.swift:10
public static let defaultLocalUrl = "http://127.0.0.1:54321"
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
DeveloperApp/Sources/Views/Auth/LoginView.swift:321
Text("In this app's Server Settings, enter your Supabase Project URL (`https://<project-ref>.supabase.co` or `http://127.0.0.1:54321`), NOT the Cloudflare static site URL.")
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
DeveloperApp/Sources/Views/Auth/ServerConfigSheet.swift:54
Text("http://127.0.0.1:54321")
MEDIUMHard-coded secrets · secret.db_uri · CWE-798, CWE-321
.devcontainer/README.md:45
- DB URL: `postgresql://postgres:postgres@localhost:54322/postgres`
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
desktop/demo-ui/src/index.ts:38
apiKey: "com.feedbackkit.demo.apiKey",
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
supabase/functions/_shared/screenshotToken.test.ts:5
const secret = "test-secret-key-12345";
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
supabase/functions/_shared/screenshotToken.test.ts:15
const secret = "super-secret-service-role-key";
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
web/src/lib/accessTokens.ts:22
secret: "FEEDBACKKIT_RELEASE_TOKEN",
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
web/src/lib/accessTokens.ts:29
secret: "FEEDBACKKIT_AGENT_TOKEN",
LOWInventory / provenance · inv.binary · CWE-1104
react-native/example/android/app/debug.keystore
debug.keystore
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
LOWInventory / provenance · inv.binary · CWE-1104
react-native/example/android/gradle/wrapper/gradle-wrapper.jar
gradle-wrapper.jar
Why it matters. a compiled or binary member cannot be reviewed from source
Fix. ship source, or explain the binary in the README
LOWInventory / provenance · inv.hidden_file · CWE-1104
flutter/feedbackkit_flutter/.metadata
.metadata
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
react-native/.watchmanconfig
.watchmanconfig
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
react-native/.yarnrc.yml
.yarnrc.yml
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
react-native/example/.watchmanconfig
.watchmanconfig
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
react-native/example/ios/.xcode.env
.xcode.env
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.symlink · CWE-1104
AGENTS.md
AGENTS.md
Why it matters. link not followed
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
desktop/electron-demo/vite.config.ts:12
"feedbackkit-web": here("../../web-sdk/src/index.ts"),
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
desktop/tauri-demo/e2e/run-linux.sh:12
cd "$(dirname "$0")/../../.."

Gates applied: critical_finding, no_behavioural_pass, undeclared_transfer.

Audited 2026-10-14 · audit v0.4.1 · source sha afe462e3344efull audit observations/trust-audit/mcp-server/tianhaoz95__feedback-kit.json · Report an issue / request a re-scan
05

Audit history

Every audit this server has had. A grade with a past is a grade somebody is still checking.

DateSourceVerdictGradeScoreChange
2026-10-14afe462e3344eBLOCKF35first audit
06

Questions

What is the feedback-kit-skills MCP server?

Turn in-app user feedback into agent-ready coding prompts.

What tools does feedback-kit-skills expose?

13 in total: 11 read-only, 2 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.

Is feedback-kit-skills safe to connect to an agent?

No — not without reading the findings first. The audit graded it F (35/100) and found 2 critical or high issues in the source. Each one is listed on this page with the file and line it is on.

What credentials does feedback-kit-skills need?

It reads FEEDBACKKIT_ANON_KEY, FEEDBACKKIT_RELEASE_TOKEN, FEEDBACKKIT_TOKEN, GITHUB_WEBHOOK_SECRET, MAINTENANCE_SECRET, NEXT_PUBLIC_FEEDBACKKIT_KEY, SUPABASE_SERVICE_ROLE_KEY and VITE_FEEDBACKKIT_PROJECT_KEY from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.

How does feedback-kit-skills run?

It speaks stdio, so it runs as a local process your client starts. It is published on npm as web at 1.0.55.

How current is this page?

The grade is for one exact copy of the source (afe462e3344e), read on 2026-10-14. The repository is watched and re-audited when it changes.

Advertisement