1{
2 lib,
3 fetchFromGitHub,
4 buildGoModule,
5 versionCheckHook,
6 nix-update-script,
7}:
8
9buildGoModule (finalAttrs: {
10 pname = "emcee";
11 version = "0.5.1";
12
13 src = fetchFromGitHub {
14 owner = "loopwork-ai";
15 repo = "emcee";
16 tag = "v${finalAttrs.version}";
17 hash = "sha256-ri/4Xxc6QgGqsARI5c2JjVeEe5lOmi/c+B3+vUvW6ow=";
18 };
19
20 vendorHash = "sha256-B8shxh1fLdIR7TN0mSugu9wFNShmrb1WBzCArHVVnoU=";
21
22 ldflags = [
23 "-X main.version=${finalAttrs.version}"
24 ];
25
26 __darwinAllowLocalNetworking = true;
27
28 nativeInstallCheckInputs = [
29 versionCheckHook
30 ];
31
32 versionCheckProgramArg = [ "--version" ];
33 doInstallCheck = true;
34
35 passthru.updateScript = nix-update-script { };
36
37 meta = {
38 description = "Connect agents to APIs";
39 longDescription = ''
40 emcee is a tool that provides a Model Context Protocol (MCP) server
41 for any web application with an OpenAPI specification.
42 You can use emcee to connect Claude Desktop
43 and other apps to external tools and data services, similar to ChatGPT plugins.
44 '';
45 homepage = "https://github.com/loopwork-ai/emcee";
46 changelog = "https://github.com/loopwork-ai/emcee/releases/tag/v${finalAttrs.version}";
47 license = lib.licenses.asl20;
48 maintainers = with lib.maintainers; [ genga898 ];
49 mainProgram = "emcee";
50 };
51})