Skip to content

Commit 20881b5

Browse files
author
Mark IJbema
authored
Merge pull request #13 from Kilo-Org/mark/rename-generate-marketplace
Use actual modes used in production, split up mcps, use same structure as skills
2 parents 98f5ba9 + 357314f commit 20881b5

72 files changed

Lines changed: 5480 additions & 2235 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/generate-marketplace.yml

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@ name: Generate Marketplace
22

33
on:
44
pull_request:
5-
paths:
6-
- "skills/**"
7-
- "bin/**"
85

96
permissions:
107
contents: write
@@ -36,14 +33,22 @@ jobs:
3633
run: pnpm install
3734
working-directory: bin
3835

39-
- name: Generate marketplace.yaml
40-
run: pnpm exec tsx generate-marketplace.ts
36+
- name: Generate skills marketplace.yaml
37+
run: pnpm exec tsx generate-skill-marketplace.ts
38+
working-directory: bin
39+
40+
- name: Generate modes marketplace.yaml
41+
run: pnpm exec tsx generate-modes-marketplace.ts
42+
working-directory: bin
43+
44+
- name: Generate mcps marketplace.yaml
45+
run: pnpm exec tsx generate-mcps-marketplace.ts
4146
working-directory: bin
4247

4348
- name: Check for changes
4449
id: changes
4550
run: |
46-
if git diff --quiet skills/marketplace.yaml; then
51+
if git diff --quiet skills/marketplace.yaml modes/marketplace.yaml mcps/marketplace.yaml; then
4752
echo "changed=false" >> $GITHUB_OUTPUT
4853
else
4954
echo "changed=true" >> $GITHUB_OUTPUT
@@ -54,6 +59,6 @@ jobs:
5459
run: |
5560
git config --local user.email "github-actions[bot]@users.noreply.github.com"
5661
git config --local user.name "github-actions[bot]"
57-
git add skills/marketplace.yaml
62+
git add skills/marketplace.yaml modes/marketplace.yaml mcps/marketplace.yaml
5863
git commit -m "chore: regenerate marketplace.yaml"
5964
git push

bin/generate-mcps-marketplace.ts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#!/usr/bin/env npx tsx
2+
/**
3+
* Generate marketplace.yaml from individual MCP directories.
4+
*
5+
* Usage: npx tsx bin/generate-mcps-marketplace.ts
6+
*/
7+
8+
import * as fs from "fs";
9+
import * as path from "path";
10+
import { fileURLToPath } from "url";
11+
import * as yaml from "yaml";
12+
import { Document } from "yaml";
13+
14+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
15+
const mcpsDir = path.join(__dirname, "..", "mcps");
16+
17+
const items = fs
18+
.readdirSync(mcpsDir, { withFileTypes: true })
19+
.filter((d) => d.isDirectory() && !d.name.startsWith("."))
20+
.map((dir) => {
21+
const content = fs.readFileSync(path.join(mcpsDir, dir.name, "MCP.yaml"), "utf-8");
22+
const mcp = yaml.parse(content);
23+
console.log(`Added: ${mcp.name}`);
24+
return mcp;
25+
})
26+
.sort((a, b) => a.id.localeCompare(b.id));
27+
28+
const doc = new Document({ items });
29+
const output = doc.toString({ lineWidth: 120 });
30+
31+
fs.writeFileSync(path.join(mcpsDir, "marketplace.yaml"), output);
32+
33+
console.log(`\nGenerated marketplace.yaml with ${items.length} MCPs`);

