github analyzed fb5ea98

3DUNLMTD/stylemcp

github

Brand rules for AI outputs. Validate and rewrite text to match your brand voice.

maintainer
3DUNLMTD
licence
first seen
2026-06-03
last seen
2026-06-03
releases · 30d
0
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 9 tools
transport stdio · http verified reported listed in the official MCP registry counts 9 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • get_copy_patterns
  • get_cta_rules
  • get_tokens
  • get_voice_rules
  • learn_voice
  • list_packs
  • rewrite_to_style
  • suggest_ctas
  • validate_text
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit fb5ea98 · analyzer v33 · 3w ago

skills & prompt files 26

danger signals1

code evidence vHEAD · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 47

filesystem 10

  • fs DistinctlyDeveloped-stylemcp-fb5ea98/action/src/index.ts :4 import { readFile } from 'fs/promises';
  • fs DistinctlyDeveloped-stylemcp-fb5ea98/src/cli/index.ts :5 import { readFile } from 'fs/promises';
  • fs (weak) DistinctlyDeveloped-stylemcp-fb5ea98/src/docs/placeholder-urls.test.ts :2 import { readFileSync } from 'fs';
  • fs (weak) DistinctlyDeveloped-stylemcp-fb5ea98/src/landing/auth-integration.test.ts :2 import { readFileSync } from 'fs';
  • fs (weak) DistinctlyDeveloped-stylemcp-fb5ea98/src/landing/dashboard-config.test.ts :2 import { readFileSync } from 'fs';
  • fs (weak) DistinctlyDeveloped-stylemcp-fb5ea98/src/landing/demo-hint.test.ts :2 import { readFileSync } from 'fs';
  • fs (weak) DistinctlyDeveloped-stylemcp-fb5ea98/src/landing/no-duplicate-html-trees.test.ts :2 import { existsSync } from 'fs';
  • fs DistinctlyDeveloped-stylemcp-fb5ea98/src/learn/voice-analyzer.ts :1 import { writeFile, mkdir } from 'fs/promises';
  • fs DistinctlyDeveloped-stylemcp-fb5ea98/src/server/error-capture.ts :9 import { promises as fs } from 'fs';
  • fs DistinctlyDeveloped-stylemcp-fb5ea98/src/utils/pack-loader.ts :1 import { readFile, stat } from 'fs/promises';

network 7

  • net DistinctlyDeveloped-stylemcp-fb5ea98/extensions/chrome/background/service-worker.js :44 const response = await fetch(`${API_BASE}/validate`, {
  • net DistinctlyDeveloped-stylemcp-fb5ea98/extensions/chrome/content/content.js :135 const response = await fetch('https://stylemcp.com/api/validate', {
  • net DistinctlyDeveloped-stylemcp-fb5ea98/extensions/chrome/popup/popup.js :54 const response = await fetch(`${API_BASE}/packs`, {
  • net DistinctlyDeveloped-stylemcp-fb5ea98/src/learn/index.ts :144 response = await fetch('https://api.anthropic.com/v1/messages', {
  • net DistinctlyDeveloped-stylemcp-fb5ea98/src/rewriter/ai-rewriter.ts :145 response = await fetch('https://api.anthropic.com/v1/messages', {
  • net DistinctlyDeveloped-stylemcp-fb5ea98/src/server/error-capture.ts :363 await fetch(url, {
  • net (weak) DistinctlyDeveloped-stylemcp-fb5ea98/test-ai-validation.js :58 const response = await fetch(`${baseUrl}/api/ai-output/validate`, {

secrets 7

  • secrets DistinctlyDeveloped-stylemcp-fb5ea98/src/learn/index.ts :113 const effectiveApiKey = apiKey || process.env.ANTHROPIC_API_KEY;
  • secrets DistinctlyDeveloped-stylemcp-fb5ea98/src/rewriter/ai-rewriter.ts :129 const effectiveApiKey = apiKey || process.env.ANTHROPIC_API_KEY;
  • secrets DistinctlyDeveloped-stylemcp-fb5ea98/src/server/billing.ts :6 const SUPABASE_SERVICE_KEY = process.env.SUPABASE_SERVICE_KEY || '';
  • secrets DistinctlyDeveloped-stylemcp-fb5ea98/src/server/error-capture.ts :51 const TELEGRAM_BOT_TOKEN = process.env.TELEGRAM_BOT_TOKEN || '';
  • secrets DistinctlyDeveloped-stylemcp-fb5ea98/src/server/http.ts :84 const API_KEY = process.env.STYLEMCP_API_KEY || '';
  • secrets DistinctlyDeveloped-stylemcp-fb5ea98/src/server/middleware/auth.ts :17 const LEGACY_API_KEY = process.env.STYLEMCP_API_KEY || '';
  • secrets (weak) DistinctlyDeveloped-stylemcp-fb5ea98/test-ai-validation.js :62 'X-Api-Key': process.env.STYLEMCP_API_KEY || 'test-key'

tool registrations 9

  • validate_text DistinctlyDeveloped-stylemcp-fb5ea98/src/server/index.ts :73
  • rewrite_to_style DistinctlyDeveloped-stylemcp-fb5ea98/src/server/index.ts :96
  • get_voice_rules DistinctlyDeveloped-stylemcp-fb5ea98/src/server/index.ts :128
  • get_copy_patterns DistinctlyDeveloped-stylemcp-fb5ea98/src/server/index.ts :146
  • get_cta_rules DistinctlyDeveloped-stylemcp-fb5ea98/src/server/index.ts :164
  • get_tokens DistinctlyDeveloped-stylemcp-fb5ea98/src/server/index.ts :181
  • suggest_ctas DistinctlyDeveloped-stylemcp-fb5ea98/src/server/index.ts :199
  • list_packs DistinctlyDeveloped-stylemcp-fb5ea98/src/server/index.ts :217
  • learn_voice DistinctlyDeveloped-stylemcp-fb5ea98/src/server/index.ts :225

install hooks 1

  • prepublishOnly DistinctlyDeveloped-stylemcp-fb5ea98/package.json :21 npm run build

declared dependencies 23

  • @modelcontextprotocol/sdk@^1.0.0
  • @supabase/supabase-js@^2.91.1
  • chalk@^5.3.0
  • commander@^12.1.0
  • cors@^2.8.6
  • diff@^5.2.0
  • express@^5.2.1
  • js-yaml@^4.1.0
  • stripe@^14.25.0
  • zod@^3.23.8
  • helmet@^7.2.0
  • express-rate-limit@^7.5.0
show 11 more
  • @eslint/js@^9.39.2
  • @types/cors@^2.8.19
  • @types/diff@^5.2.1
  • @types/express@^5.0.6
  • @types/js-yaml@^4.0.9
  • @types/node@^20.14.0
  • eslint@^9.39.2
  • puppeteer@^24.36.1
  • typescript@^5.5.0
  • typescript-eslint@^8.54.0
  • vitest@^1.6.0

clipboard 1

  • navigator.clipboard DistinctlyDeveloped-stylemcp-fb5ea98/extensions/chrome/background/service-worker.js :105 navigator.clipboard.writeText(rewritten);