@ric_/forgejo-mcp 0.1.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.
Files changed (55) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +302 -0
  3. package/dist/client.d.ts +35 -0
  4. package/dist/client.d.ts.map +1 -0
  5. package/dist/client.js +107 -0
  6. package/dist/client.js.map +1 -0
  7. package/dist/config.d.ts +10 -0
  8. package/dist/config.d.ts.map +1 -0
  9. package/dist/config.js +86 -0
  10. package/dist/config.js.map +1 -0
  11. package/dist/http.d.ts +3 -0
  12. package/dist/http.d.ts.map +1 -0
  13. package/dist/http.js +108 -0
  14. package/dist/http.js.map +1 -0
  15. package/dist/index.d.ts +3 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +16 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/server.d.ts +4 -0
  20. package/dist/server.d.ts.map +1 -0
  21. package/dist/server.js +27 -0
  22. package/dist/server.js.map +1 -0
  23. package/dist/tools/admin.d.ts +4 -0
  24. package/dist/tools/admin.d.ts.map +1 -0
  25. package/dist/tools/admin.js +261 -0
  26. package/dist/tools/admin.js.map +1 -0
  27. package/dist/tools/helpers.d.ts +16 -0
  28. package/dist/tools/helpers.d.ts.map +1 -0
  29. package/dist/tools/helpers.js +30 -0
  30. package/dist/tools/helpers.js.map +1 -0
  31. package/dist/tools/issues.d.ts +4 -0
  32. package/dist/tools/issues.d.ts.map +1 -0
  33. package/dist/tools/issues.js +337 -0
  34. package/dist/tools/issues.js.map +1 -0
  35. package/dist/tools/organizations.d.ts +4 -0
  36. package/dist/tools/organizations.d.ts.map +1 -0
  37. package/dist/tools/organizations.js +232 -0
  38. package/dist/tools/organizations.js.map +1 -0
  39. package/dist/tools/pullrequests.d.ts +4 -0
  40. package/dist/tools/pullrequests.d.ts.map +1 -0
  41. package/dist/tools/pullrequests.js +251 -0
  42. package/dist/tools/pullrequests.js.map +1 -0
  43. package/dist/tools/repository.d.ts +4 -0
  44. package/dist/tools/repository.d.ts.map +1 -0
  45. package/dist/tools/repository.js +437 -0
  46. package/dist/tools/repository.js.map +1 -0
  47. package/dist/tools/users.d.ts +4 -0
  48. package/dist/tools/users.d.ts.map +1 -0
  49. package/dist/tools/users.js +204 -0
  50. package/dist/tools/users.js.map +1 -0
  51. package/dist/validation.d.ts +35 -0
  52. package/dist/validation.d.ts.map +1 -0
  53. package/dist/validation.js +68 -0
  54. package/dist/validation.js.map +1 -0
  55. package/package.json +49 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/tools/users.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAU,MAAM,kBAAkB,CAAC;AAEtF,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,MAAqB;IACxE,4BAA4B;IAC5B,MAAM,CAAC,IAAI,CACT,wBAAwB,EACxB,sCAAsC,EACtC,EAAE,EACF,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACvC,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,cAAc;IACd,MAAM,CAAC,IAAI,CACT,UAAU,EACV,kCAAkC,EAClC;QACE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC;KAClD,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC3D,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,qBAAqB;IACrB,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,mCAAmC,EACnC;QACE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACjD,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,MAAM;KACd,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,QAAQ,QAAQ,EAAE;gBAC/D,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC,CAAC;YACH,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,oBAAoB;IACpB,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,sCAAsC,EACtC;QACE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACjD,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,MAAM;KACd,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,QAAQ,OAAO,EAAE;gBAC9D,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC,CAAC;YACH,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kBAAkB;IAClB,MAAM,CAAC,IAAI,CACT,cAAc,EACd,0CAA0C,EAC1C;QACE,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QAC/C,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,MAAM;KACd,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE;gBAC7C,CAAC,EAAE,MAAM,CAAC,CAAC;gBACX,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC,CAAC;YACH,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,oBAAoB;IACpB,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,yBAAyB,EACzB;QACE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACjD,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,MAAM;KACd,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,QAAQ,YAAY,EAAE;gBACnE,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC,CAAC;YACH,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,oBAAoB;IACpB,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,8BAA8B,EAC9B;QACE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACjD,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,MAAM;KACd,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,QAAQ,YAAY,EAAE;gBACnE,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC,CAAC;YACH,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,uBAAuB;IACvB,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,qCAAqC,EACrC;QACE,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACjD,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,MAAM;KACd,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,QAAQ,UAAU,EAAE;gBACjE,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC,CAAC;YACH,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,qBAAqB;IACrB,MAAM,CAAC,IAAI,CACT,iBAAiB,EACjB,qDAAqD,EACrD;QACE,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,MAAM;KACd,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,eAAe,EAAE;gBAC7C,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC,CAAC;YACH,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,gBAAgB;IAChB,MAAM,CAAC,IAAI,CACT,WAAW,EACX,8CAA8C,EAC9C;QACE,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,KAAK;KACZ,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9E,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,kBAAkB;IAClB,MAAM,CAAC,IAAI,CACT,aAAa,EACb,gDAAgD,EAChD;QACE,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,KAAK;KACZ,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,iBAAiB,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACjF,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,4BAA4B;IAC5B,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,+CAA+C,EAC/C;QACE,IAAI,EAAE,KAAK;QACX,KAAK,EAAE,MAAM;QACb,YAAY,EAAE,CAAC;aACZ,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;aAClC,QAAQ,EAAE;aACV,QAAQ,CAAC,gDAAgD,CAAC;KAC9D,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACf,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE;gBAC9C,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,YAAY,EAAE,MAAM,CAAC,YAAY;aAClC,CAAC,CAAC;YACH,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;IAEF,8BAA8B;IAC9B,MAAM,CAAC,IAAI,CACT,yBAAyB,EACzB,2DAA2D,EAC3D,EAAE,EACF,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAChD,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { z } from "zod";