bin/generate-modes-marketplace.ts

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
#!/usr/bin/env npx tsx
2+
/**
3+
* Generate marketplace.yaml from individual mode directories.
4+
*
5+
* Usage: npx tsx bin/generate-modes-marketplace.ts
6+
*/
7+
8+
import * as fs from "fs";
9+
import * as path from "path";
10+
import { fileURLToPath } from "url";
11+
import * as yaml from "yaml";
12+
import { Document } from "yaml";
13+
14+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
15+
const modesDir = path.join(__dirname, "..", "modes");
16+
17+
const items = fs
18+
.readdirSync(modesDir, { withFileTypes: true })
19+
.filter((d) => d.isDirectory() && !d.name.startsWith("."))
20+
.map((dir) => {
21+
const content = fs.readFileSync(path.join(modesDir, dir.name, "MODE.yaml"), "utf-8");
22+
const mode = yaml.parse(content);
23+
console.log(`Added: ${mode.name}`);
24+
return mode;
25+
})
26+
.sort((a, b) => a.id.localeCompare(b.id));
27+
28+
const doc = new Document({ items });
29+
const output = doc.toString({ lineWidth: 120 });
30+
31+
fs.writeFileSync(path.join(modesDir, "marketplace.yaml"), output);
32+
33+
console.log(`\nGenerated marketplace.yaml with ${items.length} modes`);
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
/**
33
* Generate marketplace.yaml from skill SKILL.md frontmatter.
44
*
5-
* Usage: npx tsx bin/generate-marketplace.ts
5+
* Usage: npx tsx bin/generate-skill-marketplace.ts
66
*/
77

88
import * as fs from "fs";

mcps/apify/MCP.yaml

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
id: apify
2+
name: Apify Actors
3+
description: Enables AI assistants to interact with Apify's web scraping and automation actors, providing access to
4+
tools for data extraction, web searching, social media analysis, and more.
5+
author: apify
6+
url: https://github.com/apify/actors-mcp-server
7+
tags:
8+
- web-scraping
9+
- data-extraction
10+
- automation
11+
- actor-management
12+
- apify-platform
13+
content:
14+
- name: NPX
15+
prerequisites:
16+
- Node.js
17+
content: |
18+
{
19+
"command": "npx",
20+
"args": ["-y", "@apify/actors-mcp-server"],
21+
"env": {
22+
"APIFY_TOKEN": "{{APIFY_TOKEN}}"
23+
}
24+
}
25+
- name: NPX with Specific Actors
26+
prerequisites:
27+
- Node.js
28+
content: |
29+
{
30+
"command": "npx",
31+
"args": ["-y", "@apify/actors-mcp-server", "--actors", "{{ACTOR_LIST}}"],
32+
"env": {
33+
"APIFY_TOKEN": "{{APIFY_TOKEN}}"
34+
}
35+
}
36+
parameters:
37+
- name: Actor List
38+
key: ACTOR_LIST
39+
placeholder: lukaskrivka/google-maps-with-contact-details,apify/instagram-scraper
40+
- name: Remote MCP - SSE
41+
content: |
42+
{
43+
"type": "sse",
44+
"url": "https://actors-mcp-server.apify.actor/sse",
45+
"env": {
46+
"APIFY_TOKEN": "{{APIFY_TOKEN}}"
47+
}
48+
}
49+
parameters:
50+
- name: Apify API Token
51+
key: APIFY_TOKEN
52+
placeholder: your_apify_api_token

