File tree Expand file tree Collapse file tree 5 files changed +237
-0
lines changed Expand file tree Collapse file tree 5 files changed +237
-0
lines changed Original file line number Diff line number Diff line change @@ -21,6 +21,9 @@ wheels/
21
21
.installed.cfg
22
22
* .egg
23
23
24
+ # Nix Build
25
+ result
26
+
24
27
# Virtual environments
25
28
.venv
26
29
venv /
Original file line number Diff line number Diff line change
1
+ # MCPM Nix Packaging
2
+
3
+ This repository contains Nix packaging for MCPM (Model Context Protocol Manager).
4
+
5
+ ## Using with Nix Flakes
6
+
7
+ If you have flakes enabled, you can use this package directly:
8
+
9
+ ``` bash
10
+ # Run MCPM directly
11
+ nix run .
12
+
13
+ # Install MCPM to your profile
14
+ nix profile install github:pathintegral-institute/mcpm.sh
15
+
16
+ # Enter a development shell
17
+ nix develop .
18
+ ```
19
+
20
+ ## Building from Source
21
+
22
+ To build the package from source:
23
+
24
+ 1 . Clone the repository:
25
+ ``` bash
26
+ git clone https://github.com/pathintegral-institute/mcpm.sh
27
+ cd mcpm.sh
28
+ ```
29
+
30
+ 2 . Build the package:
31
+ ``` bash
32
+ nix build
33
+ ```
34
+
35
+ 3 . Run the built package:
36
+ ``` bash
37
+ ./result/bin/mcpm --help
38
+ ```
39
+
40
+ ## Notes
41
+
42
+ - The nix package requires Python 3.12 or higher.
43
+
Original file line number Diff line number Diff line change
1
+ {
2
+ lib ,
3
+ python3 ,
4
+ } :
5
+
6
+ let
7
+ # Use Python 3.12
8
+ python = python3 ; # pkgs.python312;
9
+
10
+ # Override Python to include our custom packages
11
+ pythonWithPackages = python . override {
12
+ packageOverrides = self : super : {
13
+ # Add our custom packages
14
+ } ;
15
+ } ;
16
+ in
17
+ pythonWithPackages . pkgs . buildPythonApplication rec {
18
+ pname = "mcpm" ;
19
+ version = "1.13.1" ; # From src/mcpm/version.py
20
+
21
+ src = ./. ; # Use the local directory as the source
22
+
23
+ format = "pyproject" ;
24
+
25
+ nativeBuildInputs = with pythonWithPackages . pkgs ; [
26
+ hatchling
27
+ setuptools
28
+ wheel
29
+ pip
30
+ ] ;
31
+
32
+ propagatedBuildInputs = with pythonWithPackages . pkgs ; [
33
+ # Core dependencies from pyproject.toml
34
+ click
35
+ rich
36
+ requests
37
+ pydantic
38
+ duckdb
39
+ psutil
40
+ prompt-toolkit
41
+ deprecated
42
+
43
+ # dependencies only available for Python>=3.12 on nixpkgs
44
+ mcp
45
+ ruamel-yaml
46
+ watchfiles
47
+
48
+ # Additional dependencies that might be needed
49
+ typer
50
+ httpx
51
+ anyio
52
+ fastapi
53
+ uvicorn
54
+ websockets
55
+ jinja2
56
+ pyyaml
57
+ toml
58
+ python-dotenv
59
+ packaging
60
+ colorama
61
+ ] ;
62
+
63
+ # Disable tests for now
64
+ #doCheck = false;
65
+
66
+ meta = with lib ; {
67
+ description = "MCPM - Model Context Protocol Manager" ;
68
+ homepage = "https://mcpm.sh" ;
69
+ license = licenses . mit ;
70
+ maintainers = with maintainers ; [ luochen1990 ] ;
71
+ mainProgram = "mcpm" ;
72
+ } ;
73
+ }
Original file line number Diff line number Diff line change
1
+ {
2
+ description = "MCPM - Model Context Protocol Manager" ;
3
+
4
+ inputs = {
5
+ nixpkgs . url = "github:NixOS/nixpkgs/nixos-unstable" ;
6
+ flake-utils . url = "github:numtide/flake-utils" ;
7
+ } ;
8
+
9
+ outputs =
10
+ {
11
+ self ,
12
+ nixpkgs ,
13
+ flake-utils ,
14
+ ...
15
+ } :
16
+ flake-utils . lib . eachDefaultSystem (
17
+ system :
18
+ let
19
+ pkgs = import nixpkgs {
20
+ inherit system ;
21
+ config = {
22
+ allowUnfree = true ;
23
+ permittedInsecurePackages = [ ] ;
24
+ } ;
25
+ } ;
26
+ in
27
+ {
28
+ packages = {
29
+ default = pkgs . callPackage ./default.nix { } ;
30
+ } ;
31
+
32
+ apps . default = flake-utils . lib . mkApp {
33
+ drv = self . packages . ${ system } . default ;
34
+ } ;
35
+
36
+ devShells . default = pkgs . mkShell {
37
+ inputsFrom = [ self . packages . ${ system } . default ] ;
38
+
39
+ buildInputs = with pkgs . python3 . pkgs ; [
40
+ self . packages . ${ system } . default
41
+
42
+ # From pyproject.toml's dev dependencies
43
+ ipython
44
+ pytest
45
+ pytest-asyncio
46
+ ruff
47
+ jsonschema
48
+ openai
49
+ ] ;
50
+
51
+ shellHook = ''
52
+ echo "MCPM development environment"
53
+ '' ;
54
+ } ;
55
+ }
56
+ ) ;
57
+ }
You can’t perform that action at this time.
0 commit comments