Skip to main content
Glama
discovery-config.json22.9 kB
{ "readme": { "files": ["README.md"], "questions": [ { "id": "projectName", "question": "What is the project name?", "required": true }, { "id": "projectDescription", "question": "What does this project do?", "required": true }, { "id": "licenseName", "question": "What license does this project use? (e.g., MIT, Apache-2.0, GPL-3.0)", "required": false } ] }, "legal": { "files": ["LICENSE"], "questions": [ { "id": "licenseType", "question": "What license type would you like? (MIT, Apache-2.0, GPL-3.0, BSD-3-Clause)", "required": true, "options": ["MIT", "Apache-2.0", "GPL-3.0", "BSD-3-Clause"] }, { "id": "year", "question": "What year for the copyright? (e.g., 2025)", "required": true }, { "id": "copyrightHolder", "question": "Who is the copyright holder? (e.g., Your Name or Your Organization)", "required": true }, { "id": "projectName", "question": "What is the project name?", "required": true }, { "id": "projectDescription", "question": "What does this project do? (Required for GPL-3.0, optional otherwise)", "required": false }, { "id": "projectUrl", "question": "Project URL (optional, used in NOTICE file for Apache-2.0)", "required": false } ], "conditionalFiles": { "NOTICE": { "condition": "licenseType === 'Apache-2.0'", "reason": "NOTICE file is required for Apache 2.0 licensed projects" } } }, "governance": { "files": ["CODE_OF_CONDUCT.md", "CONTRIBUTING.md", "SECURITY.md", "docs/MAINTAINERS.md", "docs/GOVERNANCE.md", "docs/ROADMAP.md"], "questions": [ { "id": "projectName", "question": "What is the project name?", "required": true }, { "id": "repositoryUrl", "question": "What is the repository URL? (e.g., https://github.com/username/repo)", "required": true }, { "id": "repoName", "question": "Repository name (without owner, used in git clone commands - e.g., 'dot-ai' from 'github.com/vfarcic/dot-ai')", "required": true }, { "id": "enforcementEmail", "question": "Email address for Code of Conduct enforcement", "required": true }, { "id": "securityEmail", "question": "Email address for security vulnerability reports", "required": true }, { "id": "maintainerEmail", "question": "General maintainer contact email", "required": true }, { "id": "maintainerName", "question": "Lead maintainer name", "required": true }, { "id": "maintainerGithub", "question": "Lead maintainer GitHub username (without @)", "required": true }, { "id": "setupCommand", "question": "Command to install dependencies (e.g., 'npm install', 'pip install -r requirements.txt')", "required": false }, { "id": "testCommand", "question": "Command to run tests (e.g., 'npm test', 'pytest')", "required": false }, { "id": "lintCommand", "question": "Command to run linters (e.g., 'npm run lint', 'ruff check')", "required": false }, { "id": "requiresDco", "question": "Does this project require Developer Certificate of Origin (DCO) sign-off? (yes/no)", "required": false }, { "id": "discussionsUrl", "question": "GitHub Discussions URL (optional)", "required": false }, { "id": "slackChannel", "question": "Slack community channel URL (optional)", "required": false }, { "id": "discordUrl", "question": "Discord server URL (optional)", "required": false }, { "id": "supportedVersions", "question": "Supported versions table for SECURITY.md (optional, markdown format)", "required": false }, { "id": "maintainerPeriod", "question": "How long should someone contribute before becoming a maintainer? (e.g., '6 months', '1 year')", "required": false }, { "id": "inactivityPeriod", "question": "How long before inactive maintainers are removed? (e.g., '6 months', '1 year')", "required": false }, { "id": "hasVoting", "question": "Does this project use voting for decisions? (yes/no)", "required": false }, { "id": "votingThreshold", "question": "If voting is used, what's the threshold? (e.g., 'majority', '2/3 majority', 'consensus')", "required": false }, { "id": "githubProjectUrl", "question": "GitHub Project Board URL for roadmap tracking (optional)", "required": false }, { "id": "shortTermGoals", "question": "Short-term goals (1-3 months) in markdown format (optional)", "required": false }, { "id": "mediumTermGoals", "question": "Medium-term goals (3-6 months) in markdown format (optional)", "required": false }, { "id": "longTermGoals", "question": "Long-term goals (6-12 months) in markdown format (optional)", "required": false }, { "id": "roadmapIntro", "question": "Custom introduction for ROADMAP.md (optional)", "required": false }, { "id": "requiresConsensus", "question": "Do major decisions require consensus among maintainers? (yes/no)", "required": false }, { "id": "hasCommitters", "question": "Does this project have a separate 'Committers' role? (yes/no)", "required": false }, { "id": "hasSteeringCommittee", "question": "Does this project have a Steering Committee? (yes/no)", "required": false } ] }, "community": { "files": ["SUPPORT.md", "ADOPTERS.md"], "questions": [ { "id": "projectName", "question": "What is the project name?", "required": true }, { "id": "projectDescription", "question": "What does this project do? (brief description)", "required": false }, { "id": "projectUrl", "question": "What is the project URL? (e.g., https://github.com/username/repo)", "required": true }, { "id": "docsUrl", "question": "What is the documentation URL? (e.g., https://docs.example.com or README)", "required": true }, { "id": "discussionsUrl", "question": "What is the GitHub Discussions URL? (e.g., https://github.com/username/repo/discussions)", "required": true }, { "id": "stackOverflowTag", "question": "Stack Overflow tag for your project (optional, e.g., 'my-project')", "required": false }, { "id": "slackUrl", "question": "Slack workspace URL (optional)", "required": false }, { "id": "discordUrl", "question": "Discord server URL (optional)", "required": false }, { "id": "forumUrl", "question": "Community forum URL (optional)", "required": false }, { "id": "maintainerCount", "question": "How many maintainers does this project have? (number)", "required": false }, { "id": "criticalResponseTime", "question": "Typical response time for critical bugs (e.g., '24 hours', '48 hours', 'best effort')", "required": false }, { "id": "featureResponseTime", "question": "Typical response time for feature requests (e.g., '1 week', '2 weeks', 'best effort')", "required": false }, { "id": "questionResponseTime", "question": "Typical response time for questions (e.g., '48 hours', '1 week', 'best effort')", "required": false }, { "id": "commercialSupportAvailable", "question": "Is commercial support available? (yes/no)", "required": false }, { "id": "commercialSupportProvider", "question": "Who provides commercial support? (if available)", "required": false }, { "id": "commercialSupportEmail", "question": "Email for commercial support inquiries (if available)", "required": false }, { "id": "securityEmail", "question": "Email address for security vulnerability reports", "required": true }, { "id": "includeUseCase", "question": "Should ADOPTERS.md include a use case column? (yes/no)", "required": false }, { "id": "maintainerOrganization", "question": "Add your organization as the first adopter? (organization name, optional)", "required": false }, { "id": "maintainerUseCase", "question": "Your organization's use case (if adding as first adopter)", "required": false }, { "id": "maintainerWebsite", "question": "Your organization's website (if adding as first adopter)", "required": false }, { "id": "requiresDco", "question": "Do PRs require DCO sign-off? (yes/no)", "required": false }, { "id": "requiresVerification", "question": "Do you verify organizations before adding to ADOPTERS? (yes/no)", "required": false }, { "id": "recognitionProgram", "question": "Do you have an adopter recognition program? (yes/no)", "required": false }, { "id": "maintainerEmail", "question": "General maintainer contact email", "required": true }, { "id": "questionsContact", "question": "Contact email for questions about the adopters list (optional, defaults to maintainer email)", "required": false } ] }, "github-issues": { "files": [".github/ISSUE_TEMPLATE/bug_report.yml", ".github/ISSUE_TEMPLATE/feature_request.yml", ".github/ISSUE_TEMPLATE/config.yml"], "questions": [ { "id": "projectName", "question": "What is the project name?", "required": true }, { "id": "githubOrg", "question": "GitHub organization or username (e.g., 'octocat' from github.com/octocat/repo)", "required": true }, { "id": "githubRepo", "question": "GitHub repository name (e.g., 'repo' from github.com/octocat/repo)", "required": true }, { "id": "isNodeProject", "question": "Is this a Node.js/TypeScript project? (yes/no)", "required": false }, { "id": "isPythonProject", "question": "Is this a Python project? (yes/no)", "required": false }, { "id": "isGoProject", "question": "Is this a Go project? (yes/no)", "required": false }, { "id": "isKubernetesProject", "question": "Is this a Kubernetes-related project? (yes/no)", "required": false }, { "id": "hasDiscussions", "question": "Do you have GitHub Discussions enabled? (yes/no)", "required": false }, { "id": "blankIssuesEnabled", "question": "Allow blank issues (no template)? Recommended: no (yes/no)", "required": false }, { "id": "docsSiteUrl", "question": "Documentation site URL (optional, leave blank if none)", "required": false }, { "id": "slackInviteUrl", "question": "Slack workspace invite URL (optional, leave blank if none)", "required": false }, { "id": "discordInviteUrl", "question": "Discord server invite URL (optional, leave blank if none)", "required": false }, { "id": "supportFilePath", "question": "Path to SUPPORT.md file (if exists, e.g., 'SUPPORT.md' or 'docs/SUPPORT.md', leave blank if none)", "required": false }, { "id": "securityFilePath", "question": "Path to SECURITY.md file (if exists, e.g., 'SECURITY.md' or leave blank if none)", "required": false }, { "id": "roadmapPath", "question": "Path to ROADMAP.md file (if exists, e.g., 'docs/ROADMAP.md' or leave blank if none)", "required": false } ] }, "pr-template": { "files": [".github/PULL_REQUEST_TEMPLATE.md"], "questions": [ { "id": "projectName", "question": "What is the project name?", "required": true }, { "id": "requiresDco", "question": "Require DCO (Developer Certificate of Origin) sign-off on all commits? (yes/no)", "required": false }, { "id": "requiresConventionalCommits", "question": "Enforce Conventional Commits format for PR titles? (yes/no)", "required": false }, { "id": "includesSecurityChecklist", "question": "Include security checklist in PR template? (yes/no)", "required": false }, { "id": "requiresScreenshots", "question": "Require screenshots for UI changes? (yes/no)", "required": false }, { "id": "contributingPath", "question": "Path to CONTRIBUTING.md file (if exists, e.g., 'CONTRIBUTING.md' or 'docs/CONTRIBUTING.md', leave blank if none)", "required": false } ] }, "github-community": { "files": [".github/CODEOWNERS", ".github/release.yml"], "questions": [ { "id": "useTeams", "question": "Use GitHub teams for code ownership? (yes/no) - If yes, requires organization; if no, uses individual maintainer usernames", "required": false }, { "id": "githubOrg", "question": "GitHub organization name (required if using teams, e.g., 'kubernetes', 'apache')", "required": false }, { "id": "defaultTeam", "question": "Default team name for code ownership (required if using teams, e.g., 'maintainers', 'core-team')", "required": false }, { "id": "maintainerUsernames", "question": "Maintainer GitHub usernames (comma-separated, without @, required if not using teams, e.g., 'octocat,torvalds')", "required": false }, { "id": "enableFunding", "question": "Enable GitHub sponsor button with funding links? (yes/no)", "required": false }, { "id": "githubSponsors", "question": "GitHub Sponsors username (optional, leave blank if not using GitHub Sponsors)", "required": false }, { "id": "openCollective", "question": "Open Collective project slug (optional, e.g., 'webpack', 'babel')", "required": false }, { "id": "patreon", "question": "Patreon username (optional, leave blank if not using Patreon)", "required": false }, { "id": "kofi", "question": "Ko-fi username (optional, leave blank if not using Ko-fi)", "required": false }, { "id": "tidelift", "question": "Tidelift package name (optional, format: npm/package-name or pypi/package-name)", "required": false }, { "id": "customFunding", "question": "Custom funding URL (optional, leave blank if not using custom funding link)", "required": false } ], "conditionalFiles": { ".github/FUNDING.yml": { "condition": "enableFunding === 'yes' || enableFunding === 'true' || enableFunding === true", "reason": "FUNDING.yml is only generated when funding/sponsorship is enabled" } } }, "github-security": { "files": [".github/workflows/scorecard.yml"], "questions": [ { "id": "githubOrg", "question": "GitHub organization or username (e.g., 'kubernetes', 'octocat')", "required": true }, { "id": "githubRepo", "question": "GitHub repository name (e.g., 'kubernetes', 'hello-world')", "required": true }, { "id": "defaultBranch", "question": "What is your default branch name? (e.g., main, master)", "required": true }, { "id": "scheduleCron", "question": "Cron expression for when to run security analysis (standard 5-field cron syntax). Examples: '30 1 * * 6' (weekly on Saturdays at 1:30 AM UTC), '30 1 * * *' (daily at 1:30 AM UTC), '30 1 1 * *' (monthly on 1st at 1:30 AM UTC). Recommended: weekly", "required": true }, { "id": "scheduleDescription", "question": "Human-readable description of the schedule (e.g., 'Weekly on Saturdays at 1:30 AM UTC', 'Daily at 1:30 AM UTC')", "required": true }, { "id": "publishResults", "question": "Publish results to enable Scorecard badge and REST API access? (true/false - recommended: true for public repos)", "required": true }, { "id": "isPrivateRepo", "question": "Is this a private repository? (yes/no) - Private repos need additional permissions to detect SAST tools and query commits", "required": true } ], "additionalInstructions": "If you enabled publish_results: true, you can add an OpenSSF Scorecard badge to your README.md to display your security score:\n\n[![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/{{githubOrg}}/{{githubRepo}}/badge)](https://scorecard.dev/viewer/?uri=github.com/{{githubOrg}}/{{githubRepo}})\n\nThe badge will display your repository's security score and link to detailed results at https://scorecard.dev/viewer/?uri=github.com/{{githubOrg}}/{{githubRepo}}" }, "github-automation": { "files": ["renovate.json", ".github/labeler.yml", ".github/workflows/labeler.yml", ".github/workflows/stale.yml"], "questions": [ { "id": "prConcurrentLimit", "question": "Maximum number of concurrent pull requests for Renovate (recommended: 3-10, leave empty for default: 10)", "required": false }, { "id": "prHourlyLimit", "question": "Maximum PRs per hour for Renovate (0 for unlimited, recommended: 2-5, leave empty for default: 0)", "required": false }, { "id": "enableDependencyDashboard", "question": "Enable Renovate dependency dashboard issue? (true/false - shows all pending updates in one place, leave empty for default: true)", "required": false }, { "id": "enableVulnerabilityAlerts", "question": "Enable Renovate OSV vulnerability alerts? (true/false - checks dependencies for known vulnerabilities, leave empty for default: true)", "required": false }, { "id": "schedule", "question": "Schedule for Renovate dependency checks (text format like 'before 5am on monday', 'after 10pm every weekday', 'every weekend', leave empty for default: 'before 5am on monday')", "required": false }, { "id": "groupDependencies", "question": "Group non-major dependencies into single PRs in Renovate? (true/false - reduces PR volume, leave empty for default: true)", "required": false }, { "id": "automergeMinor", "question": "Auto-merge minor and patch updates in Renovate? (true/false - automatically merges non-breaking updates, leave empty for default: false)", "required": false }, { "id": "automergeSecurity", "question": "Auto-merge security updates in Renovate? (true/false - automatically merges security patches, leave empty for default: false)", "required": false }, { "id": "sourceDirectory", "question": "Source code directory for labeler (optional, e.g., 'src', 'lib'). Leave empty if no specific source directory", "required": false }, { "id": "testDirectory", "question": "Test directory for labeler (optional, e.g., 'tests', 'test', '__tests__'). Leave empty if tests follow common patterns", "required": false }, { "id": "infrastructureDirectory", "question": "Infrastructure directory for labeler (optional, e.g., 'infrastructure', 'deploy'). Leave empty if using common patterns (terraform/, k8s/, etc.)", "required": false }, { "id": "staleBotSchedule", "question": "Cron schedule for stale bot (e.g., '0 0 * * *' for daily at midnight, leave empty for default: '0 0 * * *')", "required": false }, { "id": "daysBeforeIssueStale", "question": "Days before marking issue as stale (recommended: 60-90, leave empty for default: 60)", "required": false }, { "id": "daysBeforeIssueClose", "question": "Days before closing stale issue (recommended: 7-14, leave empty for default: 7)", "required": false }, { "id": "daysBeforePrStale", "question": "Days before marking PR as stale (recommended: 30-60, leave empty for default: 30)", "required": false }, { "id": "daysBeforePrClose", "question": "Days before closing stale PR (recommended: 7-14, leave empty for default: 7)", "required": false }, { "id": "exemptIssueLabels", "question": "Issue labels that exempt from stale bot (comma-separated, e.g., 'pinned,security,bug,needs-maintainer-response', leave empty for default: 'pinned,security')", "required": false }, { "id": "exemptPrLabels", "question": "PR labels that exempt from stale bot (comma-separated, e.g., 'pinned,security,work-in-progress', leave empty for default: 'pinned,security')", "required": false }, { "id": "exemptMilestones", "question": "Exempt issues/PRs in milestones from stale bot? (true/false, leave empty for default: true)", "required": false }, { "id": "exemptAssignees", "question": "Exempt assigned issues/PRs from stale bot? (true/false, leave empty for default: true)", "required": false } ] } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/vfarcic/dot-ai'

If you have feedback or need assistance with the MCP directory API, please join our Discord server