mcps/atlassian/MCP.yaml

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
id: atlassian
2+
name: Atlassian
3+
description: Comprehensive MCP server for Atlassian tools (Confluence and Jira) supporting both Cloud and Server/Data
4+
Center deployments with multiple authentication methods including API tokens, Personal Access Tokens, and OAuth 2.0.
5+
author: sooperset
6+
url: https://github.com/sooperset/mcp-atlassian
7+
tags:
8+
- atlassian
9+
- jira
10+
- confluence
11+
- project-management
12+
- issue-tracking
13+
- documentation
14+
- collaboration
15+
- oauth
16+
- api-integration
17+
prerequisites:
18+
- Docker
19+
- Atlassian account (Cloud or Server/Data Center)
20+
content:
21+
- name: Docker
22+
prerequisites:
23+
- Docker
24+
- Atlassian Cloud account
25+
content: >
26+
{
27+
"command": "docker",
28+
"args": ["run", "-i", "--rm", "-e", "CONFLUENCE_URL", "-e", "CONFLUENCE_USERNAME", "-e", "CONFLUENCE_API_TOKEN", "-e", "JIRA_URL", "-e", "JIRA_USERNAME", "-e", "JIRA_API_TOKEN", "ghcr.io/sooperset/mcp-atlassian@sha256:27c8e5b890e16134a443f49683eaa794fdb48ed5bef785c1b4c88a0cd729df56"],
29+
"env": {
30+
"CONFLUENCE_URL": "{{CONFLUENCE_URL}}",
31+
"CONFLUENCE_USERNAME": "{{CONFLUENCE_USERNAME}}",
32+
"CONFLUENCE_API_TOKEN": "{{CONFLUENCE_API_TOKEN}}",
33+
"JIRA_URL": "{{JIRA_URL}}",
34+
"JIRA_USERNAME": "{{JIRA_USERNAME}}",
35+
"JIRA_API_TOKEN": "{{JIRA_API_TOKEN}}"
36+
}
37+
}
38+
parameters:
39+
- name: Confluence URL
40+
key: CONFLUENCE_URL
41+
placeholder: https://your-company.atlassian.net/wiki
42+
- name: Confluence Username
43+
key: CONFLUENCE_USERNAME
44+
placeholder: your.email@company.com
45+
- name: Confluence API Token
46+
key: CONFLUENCE_API_TOKEN
47+
placeholder: your_confluence_api_token
48+
- name: Jira URL
49+
key: JIRA_URL
50+
placeholder: https://your-company.atlassian.net
51+
- name: Jira Username
52+
key: JIRA_USERNAME
53+
placeholder: your.email@company.com
54+
- name: Jira API Token
55+
key: JIRA_API_TOKEN
56+
placeholder: your_jira_api_token
57+
- name: UVX
58+
prerequisites:
59+
- Python and uv
60+
content: >
61+
{
62+
"command": "uvx",
63+
"args": ["--from", "mcp-atlassian==0.11.9", "--hash", "sha256:1ba6a171b5299e554d4e0eff98279e74cdc4eb1c12c8e62be924103d9cd38e5e", "mcp-atlassian"],
64+
"env": {
65+
"CONFLUENCE_URL": "{{CONFLUENCE_URL}}",
66+
"CONFLUENCE_USERNAME": "{{CONFLUENCE_USERNAME}}",
67+
"CONFLUENCE_API_TOKEN": "{{CONFLUENCE_API_TOKEN}}",
68+
"JIRA_URL": "{{JIRA_URL}}",
69+
"JIRA_USERNAME": "{{JIRA_USERNAME}}",
70+
"JIRA_API_TOKEN": "{{JIRA_API_TOKEN}}"
71+
}
72+
}
73+
parameters:
74+
- name: Confluence URL
75+
key: CONFLUENCE_URL
76+
placeholder: https://your-company.atlassian.net/wiki
77+
- name: Confluence Username
78+
key: CONFLUENCE_USERNAME
79+
placeholder: your.email@company.com
80+
- name: Confluence API Token
81+
key: CONFLUENCE_API_TOKEN
82+
placeholder: your_confluence_api_token
83+
- name: Jira URL
84+
key: JIRA_URL
85+
placeholder: https://your-company.atlassian.net
86+
- name: Jira Username
87+
key: JIRA_USERNAME
88+
placeholder: your.email@company.com
89+
- name: Jira API Token
90+
key: JIRA_API_TOKEN
91+
placeholder: your_jira_api_token
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
id: aws-kb-retrieval-server
2+
name: AWS Knowledge Base
3+
description: Retrieves information from AWS Knowledge Base using Bedrock Agent Runtime, supporting RAG-based queries
4+
with customizable result counts.
5+
author: modelcontextprotocol
6+
url: https://github.com/modelcontextprotocol/servers-archived/tree/main/src/aws-kb-retrieval-server
7+
tags:
8+
- aws
9+
- bedrock
10+
- rag
11+
- knowledge-retrieval
12+
- search
13+
content:
14+
- name: NPX
15+
prerequisites:
16+
- Node.js
17+
content: |
18+
{
19+
"command": "npx",
20+
"args": ["-y", "@modelcontextprotocol/server-aws-kb-retrieval"],
21+
"env": {
22+
"AWS_ACCESS_KEY_ID": "{{AWS_ACCESS_KEY_ID}}",
23+
"AWS_SECRET_ACCESS_KEY": "{{AWS_SECRET_ACCESS_KEY}}",
24+
"AWS_REGION": "{{AWS_REGION}}"
25+
}
26+
}
27+
- name: Docker
28+
prerequisites:
29+
- Docker
30+
content: >
31+
{
32+
"command": "docker",
33+
"args": ["run", "-i", "--rm", "-e", "AWS_ACCESS_KEY_ID", "-e", "AWS_SECRET_ACCESS_KEY", "-e", "AWS_REGION", "mcp/aws-kb-retrieval-server"],
34+
"env": {
35+
"AWS_ACCESS_KEY_ID": "{{AWS_ACCESS_KEY_ID}}",
36+
"AWS_SECRET_ACCESS_KEY": "{{AWS_SECRET_ACCESS_KEY}}",
37+
"AWS_REGION": "{{AWS_REGION}}"
38+
}
39+
}
40+
parameters:
41+
- name: AWS Access Key ID
42+
key: AWS_ACCESS_KEY_ID
43+
placeholder: your_aws_access_key_id
44+
- name: AWS Secret Access Key
45+
key: AWS_SECRET_ACCESS_KEY
46+
placeholder: your_aws_secret_access_key
47+
- name: AWS Region
48+
key: AWS_REGION
49+
placeholder: us-east-1

