You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Rate limit by authenticated user (authMethodSubject) instead of namespace
- Admin bypass via hasGlobalPermissions parameter from auth handler
- Atomic database operations with separate publish_attempts table
- Integrated rate limiting directly into registry service
- Support for rate limit exemptions with wildcard patterns
- Comprehensive test coverage including concurrent request handling
Configuration:
- MCP_REGISTRY_RATE_LIMIT_ENABLED: Enable/disable rate limiting (default: true)
- MCP_REGISTRY_RATE_LIMIT_PER_DAY: Daily publish limit per user (default: 10)
- MCP_REGISTRY_RATE_LIMIT_EXEMPTIONS: Comma-separated exempt users/patterns
Database changes:
- New table: publish_attempts tracking auth_method_subject instead of namespace
- Atomic check-and-increment operation prevents race conditions
Testing:
- All existing tests updated for new method signatures
- New tests for concurrent requests, exemptions, and user-specific limits
This soft deletes the server. If you need to delete the content of a server (usually only where legally necessary), use the edit workflow above to scrub it all.
47
+
48
+
## Rate Limiting Configuration
49
+
50
+
The registry enforces daily publish rate limits to prevent abuse:
Copy file name to clipboardExpand all lines: docs/guides/publishing/publish-server.md
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -414,6 +414,9 @@ With authentication complete, publish your server:
414
414
mcp-publisher publish
415
415
```
416
416
417
+
> [!NOTE]
418
+
> **Rate Limits**: The registry enforces a limit of 10 publishes per user per day to prevent abuse. If you exceed this limit, you'll receive an error message with your current count. If you need a higher limit for legitimate use cases, please [open an issue](https://github.com/modelcontextprotocol/registry/issues).
Copy file name to clipboardExpand all lines: docs/reference/faq.md
+19-1Lines changed: 19 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -90,6 +90,18 @@ Yes, extensions under the `x-publisher` property are preserved when publishing t
90
90
91
91
At time of last update, this was open for discussion in [#104](https://github.com/modelcontextprotocol/registry/issues/104).
92
92
93
+
### What are the rate limits for publishing?
94
+
95
+
The registry enforces daily rate limits to prevent abuse:
96
+
97
+
-**Default limit**: 10 publishes per authenticated user per day (rolling 24-hour window)
98
+
-**Who is affected**: All users except those with global admin permissions
99
+
-**What counts**: Each successful publish counts toward your daily limit
100
+
-**Exemptions**: Specific users or organizations can be exempted from rate limiting
101
+
-**Error message**: If you exceed the limit, you'll receive an error with your current count
102
+
103
+
If you need a higher limit for legitimate use cases, please open an issue at https://github.com/modelcontextprotocol/registry/issues
104
+
93
105
### Can I publish a private server?
94
106
95
107
Private servers are those that are only accessible to a narrow set of users. For example, servers published on a private network (like `mcp.acme-corp.internal`) or on private package registries (e.g. `npx -y @acme/mcp --registry https://artifactory.acme-corp.internal/npm`).
@@ -118,9 +130,15 @@ The MVP delegates security scanning to:
118
130
- Namespace authentication requirements
119
131
- Character limits and regex validation on free-form fields
120
132
- Manual takedown of spam or malicious servers
133
+
- Daily publish rate limiting per authenticated user (10 publishes per day by default)
134
+
135
+
The rate limiting system:
136
+
- Limits are per authenticated user (not per namespace)
137
+
- Default limit is 10 publishes per 24-hour period
138
+
- Administrators with global permissions bypass rate limits
139
+
- Specific users or patterns can be exempted from rate limiting
121
140
122
141
In future we might explore:
123
-
- Stricter rate limiting (e.g., 10 new servers per user per day)
124
142
- Potential AI-based spam detection
125
143
- Community reporting and admin blacklisting capabilities
0 commit comments