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 = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
};
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
nix-npm-buildpackage.url = "github:serokell/nix-npm-buildpackage";
|
||||
|
||||
outputs = { self, nixpkgs, ... }@inputs:
|
||||
inputs.flake-utils.lib.eachDefaultSystem (system:
|
||||
let
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
in
|
||||
{
|
||||
# nix fmt formatter
|
||||
formatter = nixpkgs.legacyPackages.${system}.nixpkgs-fmt;
|
||||
mcp-servers.url = "github:modelcontextprotocol/servers/main";
|
||||
};
|
||||
|
||||
# default devshell
|
||||
devShells.default = nixpkgs.legacyPackages.${system}.mkShell {
|
||||
packages = [
|
||||
pkgs.pre-commit
|
||||
pkgs.go-task
|
||||
];
|
||||
outputs = { self, nixpkgs, ... }@inputs:
|
||||
inputs.flake-utils.lib.eachDefaultSystem (system:
|
||||
let
|
||||
pkgs = nixpkgs.legacyPackages.${system}.extend(
|
||||
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
|
||||
# or running a command
|
||||
shellHook = ''
|
||||
'';
|
||||
};
|
||||
}
|
||||
);
|
||||
overlays.default = final: prev: {
|
||||
mcp-servers = mcp-servers-pkg;
|
||||
};
|
||||
|
||||
# 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