accessflow-mcp-server 2.2.2 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -78,24 +78,6 @@ Add the following configuration to your MCP client (e.g., VS Code Copilot Agent)
78
78
 
79
79
  - **`API_KEY`** (required): Your accessFlow API key for authentication
80
80
  - **`DOMAIN`** (required): The domain of your application being analyzed (e.g., `example.com` - without protocol)
81
- - **`ENVIRONMENT`** (optional): API environment URL (defaults to `https://accessflow.accessibe.com`)
82
-
83
- #### Environment Setup
84
-
85
- For local development, create a `.env` file in the project root:
86
-
87
- ```bash
88
- # Required: Your domain name (without protocol)
89
- DOMAIN=your-domain.com
90
-
91
- # Required: Your accessFlow API key
92
- API_KEY=your-api-key-here
93
-
94
- # Optional: Environment URL (defaults to production)
95
- ENVIRONMENT=https://accessflow.accessibe.com
96
- ```
97
-
98
- **Important**: Replace `your-domain.com` and `your-api-key-here` with your actual values before running the server.
99
81
 
100
82
  ### 3. Example Usage
101
83
 
@@ -30,7 +30,7 @@ async function startServer() {
30
30
  process.exit(0);
31
31
  });
32
32
  console.log('Initializing server...');
33
- // Start server with HTTP transport
33
+ // Start server with HTTP transport.
34
34
  await server.init();
35
35
  logger.info(`HTTP server is running at http://${transportConfig.host}:${port}/mcp`);
36
36
  console.log(`HTTP server is running at http://${transportConfig.host}:${port}/mcp`);
