diff --git a/content/doap/solr-mcp.rdf b/content/doap/solr-mcp.rdf new file mode 100644 index 000000000..c79815c7e --- /dev/null +++ b/content/doap/solr-mcp.rdf @@ -0,0 +1,52 @@ + + + + + + 2025-10-26 + + Apache Solr MCP Server + + + Model Context Protocol server for Apache Solr + + + + Go + + + + + + + + + + + + Apache Solr Team + + + + + + diff --git a/content/pages/mcp/community.md b/content/pages/mcp/community.md new file mode 100644 index 000000000..e2e5b9a22 --- /dev/null +++ b/content/pages/mcp/community.md @@ -0,0 +1,42 @@ +Title: Community +URL: mcp/community.html +save_as: mcp/community.html +template: mcp/community + +## Support ## + +The Solr MCP community provides user support for free through the [users mailing list](#mailing-lists-chat) and [slack channels](#slack). + +## Mailing Lists & Chat ## + +The Solr MCP server shares mailing lists with its parent project, Apache Solr. +Available lists can be [found here]({filename}/pages/community.md#mailing-lists-chat). + +#### Slack #### + +* The project's main Slack channel is `#solr-mcp` in the `the-asf` organization. + Link: + +## Issue tracker ## + +The Solr MCP Server uses [Github issues](https://github.com/apache/solr-mcp/issues) in its repository for issue tracking. + +## How To Contribute ## + +Looking to contribute to the Solr MCP Server? Read the [CONTRIBUTING.md](https://github.com/apache/solr-mcp/blob/main/CONTRIBUTING.md) instructions and join us. + +## Code of Conduct ## + +For a large and diverse community like ours to be friendly, welcoming and respectful, we recognize the need for some guidelines. The project follows [Apache's Code of Conduct statement](https://www.apache.org/foundation/policies/conduct). Please take some time to read and understand it. + +If you feel there has been a violation of this code, please point out your concerns publicly in a friendly and matter of fact manner. Nonverbal communication is prone to misinterpretation and misunderstanding. Everyone has bad days and sometimes says things they regret later. Someone else's communication style may clash with yours, but the difference can be amicably resolved. After pointing out your concerns please be generous upon receiving an apology. + +Should there be repeated instances of code of conduct violations, or if there is an obvious and severe violation, the Solr PMC may become involved. + +### The Apache Way + +As an Apache project we strive to follow [The Apache Way](http://theapacheway.com/). If you are new to the community or to open source in general, you may benefit from understanding our core values as a community, and why we operate the way we do. + +## Version Control ## + +The project's Git repository is found at https://github.com/apache/solr-mcp or the mirror at https://gitbox.apache.org/repos/asf/solr-mcp.git diff --git a/content/pages/mcp/downloads.md b/content/pages/mcp/downloads.md new file mode 100644 index 000000000..8e59896a6 --- /dev/null +++ b/content/pages/mcp/downloads.md @@ -0,0 +1,5 @@ +Title: Downloads +URL: mcp/downloads.html +save_as: mcp/downloads.html +template: mcp/downloads + diff --git a/content/pages/mcp/features.md b/content/pages/mcp/features.md new file mode 100644 index 000000000..6e96e5ecf --- /dev/null +++ b/content/pages/mcp/features.md @@ -0,0 +1,4 @@ +Title: Features +URL: mcp/features.html +save_as: mcp/features.html +template: mcp/features diff --git a/content/pages/mcp/index.md b/content/pages/mcp/index.md new file mode 100644 index 000000000..b9d9a795c --- /dev/null +++ b/content/pages/mcp/index.md @@ -0,0 +1,4 @@ +Title: Welcome +URL: mcp/index.html +save_as: mcp/index.html +template: mcp/index diff --git a/pelicanconf.py b/pelicanconf.py index ee0c7925f..51d2625b3 100755 --- a/pelicanconf.py +++ b/pelicanconf.py @@ -18,6 +18,10 @@ SOLR_OPERATOR_LATEST_RELEASE_DATE = datetime(2025, 3, 25) SOLR_OPERATOR_PREVIOUS_MAJOR_RELEASE = 'v0.8.1' +SOLR_MCP_LATEST_RELEASE = 'v0.0.0' +#SOLR_MCP_LATEST_RELEASE_DATE = datetime(2025, 3, 25) +#SOLR_MCP_PREVIOUS_MAJOR_RELEASE = 'v0.8.1' + # This string will be appended to all unversioned css and js resources to prevent caching surprises on edits. # The theme's htaccess file also sets a cache-control header with longer lifetime, if the v=XXXX query string is added. STATIC_RESOURCE_SUFFIX = "?v=%s" % dirhash('themes/solr/static', 'sha1')[-8:] diff --git a/themes/solr/static/css/mcp.css b/themes/solr/static/css/mcp.css new file mode 100644 index 000000000..cf97fd65c --- /dev/null +++ b/themes/solr/static/css/mcp.css @@ -0,0 +1,1033 @@ +/* + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +*/ +html, body { + font-family: 'Helvetica Neue', sans-serif; /* substitute for proxima nova */ + color: #333; +} + +body { + overflow-x:hidden; + pointer-events: none; +} + +body > * { + pointer-events: auto; +} + +.alignleft { + float: left; +} + +.alignright { + float: right; +} + +.container { + padding: 40px 0; +} + +code, pre { + font-family: Menlo, Consolas,"Liberation Mono",Courier,monospace; + color:#4F504D; +} + +code { + font-weight: 500; +} + +/* + * Elements + */ +:focus { + outline: 0; +} + +.offset { + position: relative; + top: -150px; + padding-top: 150px; + margin-bottom: -130px; + z-index: -1000; +} + +.offset-medium { + position: relative; + top: -115px; + padding-top: 115px; + padding-bottom: 0px; + margin-bottom: -115px; + z-index: -1000; +} + +.offset-small { + position: relative; + top: -56px; + padding-top: 112px; + margin-bottom: -56px; + z-index: -1000; +} + +.btn1{ + border: 1px solid #d1d3d4; + background-color:inherit; + text-transform: uppercase; + color:#000; + padding: 0.7em 1em; + font-weight: 500; + margin: 0; +} +.btn1:hover, .btn1:focus { + color:#ff833d; + background:inherit; +} + +div.centered { + text-align: center; + padding-top: 32px; +} + +a.btn, button { + border: 1px solid #d1d3d4; + background-color:inherit; + text-transform: uppercase; + color:#000; + padding: 0.7em 1em; + font-weight: 500; + margin: 0; +} + +a.btn:hover, a.btn:focus, +button:hover, button:focus { + color:#ff833d; + background:inherit; +} + +a.btn.white, +button.white { + color:#fff; +} + +a.btn.white, +button.white:hover { + color:#262130; + background:#fff; +} + +/* + * Header + */ + +.header-section { + position: fixed; + z-index: 999; + min-width: 100%; + background:#2d7a3e; +} + +.header-fill { + padding-top: 90px; +} + +.top-bar, .top-bar .name { + background:#2d7a3e; + height: 90px; +} + +.top-bar .name .logo { + height: 100%; + position:relative; + left: 15px; + padding: 20px 0 25px 0; +} + +.top-bar-section ul li, .top-bar-section li:not(.has-form) a:not(.button) { + background: #2d7a3e; +} + +.top-bar-section li:not(.has-form) a:not(.btn):hover { + background:inherit; + color: #25202f; +} + +.top-bar-section .navigation a.selected { + color: #25202f; +} + +.top-bar-section li:not(.has-form) a.btn:hover, .top-bar-section li:not(.has-form) a.btn:focus { + background:#fff; + color: #25202f; +} + +.top-bar-section ul li>a, +.top-bar-section ul li>a.btn, +.top-bar.shrink.expanded .top-bar-section ul li>a, +.top-bar.shrink.expanded .top-bar-section ul li>a.btn { + padding: 0 10px !important; + transition: all 0.1s ease; + text-transform:uppercase; + font-size:0.92rem; +} + +.top-bar-section ul li>a.btn { + margin: 0; + background-color: transparent; + text-align:left; +} + +.top-bar.expanded .toggle-topbar a { + color:#fff; +} + +.top-bar.expanded .top-bar-section li:not(.has-form) a:not(.btn):hover { + background:#fff; +} + +/* full-width nav styles */ +@media only screen and (min-width: 47.5em) { + .top-bar-section .navigation { + margin: 20px 20px 20px 0; + } + .top-bar .name .logo { + left: 15px; + } + .top-bar .btn { + padding-top: .65rem; + padding-bottom: .55rem; + top: 2px; + text-align:center; + border: 1px solid #fff; + } + .top-bar .btn:hover { + background:#fff; + } +} + +/* shrink header styles */ +.top-bar.shrink, .top-bar.shrink .name, .top-bar.expanded .name { + height: 55px; +} + +.top-bar.shrink.expanded { + height:auto; +} + +.top-bar.shrink .name .logo, .top-bar.expanded .name .logo { + padding: 10px 0 15px 0; +} + +.top-bar.shrink .top-bar-section ul li>a, .top-bar.shrink .top-bar-section ul li>a.btn { + font-size: 0.8em; +} + +.top-bar.shrink .top-bar-section li:not(.has-form) a:not(.button) { + line-height: 35px; +} + +.top-bar.shrink .navigation { + margin: 10px 15px 10px 0; +} + +.top-bar.shrink.expanded .navigation { + margin: 0; +} + +.top-bar.shrink.expanded .top-bar-section li:not(.has-form) a:not(.button) { + line-height: 1.6; +} + +.top-bar.shrink .button { + padding: 10px 20px; +} + +/* + * Global + */ +h1, h2, h3, h4, h5 { + font-family: 'Raleway', 'Helvetica Neue', sans-serif; + font-weight:300; +} + +h1 { + margin-bottom: 20px; + color: #2d7a3e; +} + +h2 { + margin-bottom: 0.8em; + color: #2d7a3e; +} + +h3 { + color: #666; +} + +h4 { + color: #666; +} + +h5 { + color: #999; +} + +p { + line-height: 1.8em; + color:#262130; +} + +.button { + background-color: #ff833d; + text-transform: uppercase; +} + +.button:hover, +.button:focus, +.button:active { + background-color: #ff5c00; +} + +.annotation { + color: #262130; + text-transform: uppercase; + margin-bottom: 0.8em; + font-weight:400; +} + +/* + * PAGES + */ + +.homepage h1.red { + color: #2d7a3e;; +} + +.page h1, .page h2, .page h3 { + font-family: 'Raleway', 'Helvetica Neue', sans-serif; + color: #262130; +} + +.page h1, .subnav h1 , h1.news { + font-weight:300; +} + +.subnav h1 , h1.news { + margin-bottom: 30px; +} + +.subnav h1 , h1.news { + line-height:0.8; +} + +.page h1 small, .subnav h1 small, h1.news small { + font-size:0.4em; + color:#333; +} + +.page h2, .page h3 { + font-weight:500; +} + +.page h2 { + font-size:1.5em; +} + +.page h3 { + font-size:1.4em; +} + +.page p, .page ul li, .page ol li { + color:#333; +} + +.page a { + color: #2d7a3e; +} + +.page .date { + color: #2d7a3e; + text-transform:uppercase; + font-weight:500; +} + +#resources { + text-align:center; +} + +pre { + white-space:pre-wrap; + overflow:hidden; +} + +/* + * Alternate styles (green sections) + */ +.alternate .annotation { + color: #2d7a3e; +} + +.alternate h1 { + font-weight: 100; + color: #212121; +} + +.alternate h2 { + font-weight: 300; +} + +hr { + margin-bottom: 2em; + color:#e4e2dd; +} + +/* + * Small styles + */ + +.small h1 { + font-size: 2em; +} + +.small h2 { + font-size: 1.6em; +} + +.small h3 { + font-size: 1.4em; +} + +.small h4 { + font-size: 1.2em; +} + +.small h5 { + font-size: 1em; +} + +.small p { + font-size: 0.9em; +} + +/* + * Section styles + */ +section { + padding: 40px 0; + color: #333; + text-align:center; +} + +.artifacthub-widget > section { + padding: 0; +} + +section.gray { + background-color: #f9f8f8; +} + +section.orange { + background-color: #2d7a3e; + color: #fff; + padding:60px 0 80px 0; + text-align:center; + position:relative; +} + +section.orange .annotation { + color:#fff; +} + +section.orange h1 { + color: inherit; +} + +section.orange h2 { + color: inherit; +} + +section.orange p { + color:#fff; + font-weight: 300; + font-size: 1.1em; +} + +section.orange .down-arrow { + position: absolute; + left: 50%; +} + +section.orange .down-arrow .red { + color: #ff833c; +} + +section.orange .down-arrow a { + color:#fff; +} + +section.orange.full-width { + margin-left: -100%; + margin-right: -100%; + margin-bottom: 2em; +} + + +/* + * Hero + */ +.hero { + background-color: #262130; + color: #fff; + position:relative; + padding: 100px 0; +} + +.hero h1, +.hero p { + color: #fff; +} + +.hero p { + margin-bottom: 40px; + font-weight: 300; + font-size: 1.1em; +} + +.hero .button { + background-color: #305cb3; +} + +.hero .button:hover, +.hero .button:focus, +.hero .button:active { + background-color: #0045cd; +} + +.hero .down-arrow { + position: absolute; + bottom: -80px; + left: 50%; +} + +.hero .down-arrow .red { + color: #2d7a3e; +} + +.hero .down-arrow a { + color:#fff; +} + +.security { + background-color: #FFBF78; + padding-top: 10px; + padding-bottom: 0px; + display: none; +} + +.security a { + color: #262130; +} + +.topnews { + background-color: #59BD81; + padding-top: 15px; + padding-bottom: 0px; + display: none; +} + +.topnews .row p a { + color: #262130; + font-size: larger; +} + +.topnews-operator { + background-color: #59BD81; + padding-top: 15px; + padding-bottom: 0px; + display: none; +} + +.topnews-operator .row p a { + color: #262130; + font-size: larger; +} + +/* + * Footer + */ +footer { + background-color: #262130; + color: #f9f8f8; + padding: 40px 0 20px 0; +} + +footer h4 { + padding-bottom:15px; + text-transform:uppercase; + font-size: 1em; +} + +footer h4, footer ul li a, .page footer ul li a { + color: #f9f8f8; + font-family: 'Raleway', 'Helvetica Neue', sans-serif; +} + +footer ul li a, .page footer ul li a { + font-weight:300; + font-size:0.9em; +} + +footer ul { + list-style: none; + margin-left: 0; +} + +footer .copyright { + padding: 50px 0 40px 0; +} + +footer .copyright p { + color: #bbb; + font-size:0.7em; + text-align:center; +} + +/* + * Gray/white section styles + */ + +.white h1 { + line-height:0.8; +} + +.gray .annotation { + color: #262130; + font-size: 1em; +} + +.gray h1 { + color: #2d7a3e; + line-height:0.8; +} + +.gray .box h3 { + color:#000; + font-size:1.4em; + margin-bottom:20px; +} + +.gray .box p { + font-size: 0.9em; + line-height: 1.3em; + color:#333; +} + +.gray .box button { + font-size: 0.75em; + margin-bottom: 0; +} + +.gray .box button:hover { + background-color:inherit; + color:#ff833d; +} + +.gray .box:hover { + background:#fff; + border: 1px solid #333; + cursor:pointer; +} + +.gray .box:hover button { + color:#ff833d; +} + +.gray .box .img { + height:120px; +} + +.gray .box .img img { + height:95px; +} + +.full-width .gray .box { + padding:0; + border:none; +} + +.full-width .gray .box:hover { + border:none; + cursor:default; + background:inherit; +} + +/* box variants */ +.col-4 .box { + margin: 15px; + padding: 5px 5px 15px 5px; + border: solid 1px transparent +} + +.col-4 .box .title { + height: 70px; +} + +.col-3 .box { + margin: 15px; + padding: 20px 20px 30px 20px; + border: solid 1px transparent +} + +.col-3 .box .title { + height: 70px; +} + +[class*="block-grid-"] { + display: flex; + padding: 0; + margin:0; + flex-wrap: wrap; + justify-content: center; +} + +/* + * Solr books + */ +.books { + margin:40px 0; + +} + +.books > div{ + padding-left: 5px; +} + +.powered{ + line-height: 99px; + height: 99px; +} +.powered div{ + line-height: 99px; + height: 99px; + padding-right: 10px; +} + +.powered img{ + vertical-align: middle; + display: inline; +} + +/* + * Slider + * TODO: Not in use + */ +.slider-prev { + left:-25px; + color:#ffa16b; +} + +.slider-next { + right:-25px; + color:#ffa16b; +} + +.slider-prev, .slider-next { + position: absolute; + display: block; + height: 20px; + width: 20px; + cursor: pointer; + top: 50%; + margin-top: -10px; +} + +/* + * FEATURES PAGE + */ +section.list { + padding:80px 0; +} + +section.list { + text-align:left; +} + +section.list ul li { + font-family: 'Raleway', 'Helvetica Neue', sans-serif; + font-weight:300; + color: #333; + font-size: 1.2em; + padding-right:20px; +} + +section.list ul li p { + font-family: 'Helvetica Neue', sans-serif; + font-weight:300; + color: #A13016; + margin-top: 10px; + font-size: 0.8em; +} + +section.list ul li ul { + padding-top: 10px; +} + +section.list ul li ul li { + font-family: 'Helvetica Neue', sans-serif; + font-weight:300; + color: #A13016; + margin-top: 2px; + font-size: 0.96em; +} + + +.anchor-fixed { + top: 57px; + z-index: 1000; + position: fixed; +} + +/* + * Subnav style pages + */ +.sub-nav { + display:inline-block; + margin-bottom:0; +} + +.sub-nav-container { + height: 100px; + width: 1000px; + margin: 0 auto; +} + +.sub-nav-border { + padding: 20px 0; + background: white; + border-top: 1px solid #e4e2dd; + border-bottom: 1px solid #e4e2dd; + margin: 0 auto 30px auto; +} + +.sub-nav dd { + margin-bottom: 0; +} + +.sub-nav dd a { + padding-right: 30px; + padding-left: 15px; + border-right:1px solid #e4e2dd; + position: relative; + z-index: 2000; +} + +.codehilite { + margin: 10px 0; + background-color: #EEEEEE; + padding-top: 5px; + padding-bottom: 5px; + padding-left: 15px; +} + +pre { + line-height:1.5; +} + +ul.breadcrumbs { + background-color:transparent; + border: none; +} + +/* + * Sidebar + */ + +.side-nav { + padding:25px; + border:1px solid #e4e2dd; + margin-bottom:40px; +} + +ul.side-nav > li { + border-top:1px solid #e4e2dd; + padding:10px 0 10px 10px; + margin:0; +} + +.page .side-nav li a { + color:#25202f; + font-weight:300; + font-size: 1.3em; +} + +.page .side-nav li a.active { + color:#2d7a3e; +} + +.page .side-nav li a:hover { + color:#2d7a3e; +} + +#search form, #search fieldset { + border:none; + padding:0; + margin:0; +} + +.search-box { + display: inline-block; + padding-right: 1em; + position: relative; + width: 150px; + height: 42px; +} + +#search input[type="search"] { + font-family: 'Raleway', 'Helvetica Neue', sans-serif; + font-weight:300; + height: 28px; + width: 135px; + font-size: 12px; + border: none; + box-shadow: none; + position: absolute; + top: 8px; + left: 0px; + padding-right: 26px; +} + +#search input[type="search"]:focus { + background-color: #f9f9f9; +} + +.search-button { + position:absolute; + height:23px; + width:23px; + background-color: transparent !important; + line-height: 23px !important; + padding: 0 !important; + top: 10px; + right: 17px; + margin:0; +} + +.search-button img { + padding:0; + line-height:23px; + margin:0; +} + +.nested-nav { + +} + +ul.breadcrumbs { + margin:0; + padding:0; +} + +ul.breadcrumbs a { + text-transform:none; + font-size:1.2em; +} + +.tutorials .orange { + margin-top: 40px; + margin-bottom:40px; +} + +.float-right { + float: right; +} + +img.float-right { + margin: 5px 0px 10px 10px; +} + + +.poweredby .list ul{ + list-style-type: none; +} + +.wrappable-btn { + border: 1px solid #d1d3d4; + background-color: inherit; + text-transform: uppercase; + color: #000; + padding: 0.25em 0.75em 0.05em 0.47em; + font-weight: 500; + margin: 0; + display: inline-block; + vertical-align: middle; +} +.wrappable-btn:hover, .wrappable-btn:focus { + color: #ff833d; + background: inherit; +} + +.ref-guide-badge { + background-color: #2d7a3e; + color: #fff; + display: inline-block; + text-align: center; + font-size: 0.6em; + line-height: 1.1; + font-weight: 500; + vertical-align: middle; + padding: 1px 2px; + margin: 0em 0.50em 0.30em -0.40em; +} +.wrappable-btn:hover .ref-guide-badge, .wrappable-btn:focus .ref-guide-badge { + background-color: #ff833d; +} + +ul li div.box div.img img.resizeable-solr-logo { + max-width:243px; + max-height:123px; + height:auto; + width: 100%; + border:2px solid #CCC +} + +ul li div.box h3.fixed-wrap-point-logo-title { + padding-left:9px; + padding-right:8px; +} + +section h3.asset-download { + text-align: left; + padding-top: 10px; +} + +ul li div.box div.img.logo-container { + padding: 20px; + height: auto; + width: auto; +} +ul li div.box div.img.logo-container.black-background { + background-color:#000; +} +ul li div.box div.img.logo-container.white-background { + background-color:#fff; +} +ul li div.box div.img.logo-container.orange-background { + background-color:#2d7a3e; +} +.full-width .gray .box.logo-box { + position: relative; + border: 1px solid #CCC; +} diff --git a/themes/solr/templates/_header.html b/themes/solr/templates/_header.html index b9ae4ae45..3c52bd820 100644 --- a/themes/solr/templates/_header.html +++ b/themes/solr/templates/_header.html @@ -31,6 +31,9 @@
  • Solr Operator
  • +
  • + MCP +
  • + + + +{% include "mcp/_css.html" %} + + + + +{% include "_javascript.html" %} diff --git a/themes/solr/templates/mcp/_header.html b/themes/solr/templates/mcp/_header.html new file mode 100644 index 000000000..3c38d211c --- /dev/null +++ b/themes/solr/templates/mcp/_header.html @@ -0,0 +1,39 @@ +
    +
    + +
    +
    + +
    diff --git a/themes/solr/templates/mcp/base.html b/themes/solr/templates/mcp/base.html new file mode 100644 index 000000000..da0b928a7 --- /dev/null +++ b/themes/solr/templates/mcp/base.html @@ -0,0 +1,46 @@ + + + + {% include "mcp/_head.html" %} + {% block title %}{{ page.title }}{% endblock %} - Apache Solr MCP Server + {% block css %}{% endblock %} + + {% block metakeys %} + + {% endblock %} + {% block ogmeta %} + + + + + + + {% endblock %} + + {% block favicon %} + + + {% endblock %} + {% block rss %}{% endblock %} + {% block javascript %}{% endblock %} + {% include "_matomo.html" %} + + + + {% include "mcp/_header.html" %} + + {% block solr_security_warning %} + {% endblock %} + {% block hero_header %} + {% endblock %} + {% block content %} + {% endblock %} + + + {% include "_last_scripts.html" %} + + diff --git a/themes/solr/templates/mcp/community.html b/themes/solr/templates/mcp/community.html new file mode 100644 index 000000000..ab8733470 --- /dev/null +++ b/themes/solr/templates/mcp/community.html @@ -0,0 +1,13 @@ +{% extends "mcp/subnav.html" %} + +{% block subnav_title %}Community{% endblock %} +{% block subnav_subtitle %}Join the active community of Solr MCP Server contributors.{% endblock %} +{% block subnav_nav_items %} +
    Support
    +
    Lists/Chat
    +
    Issues
    +
    Contributing
    +
    Code of Conduct
    +
    Version Control
    +
    Powered By
    +{% endblock %} diff --git a/themes/solr/templates/mcp/downloads.html b/themes/solr/templates/mcp/downloads.html new file mode 100644 index 000000000..772aa5ee8 --- /dev/null +++ b/themes/solr/templates/mcp/downloads.html @@ -0,0 +1,20 @@ +{% extends "mcp/page.html" %} + +{% block content_inner %} +
    + + +

    {{ page.title }} + +

    + {{ page.content }} +

    This project is incubating and has not made any releases yet.

    +
    +{% endblock content_inner %} diff --git a/themes/solr/templates/mcp/features.html b/themes/solr/templates/mcp/features.html new file mode 100644 index 000000000..71aad89fd --- /dev/null +++ b/themes/solr/templates/mcp/features.html @@ -0,0 +1,192 @@ +{% extends "mcp/fullwidth.html" %} + +{% block fullwidth_title %}

    Features

    {% endblock %} + +{% block hero_header_inner %} +
    +
    + Apache Solr MCP Server {{ SOLR_MCP_LATEST_RELEASE }} +
    +

    Powerful MCP Tools for Solr

    +

    + A comprehensive set of AI-ready tools to search, index, and manage your Solr collections. Designed to work seamlessly with Claude and other LLM assistants through the Model Context Protocol. +

    +
    +
    +{% endblock %} + +{% block content_inner %} +
    +
    +
    +
    + Search Capabilities +
    +

    Advanced Search Tools

    +

    Execute complex searches with filters, faceting, and pagination—all driven by natural language instructions.

    +
    +
    +
    +
      +
    • +
      +
      +
      +

      Full-Text Search

      +

      Execute complex search queries across your collections with support for boolean operators and phrase queries

      +
      +
      +
    • +
    • +
      +
      +
      +

      Flexible Filtering

      +

      Filter results by field values with support for ranges, wildcards, and complex filter queries

      +
      +
      +
    • +
    • +
      +
      +
      +

      Faceted Search

      +

      Get faceted counts across dimensions to power AI-driven analytics and categorization

      +
      +
      +
    • +
    +
    +
    + +
    +
    +
    +
    + Indexing & Data Management +
    +

    Flexible Document Indexing

    +

    Index documents in multiple formats with automatic field normalization and error handling.

    +
    +
    +
    +
      +
    • +
      +
      +
      +

      Multi-Format Support

      +

      Index documents in JSON, CSV, or XML formats with automatic parsing and validation

      +
      +
      +
    • +
    • +
      +
      +
      +

      Field Normalization

      +

      Automatically sanitize and normalize field names to match Solr's schema requirements

      +
      +
      +
    • +
    • +
      +
      +
      +

      Nested Structure Support

      +

      Handle complex nested documents and multi-valued fields with intelligent flattening

      +
      +
      +
    • +
    +
    +
    + +
    +
    +
    +
    + Collection & Schema Management +
    +

    Collection Intelligence

    +

    Introspect and understand your collections and schemas dynamically within your AI workflows.

    +
    +
    +
    +
      +
    • +
      +
      +
      +

      Collection Discovery

      +

      List and inspect all available collections in your Solr instance

      +
      +
      +
    • +
    • +
      +
      +
      +

      Schema Introspection

      +

      Dynamically discover field types, analyzers, and schema configuration for intelligent indexing

      +
      +
      +
    • +
    • +
      +
      +
      +

      Field Metadata

      +

      Access detailed field information including type, analysis chains, and configuration

      +
      +
      +
    • +
    +
    +
    + +
    +
    +
    +
    + Platform & Integration +
    +

    Built for Enterprise Deployment

    +

    Deploy with confidence using proven Spring Boot technologies and comprehensive error handling.

    +
    +
    +
    +
      +
    • +
      +
      +
      +

      Standards Compliance

      +

      Full implementation of the Model Context Protocol specification for AI assistant integration

      +
      +
      +
    • +
    • +
      +
      +
      +

      Multiple Transports

      +

      Run in STDIO mode for Claude Desktop or HTTP mode for remote deployments and testing

      +
      +
      +
    • +
    • +
      +
      +
      +

      Error Handling

      +

      Comprehensive error reporting and validation ensures clear feedback to AI assistants

      +
      +
      +
    • +
    +
    +
    + +{{ super() }} +{% endblock content_inner %} diff --git a/themes/solr/templates/mcp/fullwidth.html b/themes/solr/templates/mcp/fullwidth.html new file mode 100644 index 000000000..e326919d4 --- /dev/null +++ b/themes/solr/templates/mcp/fullwidth.html @@ -0,0 +1,24 @@ +{% extends "mcp/base.html" %} + +{% block hero_header %} +
    +
    + {% block hero_header_inner %} +
    +
    + Apache Solr MCP Server {{ SOLR_MCP_LATEST_RELEASE }} +
    +

    + The Apache Solr MCP Server gives your LLM super powers in managing Solr clusters. +

    + +
    +
    + {% endblock hero_header_inner %} +
    +
    +{% endblock hero_header %} + +{% block content %} +{% block content_inner %}{{ page.content }}{% endblock %} +{% endblock %} diff --git a/themes/solr/templates/mcp/index.html b/themes/solr/templates/mcp/index.html new file mode 100644 index 000000000..e219a174c --- /dev/null +++ b/themes/solr/templates/mcp/index.html @@ -0,0 +1,163 @@ +{% extends "mcp/fullwidth.html" %} + +{% block bodyclass %}homepage{% endblock %} + +{% block solr_security_warning %} +{% set latest_sec_articles = (articles | selectattr("category.name", "eq", "solr/security") | list)[:1] %} +{% if (latest_sec_articles | length) > 0 %} +{% set latest_sec_date = latest_sec_articles[0].date | strftime("%Y-%m-%d") %} +
    + +
    +{% endif %} +{% endblock %} + +{% block content_inner %} +
    + +
    +
    +
    +
    + Apache Solr MCP Server +
    +

    Give AI Assistants Solr Superpowers

    +

    + A standards-compliant Model Context Protocol server that brings powerful search, indexing, and collection management capabilities to Claude and other LLM assistants. Built with Spring AI, backed by SolrJ, and ready to deploy anywhere. +

    +
    + Get Started on GitHub +
    +
    +
    +
    + +
    +
    +
    +
    + Why Use Solr MCP Server? +
    +

    Empower Your AI with Enterprise Search

    +

    + Integrate Apache Solr directly into your AI workflows. Execute complex searches, manage indexes, and analyze your data—all through natural language with an AI assistant. +

    +
    +
    +
    +
      +
    • +
      +
      +
      +

      Powerful Search

      +
      +

      Complex queries, filtering, faceting, and pagination through a natural language interface

      +
      +
    • +
    • +
      +
      +
      +

      Flexible Indexing

      +
      +

      Index documents in JSON, CSV, or XML formats with automatic field name normalization

      +
      +
    • +
    • +
      +
      +
      +

      Standards-Based

      +
      +

      Implements the Model Context Protocol specification for seamless AI integration

      +
      +
    • +
    • +
      +
      +
      +

      Multi-Collection

      +
      +

      Manage and query multiple Solr collections and schemas through a unified interface

      +
      +
    • +
    • +
      +
      +
      +

      Easy Deployment

      +
      +

      Deploy as a Docker container, Spring Boot application, or via HTTP/STDIO transports

      +
      +
    • +
    • +
      +
      +
      +

      Enterprise Ready

      +
      +

      Built on proven technologies with comprehensive error handling and logging

      +
      +
    • +
    +
    +
    + +
    +
    +
    +
    + Next Steps +
    +

    Explore the Solr MCP Server

    +
    +
    + +
    + +
    +
    +
    +

    + The Apache Software Foundation +

    +

    + The Apache Software Foundation provides support for the Apache community of open-source software projects. The Apache projects are defined by collaborative consensus based processes, an open, pragmatic software license and a desire to create high quality software that leads the way in its field. Apache Lucene, Apache Solr, Apache PyLucene, Apache Open Relevance Project and their respective logos are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners. +

    +
    +

    + +

    +
    +
    +
    +{% endblock content_inner %} diff --git a/themes/solr/templates/mcp/page.html b/themes/solr/templates/mcp/page.html new file mode 100644 index 000000000..845fadbb9 --- /dev/null +++ b/themes/solr/templates/mcp/page.html @@ -0,0 +1,11 @@ +{% extends "mcp/base.html" %} + +{% block content %} +
    + {% block subnav %} + {% endblock %} +
    + {% block content_inner %}{{ page.content }}{% endblock %} +
    +
    +{% endblock %} diff --git a/themes/solr/templates/mcp/subnav.html b/themes/solr/templates/mcp/subnav.html new file mode 100644 index 000000000..76e81656f --- /dev/null +++ b/themes/solr/templates/mcp/subnav.html @@ -0,0 +1,20 @@ +{% extends "mcp/page.html" %} + +{% block subnav %} +
    +
    +

    {% block subnav_title %}{% endblock %}
    + {% block subnav_subtitle %}{% endblock %}

    +
    +
    + +{% endblock %}