2
+ /** Validates a username/owner/org path segment */
3
+ export declare const zOwner: z.ZodString;
4
+ /** Validates a repository name path segment */
5
+ export declare const zRepo: z.ZodString;
6
+ /** Validates a branch name (allows slashes for namespaced branches like feature/foo) */
7
+ export declare const zBranch: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
8
+ /** Validates a file path within a repo (allows slashes, blocks traversal) */
9
+ export declare const zFilePath: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
10
+ /** Validates a template/task name */
11
+ export declare const zTemplateName: z.ZodString;
12
+ /** Pagination: page number */
13
+ export declare const zPage: z.ZodOptional<z.ZodNumber>;
14
+ /** Pagination: limit */
15
+ export declare const zLimit: z.ZodOptional<z.ZodNumber>;
16
+ /** Positive integer ID */
17
+ export declare const zId: z.ZodNumber;
18
+ /** Positive integer index (issue/PR number) */
19
+ export declare const zIndex: z.ZodNumber;
20
+ /** Short text fields (titles, names) */
21
+ export declare const zTitle: z.ZodString;
22
+ /** Long text fields (bodies, descriptions) */
23
+ export declare const zBody: z.ZodString;
24
+ /** Search query */
25
+ export declare const zSearchQuery: z.ZodString;
26
+ /** SHA hash */
27
+ export declare const zSha: z.ZodString;
28
+ /** Enum validators */
29
+ export declare const zState: z.ZodOptional<z.ZodEnum<["open", "closed", "all"]>>;
30
+ export declare const zVisibility: z.ZodOptional<z.ZodEnum<["public", "limited", "private"]>>;
31
+ export declare const zPermission: z.ZodOptional<z.ZodEnum<["read", "write", "admin"]>>;
32
+ export declare const zMergeMethod: z.ZodDefault<z.ZodEnum<["merge", "rebase", "rebase-merge", "squash"]>>;
33
+ export declare const zReviewEvent: z.ZodEnum<["APPROVED", "REQUEST_CHANGES", "COMMENT"]>;
34
+ export declare const zMarkdownMode: z.ZodOptional<z.ZodEnum<["gfm", "comment", "plain"]>>;
35
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,kDAAkD;AAClD,eAAO,MAAM,MAAM,aAKU,CAAC;AAE9B,+CAA+C;AAC/C,eAAO,MAAM,KAAK,aAKY,CAAC;AAE/B,wFAAwF;AACxF,eAAO,MAAM,OAAO,yEAMM,CAAC;AAE3B,6EAA6E;AAC7E,eAAO,MAAM,SAAS,uGAOoB,CAAC;AAE3C,qCAAqC;AACrC,eAAO,MAAM,aAAa,aAIgG,CAAC;AAE3H,8BAA8B;AAC9B,eAAO,MAAM,KAAK,4BAA2E,CAAC;AAE9F,wBAAwB;AACxB,eAAO,MAAM,MAAM,4BAA6F,CAAC;AAEjH,0BAA0B;AAC1B,eAAO,MAAM,GAAG,aAAqD,CAAC;AAEtE,+CAA+C;AAC/C,eAAO,MAAM,MAAM,aAA6D,CAAC;AAEjF,wCAAwC;AACxC,eAAO,MAAM,MAAM,aAA6B,CAAC;AAEjD,8CAA8C;AAC9C,eAAO,MAAM,KAAK,aAAwB,CAAC;AAE3C,mBAAmB;AACnB,eAAO,MAAM,YAAY,aAAsB,CAAC;AAEhD,eAAe;AACf,eAAO,MAAM,IAAI,aAA+E,CAAC;AAEjG,sBAAsB;AACtB,eAAO,MAAM,MAAM,qDAA+C,CAAC;AACnE,eAAO,MAAM,WAAW,4DAAsD,CAAC;AAC/E,eAAO,MAAM,WAAW,sDAAgD,CAAC;AACzE,eAAO,MAAM,YAAY,wEAAyE,CAAC;AACnG,eAAO,MAAM,YAAY,uDAAqD,CAAC;AAC/E,eAAO,MAAM,aAAa,uDAAiD,CAAC"}
@@ -0,0 +1,68 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Reusable validation schemas for path segments and common parameters.
4
+ * Prevents path traversal, injection, and ensures sane bounds.
5
+ */
6
+ // Path segment pattern: alphanumeric, hyphens, underscores, dots (no slashes, no ..)
7
+ const PATH_SEGMENT_REGEX = /^[a-zA-Z0-9_.-]+$/;
8
+ /** Validates a username/owner/org path segment */
9
+ export const zOwner = z
10
+ .string()
11
+ .min(1)
12
+ .max(255)
13
+ .regex(PATH_SEGMENT_REGEX, "Invalid characters in owner/username. Only alphanumeric, hyphens, underscores, and dots are allowed.")
14
+ .describe("Owner/username");
15
+ /** Validates a repository name path segment */
16
+ export const zRepo = z
17
+ .string()
18
+ .min(1)
19
+ .max(255)
20
+ .regex(PATH_SEGMENT_REGEX, "Invalid characters in repository name. Only alphanumeric, hyphens, underscores, and dots are allowed.")
21
+ .describe("Repository name");
22
+ /** Validates a branch name (allows slashes for namespaced branches like feature/foo) */
23
+ export const zBranch = z
24
+ .string()
25
+ .min(1)
26
+ .max(255)
27
+ .refine((val) => !val.includes(".."), "Branch name must not contain '..'")
28
+ .refine((val) => !val.startsWith("/") && !val.endsWith("/"), "Branch name must not start or end with '/'")
29
+ .describe("Branch name");
30
+ /** Validates a file path within a repo (allows slashes, blocks traversal) */
31
+ export const zFilePath = z
32
+ .string()
33
+ .min(1)
34
+ .max(4096)
35
+ .refine((val) => !val.includes(".."), "File path must not contain '..' (path traversal)")
36
+ .refine((val) => !val.startsWith("/"), "File path must not start with '/'")
37
+ .refine((val) => !val.includes("\\"), "File path must not contain backslashes")
38
+ .describe("File path in the repository");
39
+ /** Validates a template/task name */
40
+ export const zTemplateName = z
41
+ .string()
42
+ .min(1)
43
+ .max(255)
44
+ .regex(PATH_SEGMENT_REGEX, "Invalid characters in name. Only alphanumeric, hyphens, underscores, and dots are allowed.");
45
+ /** Pagination: page number */
46
+ export const zPage = z.number().int().min(1).optional().describe("Page number (starts at 1)");
47
+ /** Pagination: limit */
48
+ export const zLimit = z.number().int().min(1).max(50).optional().describe("Number of results per page (max 50)");
49
+ /** Positive integer ID */
50
+ export const zId = z.number().int().positive().describe("Numeric ID");
51
+ /** Positive integer index (issue/PR number) */
52
+ export const zIndex = z.number().int().positive().describe("Issue or PR number");
53
+ /** Short text fields (titles, names) */
54
+ export const zTitle = z.string().min(1).max(255);
55
+ /** Long text fields (bodies, descriptions) */
56
+ export const zBody = z.string().max(65536);
57
+ /** Search query */
58
+ export const zSearchQuery = z.string().max(256);
59
+ /** SHA hash */
60
+ export const zSha = z.string().min(4).max(64).regex(/^[a-fA-F0-9]+$/, "Must be a valid hex SHA");
61
+ /** Enum validators */
62
+ export const zState = z.enum(["open", "closed", "all"]).optional();
63
+ export const zVisibility = z.enum(["public", "limited", "private"]).optional();
64
+ export const zPermission = z.enum(["read", "write", "admin"]).optional();
65
+ export const zMergeMethod = z.enum(["merge", "rebase", "rebase-merge", "squash"]).default("merge");
66
+ export const zReviewEvent = z.enum(["APPROVED", "REQUEST_CHANGES", "COMMENT"]);
67
+ export const zMarkdownMode = z.enum(["gfm", "comment", "plain"]).optional();
68
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "@ric_/forgejo-mcp",
3
+ "version": "0.1.0",
4
+ "description": "A Model Context Protocol (MCP) server for Forgejo and Gitea instances. Provides 102 tools across repos, issues, PRs, orgs, users, and admin APIs. Works with Claude, Cursor, and any MCP-compatible client. Supports stdio and HTTP transports. Built with Claude Code.",
5
+ "type": "module",
6
+ "license": "MIT",
7
+ "keywords": [
8
+ "mcp",
9
+ "forgejo",
10
+ "gitea",
11
+ "model-context-protocol",
12
+ "ai",
13
+ "llm"
14
+ ],
15
+ "repository": {
16
+ "type": "git",
17
+ "url": "https://code.squarecows.com/SquareCows/forgejo-mcp"
18
+ },
19
+ "bin": {
20
+ "forgejo-mcp": "dist/index.js",
21
+ "forgejo-mcp-http": "dist/http.js"
22
+ },
23
+ "files": [
24
+ "dist"
25
+ ],
26
+ "scripts": {
27
+ "build": "tsc",
28
+ "dev": "tsx src/index.ts",
29
+ "dev:http": "tsx src/http.ts",
30
+ "test": "vitest run",
31
+ "test:watch": "vitest",
32
+ "lint": "eslint src/",
33
+ "prepublishOnly": "npm run build"
34
+ },
35
+ "dependencies": {
36
+ "@modelcontextprotocol/sdk": "^1.26.0",
37
+ "zod": "^3.24.0"
38
+ },
39
+ "devDependencies": {
40
+ "@types/node": "^22.0.0",
41
+ "eslint": "^9.0.0",
42
+ "tsx": "^4.19.0",
43
+ "typescript": "^5.7.0",
44
+ "vitest": "^3.0.0"
45
+ },
46
+ "engines": {
47
+ "node": ">=18.0.0"
48
+ }
49
+ }