@@ -1 +1 @@
1
- {"version":3,"file":"http-server.js","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http-server.js","sourceRoot":"","sources":["../src/http-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { ApiRule } from '../types/remediation.js';
2
+ /**
3
+ * Finds a rule by its ID (handles various ID formats)
4
+ */
5
+ export declare function findRuleById(ruleId: string | null | undefined): ApiRule | null;
6
+ /**
7
+ * Gets all rules (useful for debugging or other purposes)
8
+ */
9
+ export declare function getAllRules(): ApiRule[];
10
+ //# sourceMappingURL=rulesService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rulesService.d.ts","sourceRoot":"","sources":["../../src/services/rulesService.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAmCvD;;GAEG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAChC,OAAO,GAAG,IAAI,CAchB;AA6BD;;GAEG;AACH,wBAAgB,WAAW,IAAI,OAAO,EAAE,CAEvC"}
@@ -0,0 +1,70 @@
1
+ import { readFileSync } from 'fs';
2
+ import { fileURLToPath } from 'url';
3
+ import { dirname, join } from 'path';
4
+ import { logger } from './loggerService.js';
5
+ const __filename = fileURLToPath(import.meta.url);
6
+ const __dirname = dirname(__filename);
7
+ let rulesCache = null;
8
+ /**
9
+ * Loads rules from the JSON file
10
+ */
11
+ function loadRules() {
12
+ if (rulesCache) {
13
+ return rulesCache;
14
+ }
15
+ try {
16
+ const rulesPath = join(__dirname, '../data/rules.json');
17
+ const rulesData = readFileSync(rulesPath, 'utf-8');
18
+ rulesCache = JSON.parse(rulesData);
19
+ return rulesCache;
20
+ }
21
+ catch (error) {
22
+ logger.error({
23
+ error: error instanceof Error ? error.message : 'Unknown error',
24
+ stack: error instanceof Error ? error.stack : undefined,
25
+ }, 'Failed to load rules from file');
26
+ // Return empty array as fallback
27
+ return [];
28
+ }
29
+ }
30
+ /**
31
+ * Finds a rule by its ID (handles various ID formats)
32
+ */
33
+ export function findRuleById(ruleId) {
34
+ if (!ruleId) {
35
+ return null;
36
+ }
37
+ const rules = loadRules();
38
+ const normalizedRuleId = normalizeRuleId(ruleId);
39
+ return (rules.find((rule) => {
40
+ const ruleIdStr = normalizeRuleId(rule._id);
41
+ return ruleIdStr === normalizedRuleId;
42
+ }) || null);
43
+ }
44
+ /**
45
+ * Normalizes rule ID from various formats to a string
46
+ */
47
+ function normalizeRuleId(id) {
48
+ if (!id) {
49
+ return null;
50
+ }
51
+ if (typeof id === 'string') {
52
+ return id;
53
+ }
54
+ if (typeof id === 'object') {
55
+ if ('$oid' in id) {
56
+ return id.$oid;
57
+ }
58
+ if ('toString' in id && typeof id.toString === 'function') {
59
+ return id.toString();
60
+ }
61
+ }
62
+ return null;
63
+ }
64
+ /**
65
+ * Gets all rules (useful for debugging or other purposes)
66
+ */
67
+ export function getAllRules() {
68
+ return loadRules();
69
+ }
70
+ //# sourceMappingURL=rulesService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rulesService.js","sourceRoot":"","sources":["../../src/services/rulesService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAErC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,IAAI,UAAU,GAAqB,IAAI,CAAC;AAExC;;GAEG;AACH,SAAS,SAAS;IAChB,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;QACxD,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACnD,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAc,CAAC;QAChD,OAAO,UAAU,CAAC;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CACV;YACE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;YAC/D,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;SACxD,EACD,gCAAgC,CACjC,CAAC;QAEF,iCAAiC;QACjC,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAiC;IAEjC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAC1B,MAAM,gBAAgB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAEjD,OAAO,CACL,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;QAClB,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5C,OAAO,SAAS,KAAK,gBAAgB,CAAC;IACxC,CAAC,CAAC,IAAI,IAAI,CACX,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CACtB,EAA2D;IAE3D,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC3B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC3B,IAAI,MAAM,IAAI,EAAE,EAAE,CAAC;YACjB,OAAO,EAAE,CAAC,IAAI,CAAC;QACjB,CAAC;QAED,IAAI,UAAU,IAAI,EAAE,IAAI,OAAO,EAAE,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;YAC1D,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,SAAS,EAAE,CAAC;AACrB,CAAC"}
@@ -0,0 +1,22 @@
1
+ import type { Tool } from 'fastmcp';
2
+ import { z } from 'zod';
3
+ import { ApiService } from '../services/apiService.js';
4
+ declare const parameters: z.ZodObject<{
5
+ toolUsed: z.ZodString;
6
+ rating: z.ZodNumber;
7
+ sessionId: z.ZodOptional<z.ZodString>;
8
+ }, "strip", z.ZodTypeAny, {
9
+ toolUsed: string;
10
+ rating: number;
11
+ sessionId?: string | undefined;
12
+ }, {
13
+ toolUsed: string;
14
+ rating: number;
15
+ sessionId?: string | undefined;
16
+ }>;
17
+ /**
18
+ * Creates the submitFeedback tool for FastMCP
19
+ */
20
+ export declare const createSubmitFeedback: (apiService: ApiService) => Tool<any, typeof parameters>;
21
+ export {};
22
+ //# sourceMappingURL=submitFeedback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submitFeedback.d.ts","sourceRoot":"","sources":["../../src/tools/submitFeedback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,IAAI,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAGvD,QAAA,MAAM,UAAU;;;;;;;;;;;;EAUd,CAAC;AAIH;;GAEG;AACH,eAAO,MAAM,oBAAoB,GAC/B,YAAY,UAAU,KACrB,IAAI,CAAC,GAAG,EAAE,OAAO,UAAU,CAwD7B,CAAC"}
@@ -0,0 +1,61 @@
1
+ import { z } from 'zod';
2
+ import { ApiService } from '../services/apiService.js';
3
+ import { logger } from '../services/loggerService.js';
4
+ const parameters = z.object({
5
+ toolUsed: z
6
+ .string()
7
+ .describe('The tool that was used (e.g., getMostUrgentIssues)'),
8
+ rating: z
9
+ .number()
10
+ .min(1)
11
+ .max(4)
12
+ .describe('User rating: 1=Very helpful, 2=Somewhat helpful, 3=Not helpful, 4=Buggy/incorrect'),
13
+ sessionId: z.string().optional().describe('Optional session identifier'),
14
+ });
15
+ /**
16
+ * Creates the submitFeedback tool for FastMCP
17
+ */
18
+ export const createSubmitFeedback = (apiService) => {
19
+ return {
20
+ name: 'submitFeedback',
21
+ description: 'Submit user feedback about their experience using flow-mcp tools',
22
+ parameters,
23
+ execute: async (args, context) => {
24
+ const typedArgs = parameters.parse(args);
25
+ try {
26
+ const ratingLabels = {
27
+ 1: 'Very helpful',
28
+ 2: 'Somewhat helpful',
29
+ 3: 'Not helpful',
30
+ 4: 'Buggy/incorrect',
31
+ };
32
+ const ratingEmojis = {
33
+ 1: '⭐⭐⭐⭐',
34
+ 2: '⭐⭐⭐',
35
+ 3: '⭐',
36
+ 4: '🐛',
37
+ };
38
+ logger.info({
39
+ domain: apiService.domain,
40
+ toolUsed: typedArgs.toolUsed,
41
+ rating: typedArgs.rating,
42
+ ratingLabel: ratingLabels[typedArgs.rating],
43
+ sessionId: typedArgs.sessionId,
44
+ }, 'Feedback submitted');
45
+ // For now, just log the feedback
46
+ // Later you can send this to your analytics backend
47
+ const emoji = ratingEmojis[typedArgs.rating];
48
+ const label = ratingLabels[typedArgs.rating];
49
+ return `Thank you for your feedback! ${emoji}\n\nYou rated "${typedArgs.toolUsed}" as: ${label}\n\nYour feedback has been recorded and will help us improve accessFlow MCP.`;
50
+ }
51
+ catch (error) {
52
+ logger.error({
53
+ error: error instanceof Error ? error.message : 'Unknown error',
54
+ stack: error instanceof Error ? error.stack : undefined,
55
+ }, 'Error in submitFeedback');
56
+ throw new Error(`Failed to submit feedback: ${error instanceof Error ? error.message : 'Unknown error'}`);
57
+ }
58
+ },
59
+ };
60
+ };
61
+ //# sourceMappingURL=submitFeedback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submitFeedback.js","sourceRoot":"","sources":["../../src/tools/submitFeedback.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAEtD,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1B,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,CAAC,oDAAoD,CAAC;IACjE,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,CAAC,mFAAmF,CAAC;IAChG,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;CACzE,CAAC,CAAC;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,UAAsB,EACQ,EAAE;IAChC,OAAO;QACL,IAAI,EAAE,gBAAgB;QACtB,WAAW,EACT,kEAAkE;QACpE,UAAU;QACV,OAAO,EAAE,KAAK,EAAE,IAAa,EAAE,OAAqB,EAAE,EAAE;YACtD,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAEzC,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG;oBACnB,CAAC,EAAE,cAAc;oBACjB,CAAC,EAAE,kBAAkB;oBACrB,CAAC,EAAE,aAAa;oBAChB,CAAC,EAAE,iBAAiB;iBACrB,CAAC;gBAEF,MAAM,YAAY,GAAG;oBACnB,CAAC,EAAE,MAAM;oBACT,CAAC,EAAE,KAAK;oBACR,CAAC,EAAE,GAAG;oBACN,CAAC,EAAE,IAAI;iBACR,CAAC;gBAEF,MAAM,CAAC,IAAI,CACT;oBACE,MAAM,EAAE,UAAU,CAAC,MAAM;oBACzB,QAAQ,EAAE,SAAS,CAAC,QAAQ;oBAC5B,MAAM,EAAE,SAAS,CAAC,MAAM;oBACxB,WAAW,EAAE,YAAY,CAAC,SAAS,CAAC,MAAmC,CAAC;oBACxE,SAAS,EAAE,SAAS,CAAC,SAAS;iBAC/B,EACD,oBAAoB,CACrB,CAAC;gBAEF,iCAAiC;gBACjC,oDAAoD;gBACpD,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,MAAmC,CAAC,CAAC;gBAC1E,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,MAAmC,CAAC,CAAC;gBAE1E,OAAO,gCAAgC,KAAK,kBAAkB,SAAS,CAAC,QAAQ,SAAS,KAAK,8EAA8E,CAAC;YAC/K,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,CACV;oBACE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;oBAC/D,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;iBACxD,EACD,yBAAyB,CAC1B,CAAC;gBAEF,MAAM,IAAI,KAAK,CACb,8BAA8B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CACzF,CAAC;YACJ,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const sanitizeDomain: (domain: string) => string;
2
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,KAAG,MAiB/C,CAAC"}
package/dist/utils.js ADDED
@@ -0,0 +1,14 @@
1
+ export const sanitizeDomain = (domain) => {
2
+ if (!domain)
3
+ return '';
4
+ domain = domain.trim();
5
+ domain = domain.replace(/^https?:\/\//, '');
6
+ domain = domain.replace(/^www\./, '');
7
+ const slashIndex = domain.indexOf('/');
8
+ if (slashIndex !== -1) {
9
+ domain = domain.slice(0, slashIndex);
10
+ }
11
+ domain = domain.replace(/\.+$/, '');
12
+ return domain;
13
+ };
14
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAc,EAAU,EAAE;IACvD,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEvB,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAEvB,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IAE5C,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAEtC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;QACtB,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAEpC,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "accessflow-mcp-server",
3
- "version": "2.2.2",
3
+ "version": "2.3.0",
4
4
  "type": "module",
5
5
  "description": "AccessFlow MCP Server for accessibility issue remediation",
6
6
  "main": "./dist/index.js",