opencode flake
This commit is contained in:
61
flakes/opencode/flake.nix
Normal file
61
flakes/opencode/flake.nix
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
{
|
||||||
|
description = "OpenCode MCP dev shell";
|
||||||
|
|
||||||
|
inputs.nixpkgs.url = "github:NixOS/nixpkgs";
|
||||||
|
inputs.flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
|
||||||
|
outputs = { self, nixpkgs, flake-utils }:
|
||||||
|
flake-utils.lib.eachDefaultSystem (system:
|
||||||
|
let pkgs = import nixpkgs { inherit system; };
|
||||||
|
in {
|
||||||
|
devShells.default = pkgs.mkShell {
|
||||||
|
buildInputs = [
|
||||||
|
pkgs.bash
|
||||||
|
pkgs.python313Packages.pyppeteer
|
||||||
|
pkgs.glib
|
||||||
|
pkgs.glib.out
|
||||||
|
pkgs.chromium
|
||||||
|
pkgs.uv
|
||||||
|
pkgs.nodejs_22
|
||||||
|
];
|
||||||
|
shellHook = ''
|
||||||
|
export PUPPETEER_EXECUTABLE_PATH=${pkgs.chromium}/bin/chromium
|
||||||
|
export PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH=${pkgs.chromium}/bin/chromium
|
||||||
|
export PLAYWRIGHT_BROWSERS_PATH=0
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
packages.run = pkgs.writeShellScriptBin "run_flake" ''
|
||||||
|
opencode --config ./config.json
|
||||||
|
'';
|
||||||
|
packages.config_json = pkgs.writeTextFile {
|
||||||
|
name = "config.json";
|
||||||
|
text = ''
|
||||||
|
{
|
||||||
|
"mcpServers": {
|
||||||
|
"memory": {
|
||||||
|
"command": "npx",
|
||||||
|
"args": ["-y", "@modelcontextprotocol/server-memory"]
|
||||||
|
},
|
||||||
|
"puppeteer": {
|
||||||
|
"command": "npx",
|
||||||
|
"args": ["-y", "@modelcontextprotocol/server-puppeteer"]
|
||||||
|
},
|
||||||
|
"playwright": {
|
||||||
|
"command": "npx",
|
||||||
|
"args": [
|
||||||
|
"-y",
|
||||||
|
"@playwright/mcp@latest",
|
||||||
|
"--executable-path",
|
||||||
|
"${pkgs.chromium}/bin/chromium"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sequential_thinking": {
|
||||||
|
"command": "npx",
|
||||||
|
"args": ["-y", "@modelcontextprotocol/server-sequential-thinking"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
{
|
|
||||||
"mcpServers": {
|
|
||||||
"memory": {
|
|
||||||
"command": "npx",
|
|
||||||
"args": ["-y", "@modelcontextprotocol/server-memory"]
|
|
||||||
},
|
|
||||||
"puppeteer": {
|
|
||||||
"command": "npx",
|
|
||||||
"args": ["-y", "@modelcontextprotocol/server-puppeteer"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -7,13 +7,45 @@
|
|||||||
outputs = { self, nixpkgs, flake-utils }:
|
outputs = { self, nixpkgs, flake-utils }:
|
||||||
flake-utils.lib.eachDefaultSystem (system:
|
flake-utils.lib.eachDefaultSystem (system:
|
||||||
let
|
let
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
pkgs = import nixpkgs { inherit system; };
|
||||||
|
|
||||||
|
configJsonText = ''
|
||||||
|
{
|
||||||
|
"mcpServers": {
|
||||||
|
"memory": {
|
||||||
|
"command": "npx",
|
||||||
|
"args": ["-y", "@modelcontextprotocol/server-memory"]
|
||||||
|
},
|
||||||
|
"puppeteer": {
|
||||||
|
"command": "npx",
|
||||||
|
"args": ["-y", "@modelcontextprotocol/server-puppeteer"]
|
||||||
|
},
|
||||||
|
"playwright": {
|
||||||
|
"command": "npx",
|
||||||
|
"args": [
|
||||||
|
"-y",
|
||||||
|
"@playwright/mcp@latest",
|
||||||
|
"--executable-path",
|
||||||
|
"${pkgs.chromium}/bin/chromium"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sequential_thinking": {
|
||||||
|
"command": "npx",
|
||||||
|
"args": ["-y", "@modelcontextprotocol/server-sequential-thinking"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
|
||||||
|
config_json = pkgs.writeText "config.json" configJsonText;
|
||||||
|
|
||||||
in {
|
in {
|
||||||
devShells.default = pkgs.mkShell {
|
devShells.default = pkgs.mkShell {
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
pkgs.bash
|
pkgs.bash
|
||||||
pkgs.python313Packages.pyppeteer
|
pkgs.python313Packages.pyppeteer
|
||||||
pkgs.glib
|
pkgs.glib
|
||||||
|
pkgs.glib.out
|
||||||
pkgs.chromium
|
pkgs.chromium
|
||||||
pkgs.uv
|
pkgs.uv
|
||||||
pkgs.nodejs_22
|
pkgs.nodejs_22
|
||||||
@@ -22,8 +54,11 @@
|
|||||||
export PUPPETEER_EXECUTABLE_PATH=${pkgs.chromium}/bin/chromium
|
export PUPPETEER_EXECUTABLE_PATH=${pkgs.chromium}/bin/chromium
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
packages.run = pkgs.writeShellScriptBin "run_flake" ''
|
packages.run = pkgs.writeShellScriptBin "run_flake" ''
|
||||||
uvx mcpo --port 8008 --config ./config.json
|
uvx mcpo --port 8008 --config ${config_json}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
packages.config_json = config_json;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,2 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
# Run MCP server using flake devShell
|
|
||||||
|
|
||||||
nix develop .#default --command run_flake
|
nix run .#run
|
||||||
Reference in New Issue
Block a user