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
Copy file name to clipboardExpand all lines: README.md
+9Lines changed: 9 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -39,6 +39,15 @@ If your server conforms to the [MCP schema](https://github.com/modelcontextproto
39
39
- Production Ready: Environment detection and production-safe defaults
40
40
- Intelligent Testing: Hypothesis-based data generation with custom strategies
41
41
42
+
### Extensibility for Contributors
43
+
MCP Server Fuzzer is designed for easy extension while keeping CLI usage simple:
44
+
45
+
-**Custom Transports**: Add support for new protocols via config or self-registration (see [docs/transport/custom-transports.md](docs/transport/custom-transports.md)).
46
+
-**Pluggable Safety**: Swap safety providers for custom filtering rules.
47
+
-**Injectable Components**: Advanced users can inject custom clients/reporters for testing or plugins.
48
+
49
+
The modularity improvements (dependency injection, registries) make it maintainer-friendly without complicating the core CLI experience.
These examples cover the most common use cases and should help you get started with MCP Server Fuzzer. For more advanced configurations and customizations, refer to the [Reference](reference.md), [Architecture](architecture.md), and [Runtime Management](runtime-management.md) documentation.
The transport factory now uses a `TransportRegistry` for built-in transports. For custom transports, you can optionally self-register in your module for even easier extension:
125
104
126
105
```python
127
-
from mcp_fuzzer.transport import create_custom_transport
106
+
# In my_package/transports.py
107
+
from mcp_fuzzer.transport.factory import registry
108
+
109
+
classMyCustomTransport(TransportProtocol):
110
+
# ... implementation ...
128
111
129
-
#Create custom transport instance directly
130
-
transport = create_custom_transport("mytransport", "my-endpoint")
112
+
#Self-register (runs when module is imported)
113
+
registry.register("my-custom", MyCustomTransport)
131
114
```
132
115
133
-
#### Via Configuration
116
+
This makes extension simpler – no factory changes needed, and CLI usage remains unchanged.
134
117
135
-
```yaml
136
-
# In mcp-fuzzer.yaml
137
-
protocol: mytransport
138
-
endpoint: "my-endpoint"
139
-
```
118
+
Note: Self-registration is optional; config-based registration (step 2) still works and is recommended for most cases.
0 commit comments