diff --git a/Controllers/QRManagerController.cs b/Controllers/QRManagerController.cs
index 96dd03b..e5383ac 100644
--- a/Controllers/QRManagerController.cs
+++ b/Controllers/QRManagerController.cs
@@ -114,6 +114,14 @@ namespace QRRapidoApp.Controllers
};
}
+ // Inject monthly quota from response headers (set by ApiKeyAuthorizeAttribute)
+ if (HttpContext.Response.Headers.TryGetValue("X-Quota-Remaining", out var qr) &&
+ int.TryParse(qr, out var quotaRemaining))
+ result.MonthlyQuotaRemaining = quotaRemaining;
+ if (HttpContext.Response.Headers.TryGetValue("X-Quota-Limit", out var ql) &&
+ int.TryParse(ql, out var quotaLimit))
+ result.MonthlyQuotaLimit = quotaLimit;
+
// Map format and mimeType into the response
result.Format = format;
result.MimeType = format switch
diff --git a/Models/DTOs/QRResponseDto.cs b/Models/DTOs/QRResponseDto.cs
index 75ddf7d..99b4a0c 100644
--- a/Models/DTOs/QRResponseDto.cs
+++ b/Models/DTOs/QRResponseDto.cs
@@ -18,5 +18,11 @@ namespace QRRapidoApp.Models.DTOs
/// MIME type of the encoded image (e.g. "image/png", "image/webp").
public string MimeType { get; set; } = "image/png";
+
+ /// Monthly API quota remaining (from rate limiter). -1 = unlimited.
+ public int MonthlyQuotaRemaining { get; set; } = -1;
+
+ /// Monthly API quota limit. -1 = unlimited.
+ public int MonthlyQuotaLimit { get; set; } = -1;
}
}
\ No newline at end of file
diff --git a/mcp-server/index.mjs b/mcp-server/index.mjs
index d70d571..9720607 100644
--- a/mcp-server/index.mjs
+++ b/mcp-server/index.mjs
@@ -109,7 +109,9 @@ function successContent(data, label = "qr") {
file ? `๐ผ Aberto em: ${file}` : "",
`โฑ ${data.generationTimeMs}ms`,
`๐พ Cache: ${data.fromCache ? "hit" : "miss"}`,
- `๐ Crรฉditos restantes: ${data.remainingCredits ?? "N/A"}`
+ data.monthlyQuotaLimit >= 0
+ ? `๐ Quota mensal: ${data.monthlyQuotaRemaining}/${data.monthlyQuotaLimit}`
+ : `๐ Quota mensal: ilimitada`
].filter(Boolean).join("\n")
}
]
diff --git a/mcp-server/server-http.mjs b/mcp-server/server-http.mjs
index 5e639b3..cce07e9 100644
--- a/mcp-server/server-http.mjs
+++ b/mcp-server/server-http.mjs
@@ -164,7 +164,7 @@ function createMcpServer(apiKey) {
return {
content: [
{ type: "image", data: data.qrCodeBase64, mimeType: data.mimeType || "image/png" },
- { type: "text", text: `โ
QR gerado (${type})\nโฑ ${data.generationTimeMs}ms\n๐พ cache: ${data.fromCache ? "hit" : "miss"}` }
+ { type: "text", text: `โ
QR gerado (${type})\nโฑ ${data.generationTimeMs}ms\n๐พ cache: ${data.fromCache ? "hit" : "miss"}\n๐ quota: ${data.monthlyQuotaRemaining >= 0 ? `${data.monthlyQuotaRemaining}/${data.monthlyQuotaLimit}` : "ilimitada"}` }
]
};
}