init commit
This commit is contained in:
24
CLAUDE.md
Normal file
24
CLAUDE.md
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
# Claude Helper Guide
|
||||||
|
|
||||||
|
## Build and Development Commands
|
||||||
|
- Format Nix files: `nix fmt`
|
||||||
|
- Enter development shell: `nix develop`
|
||||||
|
- Check Nix flake: `nix flake check`
|
||||||
|
|
||||||
|
## Project Structure
|
||||||
|
This is a Nix flake that bundles several MCP (Model Control Protocol) servers together for easy consumption. It uses:
|
||||||
|
- Node.js for JavaScript-based MCP servers
|
||||||
|
- uv for Python package management (for Python-based MCP servers)
|
||||||
|
|
||||||
|
## Code Style Guidelines
|
||||||
|
- **Nix files**: Format with nixpkgs-fmt (available via `nix fmt`)
|
||||||
|
- **JavaScript/TypeScript**: Follow standard Node.js conventions
|
||||||
|
- **Python**: Use uv for dependency management
|
||||||
|
- **Error handling**: Use appropriate error handling for each language
|
||||||
|
- **Naming**: Use descriptive, clear names that reflect component purpose
|
||||||
|
- **Comments**: Add comments for complex logic or non-obvious implementations
|
||||||
|
|
||||||
|
## Git Workflow
|
||||||
|
- Keep commits small and focused on a single change
|
||||||
|
- Write descriptive commit messages explaining the "why" not just the "what"
|
||||||
|
- Test changes locally before committing
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
Base (change name for new project)
|
flake that bundles together a few MCPs for easy consumption
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
Basic test that this works, nothing else.
|
Nix flake that bundles together some node and uv based mcp servers
|
||||||
|
|||||||
61
flake.lock
generated
Normal file
61
flake.lock
generated
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731533236,
|
||||||
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1741851582,
|
||||||
|
"narHash": "sha256-cPfs8qMccim2RBgtKGF+x9IBCduRvd/N5F4nYpU0TVE=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "6607cf789e541e7873d40d3a8f7815ea92204f32",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
66
flake.nix
66
flake.nix
@@ -1,32 +1,46 @@
|
|||||||
{
|
{
|
||||||
description = "Basic flake and files - change me";
|
description = "Flake that contains an overlay with some mcp servers";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
||||||
flake-utils.url = "github:numtide/flake-utils";
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
};
|
nix-npm-buildpackage.url = "github:serokell/nix-npm-buildpackage";
|
||||||
|
|
||||||
outputs = { self, nixpkgs, ... }@inputs:
|
mcp-servers.url = "github:modelcontextprotocol/servers/main";
|
||||||
inputs.flake-utils.lib.eachDefaultSystem (system:
|
};
|
||||||
let
|
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
# nix fmt formatter
|
|
||||||
formatter = nixpkgs.legacyPackages.${system}.nixpkgs-fmt;
|
|
||||||
|
|
||||||
# default devshell
|
outputs = { self, nixpkgs, ... }@inputs:
|
||||||
devShells.default = nixpkgs.legacyPackages.${system}.mkShell {
|
inputs.flake-utils.lib.eachDefaultSystem (system:
|
||||||
packages = [
|
let
|
||||||
pkgs.pre-commit
|
pkgs = nixpkgs.legacyPackages.${system}.extend(
|
||||||
pkgs.go-task
|
nixpkgs.lib.composeManyExtensions([
|
||||||
];
|
inputs.nix-npm-buildpackage.overlays.default
|
||||||
|
] ++ builtins.attrValues self.overlays)
|
||||||
|
);
|
||||||
|
mcp-servers-pkg = pkgs.buildNpmPackage {
|
||||||
|
src = inputs.mcp-servers;
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
# nix fmt formatter
|
||||||
|
formatter = nixpkgs.legacyPackages.${system}.nixpkgs-fmt;
|
||||||
|
|
||||||
# Will be executed before entering the shell
|
overlays.default = final: prev: {
|
||||||
# or running a command
|
mcp-servers = mcp-servers-pkg;
|
||||||
shellHook = ''
|
};
|
||||||
'';
|
|
||||||
};
|
# default devshell
|
||||||
}
|
devShells.default = nixpkgs.legacyPackages.${system}.mkShell {
|
||||||
);
|
packages = [
|
||||||
|
pkgs.uv
|
||||||
|
pkgs.nodejs
|
||||||
|
];
|
||||||
|
|
||||||
|
# Will be executed before entering the shell
|
||||||
|
# or running a command
|
||||||
|
shellHook = ''
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user