smithery.yaml•2.28 kB
# Smithery configuration for ntfy-mcp-server
# Defines how to build and run the server in the Smithery environment.
startCommand:
# Type must be stdio for standard I/O based MCP servers
type: stdio
# configSchema defines the configuration options users can provide when deploying.
# These options are passed to the commandFunction.
configSchema:
type: object
properties:
ntfyBaseUrl:
type: string
description: "Optional: Base URL of the ntfy instance (e.g., https://ntfy.sh or your self-hosted URL)."
default: "https://ntfy.sh"
ntfyDefaultTopic:
type: string
description: "Optional: Default ntfy topic to use if none is specified in the request."
default: "ATLAS" # Default matches the Dockerfile ARG
ntfyApiKey:
type: string
description: "Optional: API key if required by your ntfy instance (for authentication)."
# No required properties, allowing deployment without configuration for public ntfy.sh
required: []
# commandFunction generates the command details based on the validated configuration.
# It runs in a server sandbox during deployment runtime.
commandFunction: |
(config) => {
// Base command and arguments to start the Node.js server
const commandDetails = {
command: "node",
args: ["dist/index.js"],
env: {}
};
// Map configuration options to environment variables
if (config.ntfyBaseUrl) {
commandDetails.env.NTFY_BASE_URL = config.ntfyBaseUrl;
}
if (config.ntfyDefaultTopic) {
commandDetails.env.NTFY_DEFAULT_TOPIC = config.ntfyDefaultTopic;
}
if (config.ntfyApiKey) {
// Pass API key only if provided
commandDetails.env.NTFY_API_KEY = config.ntfyApiKey;
}
// Add other necessary runtime environment variables if needed
// commandDetails.env.LOG_LEVEL = 'info'; // Example
return commandDetails;
}
# Optional build configuration.
# Since Dockerfile is in the root and the build context is the root,
# these are not strictly necessary but can be explicit.
# build:
# dockerfile: Dockerfile # Path relative to this config file
# dockerBuildPath: . # Build context relative to this config file