@heyclaude/mcp 0.2.0 → 0.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/CHANGELOG.md +12 -0
- package/README.md +29 -14
- package/package.json +1 -1
- package/scripts/validate-endpoint.mjs +68 -10
- package/src/package-metadata.js +4 -7
- package/src/registry.d.ts +49 -1
- package/src/registry.js +1104 -36
- package/src/schemas.d.ts +3 -0
- package/src/schemas.js +62 -1
- package/src/submissions.d.ts +1 -2
- package/src/submissions.js +255 -84
package/src/schemas.d.ts
CHANGED
|
@@ -23,6 +23,9 @@ export const CategorySubmissionGuidanceInputSchema: z.ZodType;
|
|
|
23
23
|
export const PrepareSubmissionDraftInputSchema: z.ZodType;
|
|
24
24
|
export const GetSubmissionExamplesInputSchema: z.ZodType;
|
|
25
25
|
export const ReviewSubmissionDraftInputSchema: z.ZodType;
|
|
26
|
+
export const SubmissionPolicyInputSchema: z.ZodType;
|
|
27
|
+
export const ExplainEntryTrustInputSchema: z.ZodType;
|
|
28
|
+
export const ReviewEntrySafetyInputSchema: z.ZodType;
|
|
26
29
|
export const TOOL_INPUT_SCHEMAS: Record<string, z.ZodType>;
|
|
27
30
|
|
|
28
31
|
export function jsonSchemaForTool(name: string): Record<string, unknown>;
|
package/src/schemas.js
CHANGED
|
@@ -8,6 +8,10 @@ const pathPart = z
|
|
|
8
8
|
.regex(/^[a-z0-9-]+$/, "Use lowercase slug-safe path parts only.");
|
|
9
9
|
|
|
10
10
|
const platform = z.string().trim().min(1).max(80);
|
|
11
|
+
const trustBooleanFilter = z.enum(["all", "true", "false"]);
|
|
12
|
+
const downloadTrustFilter = z.enum(["all", "first-party", "external", "none"]);
|
|
13
|
+
const claimStatusFilter = z.enum(["all", "unclaimed", "pending", "verified"]);
|
|
14
|
+
const sourceStatusFilter = z.enum(["all", "available", "missing"]);
|
|
11
15
|
const clientName = z.enum([
|
|
12
16
|
"codex",
|
|
13
17
|
"claude-desktop",
|
|
@@ -28,6 +32,17 @@ const submissionCategory = z.enum([
|
|
|
28
32
|
]);
|
|
29
33
|
const optionalText = z.string().trim().max(4000).optional();
|
|
30
34
|
const optionalLongText = z.string().trim().max(24000).optional();
|
|
35
|
+
const notesShape = z
|
|
36
|
+
.string()
|
|
37
|
+
.trim()
|
|
38
|
+
.refine((value) => {
|
|
39
|
+
const lines = value
|
|
40
|
+
.split(/\r?\n/)
|
|
41
|
+
.map((line) => line.trim())
|
|
42
|
+
.filter(Boolean);
|
|
43
|
+
return lines.length <= 8 && lines.every((line) => line.length <= 320);
|
|
44
|
+
}, "Use at most 8 non-empty lines, 320 characters per line.")
|
|
45
|
+
.optional();
|
|
31
46
|
const optionalTags = z
|
|
32
47
|
.union([
|
|
33
48
|
z.string().trim().max(1000),
|
|
@@ -68,6 +83,8 @@ export const SubmissionFieldsSchema = z
|
|
|
68
83
|
retrieval_sources: optionalLongText,
|
|
69
84
|
tested_platforms: optionalText,
|
|
70
85
|
prerequisites: optionalLongText,
|
|
86
|
+
safety_notes: notesShape,
|
|
87
|
+
privacy_notes: notesShape,
|
|
71
88
|
troubleshooting_section: optionalLongText,
|
|
72
89
|
installation_order: optionalText,
|
|
73
90
|
estimated_setup_time: optionalText,
|
|
@@ -80,10 +97,24 @@ export const SearchRegistryInputSchema = z
|
|
|
80
97
|
query: z.string().trim().max(240).optional(),
|
|
81
98
|
category: pathPart.optional(),
|
|
82
99
|
platform: platform.optional(),
|
|
100
|
+
hasSafetyNotes: trustBooleanFilter.optional(),
|
|
101
|
+
hasPrivacyNotes: trustBooleanFilter.optional(),
|
|
102
|
+
downloadTrust: downloadTrustFilter.optional(),
|
|
103
|
+
claimStatus: claimStatusFilter.optional(),
|
|
104
|
+
sourceStatus: sourceStatusFilter.optional(),
|
|
83
105
|
limit: z.number().int().min(1).max(25).optional(),
|
|
84
106
|
})
|
|
85
107
|
.strict();
|
|
86
108
|
|
|
109
|
+
export const PlanWorkflowToolboxInputSchema = z
|
|
110
|
+
.object({
|
|
111
|
+
goal: z.string().trim().min(2).max(240),
|
|
112
|
+
category: pathPart.optional(),
|
|
113
|
+
platform: platform.optional(),
|
|
114
|
+
limit: z.number().int().min(1).max(10).optional(),
|
|
115
|
+
})
|
|
116
|
+
.strict();
|
|
117
|
+
|
|
87
118
|
export const ServerInfoInputSchema = z.object({}).strict();
|
|
88
119
|
|
|
89
120
|
export const ListCategoryEntriesInputSchema = z
|
|
@@ -205,7 +236,7 @@ export const SearchDuplicateEntriesInputSchema = z
|
|
|
205
236
|
export const BuildSubmissionUrlsInputSchema = z
|
|
206
237
|
.object({
|
|
207
238
|
fields: SubmissionFieldsSchema,
|
|
208
|
-
|
|
239
|
+
includePrBody: z.boolean().optional(),
|
|
209
240
|
})
|
|
210
241
|
.strict();
|
|
211
242
|
|
|
@@ -234,8 +265,35 @@ export const ReviewSubmissionDraftInputSchema = z
|
|
|
234
265
|
})
|
|
235
266
|
.strict();
|
|
236
267
|
|
|
268
|
+
export const SubmissionPolicyInputSchema = z.object({}).strict();
|
|
269
|
+
|
|
270
|
+
export const ExplainEntryTrustInputSchema = z
|
|
271
|
+
.object({
|
|
272
|
+
category: pathPart,
|
|
273
|
+
slug: pathPart,
|
|
274
|
+
})
|
|
275
|
+
.strict();
|
|
276
|
+
|
|
277
|
+
export const ReviewEntrySafetyInputSchema = z
|
|
278
|
+
.object({
|
|
279
|
+
entries: z
|
|
280
|
+
.array(
|
|
281
|
+
z
|
|
282
|
+
.object({
|
|
283
|
+
category: pathPart,
|
|
284
|
+
slug: pathPart,
|
|
285
|
+
})
|
|
286
|
+
.strict(),
|
|
287
|
+
)
|
|
288
|
+
.min(1)
|
|
289
|
+
.max(5),
|
|
290
|
+
platform: platform.optional(),
|
|
291
|
+
})
|
|
292
|
+
.strict();
|
|
293
|
+
|
|
237
294
|
export const TOOL_INPUT_SCHEMAS = {
|
|
238
295
|
search_registry: SearchRegistryInputSchema,
|
|
296
|
+
plan_workflow_toolbox: PlanWorkflowToolboxInputSchema,
|
|
239
297
|
server_info: ServerInfoInputSchema,
|
|
240
298
|
list_category_entries: ListCategoryEntriesInputSchema,
|
|
241
299
|
get_recent_updates: RecentUpdatesInputSchema,
|
|
@@ -257,6 +315,9 @@ export const TOOL_INPUT_SCHEMAS = {
|
|
|
257
315
|
prepare_submission_draft: PrepareSubmissionDraftInputSchema,
|
|
258
316
|
get_submission_examples: GetSubmissionExamplesInputSchema,
|
|
259
317
|
review_submission_draft: ReviewSubmissionDraftInputSchema,
|
|
318
|
+
get_submission_policy: SubmissionPolicyInputSchema,
|
|
319
|
+
explain_entry_trust: ExplainEntryTrustInputSchema,
|
|
320
|
+
review_entry_safety: ReviewEntrySafetyInputSchema,
|
|
260
321
|
};
|
|
261
322
|
|
|
262
323
|
function stripUnsupportedJsonSchemaFields(value) {
|
package/src/submissions.d.ts
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
export const SUBMISSION_SITE_URL: string;
|
|
2
|
-
export const GITHUB_NEW_ISSUE_URL: string;
|
|
3
2
|
|
|
4
3
|
export function slugify(value: string): string;
|
|
5
4
|
export function normalizeSubmissionFields(
|
|
6
5
|
fields?: Record<string, unknown>,
|
|
7
6
|
): Record<string, string>;
|
|
8
|
-
export function
|
|
7
|
+
export function buildPrDraftFromSpec(
|
|
9
8
|
spec: Record<string, unknown>,
|
|
10
9
|
fields?: Record<string, unknown>,
|
|
11
10
|
): Record<string, unknown>;
|