init commit

This commit is contained in:
2025-03-14 13:44:47 -05:00
parent b3e06c56a0
commit f48b9541df
4 changed files with 127 additions and 28 deletions

24
CLAUDE.md Normal file
View 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

View File

@@ -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
View 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
}

View File

@@ -1,25 +1,39 @@
{
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";
nix-npm-buildpackage.url = "github:serokell/nix-npm-buildpackage";
mcp-servers.url = "github:modelcontextprotocol/servers/main";
};
outputs = { self, nixpkgs, ... }@inputs:
inputs.flake-utils.lib.eachDefaultSystem (system:
let
pkgs = nixpkgs.legacyPackages.${system};
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;
overlays.default = final: prev: {
mcp-servers = mcp-servers-pkg;
};
# default devshell
devShells.default = nixpkgs.legacyPackages.${system}.mkShell {
packages = [
pkgs.pre-commit
pkgs.go-task
pkgs.uv
pkgs.nodejs
];
# Will be executed before entering the shell