fix: lint errors - remove unused import and format files
- Remove unused McpbManifestSchema import from types.ts - Run prettier on modified files
This commit is contained in:
parent
eeb9dca819
commit
e7282946b6
8 changed files with 38 additions and 41 deletions
|
|
@ -46,6 +46,7 @@ To set up commit signing, see [GitHub's documentation on commit signature verifi
|
|||
### Bug Reports
|
||||
|
||||
When filing a bug report, please include:
|
||||
|
||||
- Clear description of the issue
|
||||
- Steps to reproduce
|
||||
- Expected vs actual behavior
|
||||
|
|
@ -55,6 +56,7 @@ When filing a bug report, please include:
|
|||
### Feature Requests
|
||||
|
||||
We welcome feature suggestions! Please:
|
||||
|
||||
- Clearly describe the feature and use case
|
||||
- Explain why this would be valuable to users
|
||||
- Consider if it aligns with the project's goals
|
||||
|
|
@ -62,6 +64,7 @@ We welcome feature suggestions! Please:
|
|||
### Code Contributions
|
||||
|
||||
We especially welcome:
|
||||
|
||||
- Bug fixes
|
||||
- Documentation improvements
|
||||
- Test coverage improvements
|
||||
|
|
|
|||
22
MANIFEST.md
22
MANIFEST.md
|
|
@ -17,7 +17,7 @@ A basic `manifest.json` with just the required fields looks like this:
|
|||
"description": "A simple MCP extension", // Brief description of what the extension does
|
||||
"author": {
|
||||
// Author information (required)
|
||||
"name": "Extension Author" // Author's name (required field)
|
||||
"name": "Extension Author", // Author's name (required field)
|
||||
},
|
||||
"server": {
|
||||
// Server configuration (required)
|
||||
|
|
@ -28,10 +28,10 @@ A basic `manifest.json` with just the required fields looks like this:
|
|||
"command": "node", // Command to run the server
|
||||
"args": [
|
||||
// Arguments passed to the command
|
||||
"${__dirname}/server/index.js" // ${__dirname} is replaced with the extension's directory
|
||||
]
|
||||
}
|
||||
}
|
||||
"${__dirname}/server/index.js", // ${__dirname} is replaced with the extension's directory
|
||||
],
|
||||
},
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
|
|
@ -212,12 +212,12 @@ A full `manifest.json` with most of the optional fields looks like this:
|
|||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -254,7 +254,7 @@ A full `manifest.json` with most of the optional fields looks like this:
|
|||
- **privacy_policies**: Array of URLs to privacy policies for external services that handle user data. Required when the extension connects to external services (first- or third-party) that process user data. Each URL should link to the respective service's privacy policy document.
|
||||
- **compatibility**: Compatibility requirements (client app version, platforms, and runtime versions).
|
||||
- **user_config**: User-configurable options for the extension (see User Configuration section).
|
||||
- **_meta**: Platform-specific client integration metadata (e.g., Windows `package_family_name`, macOS bundle identifiers) enabling tighter OS/app store integration. The keys in the `_meta` object are reverse-DNS namespaced, and the values are a dictionary of platform-specific metadata.
|
||||
- **\_meta**: Platform-specific client integration metadata (e.g., Windows `package_family_name`, macOS bundle identifiers) enabling tighter OS/app store integration. The keys in the `_meta` object are reverse-DNS namespaced, and the values are a dictionary of platform-specific metadata.
|
||||
- **localization**: Location of translated strings for user-facing fields (`resources` path containing a `${locale}` placeholder and `default_locale`).
|
||||
|
||||
### Localization
|
||||
|
|
@ -268,15 +268,16 @@ Provide localized strings without bloating the manifest by pointing to external
|
|||
}
|
||||
```
|
||||
|
||||
- `resources` must include a `${locale}` placeholder. Clients resolve it relative to the server install directory.
|
||||
- `resources` must include a `${locale}` placeholder. Clients resolve it relative to the server install directory.
|
||||
- This property is optional, and its default value is **`mcpb-resources/${locale}.json`**.
|
||||
- `default_locale` must be a valid [BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) identifier such as `en-US` or `zh-Hans`.
|
||||
- This property is optional, and its default value is `en-US`.
|
||||
- Values for the default locale stay in the main manifest; localized files only need to contain overrides.
|
||||
|
||||
For tools and prompts, the descriptions are also localizable.
|
||||
For tools and prompts, the descriptions are also localizable.
|
||||
|
||||
#### Client guidelines
|
||||
|
||||
- if a client wants to show tool or prompt descriptions in their UI, the client should look for the locale-specific description override in the corresponding per-locale file.
|
||||
- clients should only look for tools/prompts present in the manifest.json, i.e. prompts and tools that only exist in the per-locale file should be ignored.
|
||||
- Clients should apply locale fallbacks if the client/user locale is not represented by the server. For example, if the user is in the `es-UY` locale but the server does not include that per-locale file, the client should look for an approrpiate fallback, e.g. `es-MX` or `es-ES`, or fall back to the values in the manifest.
|
||||
|
|
@ -712,4 +713,3 @@ The `_generated` fields:
|
|||
- **prompts_generated**: Server generates additional prompts beyond those listed (default: false)
|
||||
|
||||
This helps implementing apps understand that querying the server at runtime will reveal more capabilities than what's declared in the manifest.
|
||||
|
||||
|
|
|
|||
|
|
@ -99,4 +99,4 @@
|
|||
"@babel/parser": "7.27.3"
|
||||
},
|
||||
"packageManager": "yarn@4.10.3+sha512.c38cafb5c7bb273f3926d04e55e1d8c9dfa7d9c3ea1f36a4868fa028b9e5f72298f0b7f401ad5eb921749eb012eb1c3bb74bf7503df3ee43fd600d14a018266f"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ export const McpbManifestSchema = z
|
|||
screenshots: z.array(z.string()).optional(),
|
||||
server: McpbManifestServerSchema,
|
||||
tools: z.array(McpbManifestToolSchema).optional(),
|
||||
tools_generated: z.boolean().optional(),
|
||||
tools_generated: z.boolean().optional(),
|
||||
prompts: z.array(McpbManifestPromptSchema).optional(),
|
||||
prompts_generated: z.boolean().optional(),
|
||||
keywords: z.array(z.string()).optional(),
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
import type * as z from "zod";
|
||||
|
||||
import type { McpbManifestSchema as McpbManifestSchema_v0_1 } from "./schemas/0.1.js";
|
||||
import type { McpbManifestSchema as McpbManifestSchema_v0_2 } from "./schemas/0.2.js";
|
||||
import type { McpbManifestSchema as McpbManifestSchema_v0_3 } from "./schemas/0.3.js";
|
||||
import type {
|
||||
McpbManifestAuthorSchema,
|
||||
McpbManifestCompatibilitySchema,
|
||||
|
|
@ -7,7 +10,6 @@ import type {
|
|||
McpbManifestPlatformOverrideSchema,
|
||||
McpbManifestPromptSchema,
|
||||
McpbManifestRepositorySchema,
|
||||
McpbManifestSchema,
|
||||
McpbManifestServerSchema,
|
||||
McpbManifestToolSchema,
|
||||
McpbSignatureInfoSchema,
|
||||
|
|
@ -15,9 +17,6 @@ import type {
|
|||
McpbUserConfigValuesSchema,
|
||||
McpServerConfigSchema,
|
||||
} from "./schemas/latest.js";
|
||||
import type { McpbManifestSchema as McpbManifestSchema_v0_1 } from "./schemas/0.1.js";
|
||||
import type { McpbManifestSchema as McpbManifestSchema_v0_2 } from "./schemas/0.2.js";
|
||||
import type { McpbManifestSchema as McpbManifestSchema_v0_3 } from "./schemas/0.3.js";
|
||||
|
||||
export type McpServerConfig = z.infer<typeof McpServerConfigSchema>;
|
||||
|
||||
|
|
|
|||
|
|
@ -335,5 +335,4 @@ describe("McpbManifestSchema", () => {
|
|||
expect(result.success).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,21 +1,19 @@
|
|||
{
|
||||
"manifest_version": "0.2",
|
||||
"name": "legacy-extension",
|
||||
"display_name": "Legacy Extension",
|
||||
"version": "1.0.0",
|
||||
"description": "An extension that predates 0.3",
|
||||
"author": {
|
||||
"name": "Legacy Author",
|
||||
"email": "legacy@example.com"
|
||||
},
|
||||
"server": {
|
||||
"type": "node",
|
||||
"entry_point": "server/index.js",
|
||||
"mcp_config": {
|
||||
"command": "node",
|
||||
"args": [
|
||||
"${__dirname}/server/index.js"
|
||||
]
|
||||
}
|
||||
"manifest_version": "0.2",
|
||||
"name": "legacy-extension",
|
||||
"display_name": "Legacy Extension",
|
||||
"version": "1.0.0",
|
||||
"description": "An extension that predates 0.3",
|
||||
"author": {
|
||||
"name": "Legacy Author",
|
||||
"email": "legacy@example.com"
|
||||
},
|
||||
"server": {
|
||||
"type": "node",
|
||||
"entry_point": "server/index.js",
|
||||
"mcp_config": {
|
||||
"command": "node",
|
||||
"args": ["${__dirname}/server/index.js"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,9 +13,7 @@
|
|||
"entry_point": "server/index.js",
|
||||
"mcp_config": {
|
||||
"command": "node",
|
||||
"args": [
|
||||
"${__dirname}/server/index.js"
|
||||
]
|
||||
"args": ["${__dirname}/server/index.js"]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue