Token导航 LogoToken导航TokenDH.com
Hangfire MCP logo
AI代理未说明官方级别未说明来源级核验

Hangfire MCP

MCP Server

Hangfire MCP 是一个基于 MCP 协议的后台作业队列服务,允许从支持 MCP 协议的客户端(如 VS Code)直接排队作业,无需编写额外代码。适用于需要动态加载和执行后台任务的场景。

工具数

1

提示词数

0

GitHub Stars

6

资源数

0
C#VS CodeAI代理VS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

NikiforovAll

提供方

NikiforovAll

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Hangfire MCP ![Build](https://github.com/NikiforovAll/hangfire-mcp/actions/workflows/build.yml)

使用Hangfire MCP服务器取消后台作业队列。

动机

与的交互 *航火* 使用 *Hangfire MCP服务器* 允许您从任何支持MCP协议的客户端将作业排队。 例如,您可以直接从以下位置使用Hangfire MCP *VS代码* 在……里面 *代理模式* 以及排队作业。它可以在不编写额外代码的情况下执行任何类型的代码。

以下是VS代码的MCP服务器配置:

{
    "servers": {
        "hangfire-mcp": {
            "url": "http://localhost:3001"
        }
    }
}

代码示例

其工作原理如下:

sequenceDiagram
    participant User as User
    participant MCPHangfire as MCP Hangfire
    participant IBackgroundJobClient as IBackgroundJobClient
    participant Database as Database
    participant HangfireServer as Hangfire Server

    User->>MCPHangfire: Enqueue Job
    MCPHangfire->>IBackgroundJobClient: Send Job Message
    IBackgroundJobClient->>Database: Store Job Message
    HangfireServer->>Database: Fetch Job Message
    HangfireServer->>HangfireServer: Process Job

单独模式

它是一个常规的MCP包装。NET全局工具。以下是如何在VSCode中将其设置为MCP服务器。

 dotnet tool install --global --add-source Nall.HangfireMCP

配置:

{
  "servers": {
    "hangfire-mcp-standalone": {
      "type": "stdio",
      "command": "HangfireMCP",
      "args": [
        "--stdio"
      ],
      "env": {
        "HANGFIRE_JOBS_ASSEMBLY": "path/to/Jobs.dll",
        "HANGFIRE_JOBS_MATCH_EXPRESSION": "[?IsInterface && contains(Name, 'Job')]",
        "HANGFIRE_CONNECTION_STRING": "Host=localhost;Port=5432;Username=postgres;Password=postgres;Database=hangfire"
      }
    }
  }
}

渴望

var builder = DistributedApplication.CreateBuilder(args);

var postgresServer = builder
    .AddPostgres("postgres-server")
    .WithDataVolume()
    .WithLifetime(ContainerLifetime.Persistent);

var postgresDatabase = postgresServer.AddDatabase("hangfire");

builder.AddProject
("server")
    .WithReference(postgresDatabase)
    .WaitFor(postgresDatabase);

var mcp = builder
    .AddProject
("hangfire-mcp")
    .WithEnvironment("HANGFIRE_JOBS_ASSEMBLY", "path/to/Jobs.dll")
    .WithEnvironment("HANGFIRE_JOBS_MATCH_EXPRESSION", "[?IsInterface && contains(Name, 'Job')]")
    .WithReference(postgresDatabase)
    .WaitFor(postgresDatabase);

builder
    .AddMCPInspector()
    .WithSSE(mcp)
    .WaitFor(mcp);

builder.Build().Run();

因此,作业从指定的程序集中动态加载,并可以使用MCP协议排队。匹配作业名称的规则可以使用指定 HANGFIRE_JOBS_MATCH_EXPRESSION 环境变量。例如,表达式 [?IsInterface && contains(Name, 'Job')] 将匹配名称中包含“Job”的所有接口。它是一个 JMESPath 表达式,这样您就可以根据需要定义如何匹配作业名称。

自定义设置(作为代码)模式

您可以创建自己的MCP服务器,并将此项目作为起点。您可以使用自己的工具和功能对其进行扩展。下面是一个如何在自定义项目中设置Hangfire MCP服务器的示例。

渴望

var builder = DistributedApplication.CreateBuilder(args);

var postgresServer = builder
    .AddPostgres("postgres-server")
    .WithDataVolume()
    .WithLifetime(ContainerLifetime.Persistent);

var postgresDatabase = postgresServer.AddDatabase("hangfire");

builder.AddProject
("server")
    .WithReference(postgresDatabase)
    .WaitFor(postgresDatabase);

var mcp = builder
    .AddProject
("hangfire-mcp")
    .WithReference(postgresDatabase)
    .WaitFor(postgresDatabase);

builder
    .AddMCPInspector()
    .WithSSE(mcp)
    .WaitFor(mcp);

builder.Build().Run();

Aspire Dashboard

MCP服务器

var builder = WebApplication.CreateBuilder(args);

builder.WithMcpServer(args).WithToolsFromAssembly();
builder.Services.AddHangfire(cfg => cfg.UsePostgreSqlStorage(options =>
    options.UseNpgsqlConnection(builder.Configuration.GetConnectionString("hangfire")))
);
builder.Services.AddHangfireMcp();
builder.Services.AddTransient();
var app = builder.Build();
app.MapMcpServer(args);
app.Run();

以下是Hangfire工具的示例:

[McpServerToolType]
public class HangfireTool(IHangfireDynamicScheduler scheduler)
{
    [McpServerTool(Name = "RunJob")]
    public string Run(
        [Required] string jobName,
        [Required] string methodName,
        Dictionary? parameters = null
    )
    {
        var descriptor = new JobDescriptor(jobName, methodName, parameters);
        return scheduler.Enqueue(descriptor, typeof(ITimeJob).Assembly);
    }
}

工具

Inspector

目录标签

目录标签

C#VS CodeAI代理后台作业本地部署任务队列MCP协议动态加载VSCode集成

支持客户端

VS Code

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

1

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP