1
+ {
2
+ description = "MCP Language Server - A Model Context Protocol server that runs and exposes a language server to LLMs" ;
3
+
4
+ inputs = {
5
+ nixpkgs . url = "github:NixOS/nixpkgs/nixos-unstable" ;
6
+ flake-utils . url = "github:numtide/flake-utils" ;
7
+ } ;
8
+
9
+ outputs = { self , nixpkgs , flake-utils } :
10
+ flake-utils . lib . eachDefaultSystem ( system :
11
+ let
12
+ pkgs = nixpkgs . legacyPackages . ${ system } ;
13
+ in
14
+ {
15
+ packages . default = pkgs . buildGoModule rec {
16
+ pname = "mcp-language-server" ;
17
+ version = "0.1.0" ;
18
+
19
+ src = ./. ;
20
+
21
+ vendorHash = "sha256-WcYKtM8r9xALx68VvgRabMPq8XnubhTj6NAdtmaPa+g=" ;
22
+
23
+ # Only build the main package
24
+ subPackages = [ "." ] ;
25
+
26
+ ldflags = [
27
+ "-s"
28
+ "-w"
29
+ "-X main.version=${ version } "
30
+ ] ;
31
+
32
+ meta = with pkgs . lib ; {
33
+ description = "MCP server that runs and exposes a language server to LLMs" ;
34
+ homepage = "https://github.com/isaacphi/mcp-language-server" ;
35
+ license = licenses . bsd3 ;
36
+ maintainers = [ ] ;
37
+ platforms = platforms . unix ;
38
+ } ;
39
+
40
+ # Skip tests for now as they require external language servers
41
+ doCheck = false ;
42
+ } ;
43
+
44
+ apps . default = {
45
+ type = "app" ;
46
+ program = "${ self . packages . ${ system } . default } /bin/mcp-language-server" ;
47
+ } ;
48
+
49
+ devShells . default = pkgs . mkShell {
50
+ buildInputs = with pkgs ; [
51
+ go
52
+ gopls
53
+ golangci-lint
54
+ delve
55
+ just
56
+ ] ;
57
+
58
+ shellHook = ''
59
+ echo "MCP Language Server development shell"
60
+ echo "Available commands:"
61
+ echo " go build - Build the binary"
62
+ echo " go test - Run tests"
63
+ echo " just -l - List available just recipes"
64
+ '' ;
65
+ } ;
66
+ } ) ;
67
+ }
0 commit comments