adityamparikh opened a new pull request, #57:
URL: https://github.com/apache/solr-mcp/pull/57
## Summary
- Moves `CollectionService`, `CollectionUtils`, and `Dtos` from the
`metadata` package into a new dedicated `collection` package, separating
collection management from schema introspection (`SchemaService` stays in
`metadata`)
- Adds a `create-collection` MCP tool to `CollectionService` that creates
Solr collections/cores with sensible defaults
- Adds `CollectionCreationResult` DTO returned by the new tool
## New tool: `create-collection`
```json
{
"name": "my_collection",
"configSet": "_default",
"numShards": 1,
"replicationFactor": 1
}
```
All fields except `name` are optional and default to `_default`, `1`, and
`1` respectively. Works with both SolrCloud and standalone Solr via
`Http2SolrClient`.
## Test plan
- [ ] All 219 existing tests continue to pass (`./gradlew build`)
- [ ] New unit tests cover: success with CloudSolrClient, success with plain
SolrClient, default parameter application, blank name validation,
SolrServerException propagation
- [ ] New integration test (`createCollection_createsAndListable`) creates a
collection against a live Testcontainers Solr instance and verifies it appears
in `listCollections()`
- [ ] Package rename verified: `metadata` imports replaced with `collection`
in `Main`, `MainTest`, `McpToolRegistrationTest`
## Notes
- `SchemaService` is intentionally left in `metadata` — a follow-up PR will
rename that package to `schema`
- A companion PR applies the same changes on the `sb4` branch (Spring Boot 4
/ Spring AI 2.0)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]