mcps/axiom/MCP.yaml

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
id: axiom
2+
name: Axiom
3+
description: Query and analyze data using Axiom Processing Language (APL), enabling AI agents to interact with Axiom
4+
datasets through natural language.
5+
author: axiomhq
6+
url: https://github.com/axiomhq/mcp-server-axiom
7+
tags:
8+
- data-query
9+
- log-analysis
10+
- apl
11+
- datasets
12+
- analytics
13+
content:
14+
- name: Go Binary
15+
content: |
16+
{
17+
"command": "{{AXIOM_BINARY_PATH}}/axiom-mcp",
18+
"args": ["--config", "{{AXIOM_CONFIG_PATH}}"]
19+
}
20+
parameters:
21+
- name: Axiom Config Path
22+
key: AXIOM_CONFIG_PATH
23+
placeholder: /path/to/config.txt
24+
- name: Go Binary with Environment Variables
25+
content: |
26+
{
27+
"command": "{{AXIOM_BINARY_PATH}}/axiom-mcp",
28+
"env": {
29+
"AXIOM_TOKEN": "{{AXIOM_TOKEN}}",
30+
"AXIOM_URL": "{{AXIOM_URL}}",
31+
"AXIOM_ORG_ID": "{{AXIOM_ORG_ID}}"
32+
}
33+
}
34+
- name: Go Binary with Command Line Flags
35+
content: |
36+
{
37+
"command": "{{AXIOM_BINARY_PATH}}/axiom-mcp",
38+
"args": [
39+
"-token", "{{AXIOM_TOKEN}}",
40+
"-url", "{{AXIOM_URL}}",
41+
"-query-rate", "1",
42+
"-query-burst", "1",
43+
"-datasets-rate", "1",
44+
"-datasets-burst", "1"
45+
]
46+
}
47+
parameters:
48+
- name: Axiom Binary Path
49+
key: AXIOM_BINARY_PATH
50+
placeholder: /path/to/axiom-mcp
51+
- name: Axiom Token
52+
key: AXIOM_TOKEN
53+
placeholder: xaat-your-token
54+
- name: Axiom URL
55+
key: AXIOM_URL
56+
placeholder: https://api.axiom.co
57+
- name: Axiom Org ID
58+
key: AXIOM_ORG_ID
59+
placeholder: your-org-id
60+
optional: true

0 commit comments

Comments
 (0)