Skip to content

Commit e1e7a91

Browse files
authored
Add initial skeleton servers, PR template, and READMEs describing intended server behavior (#1)
* Add READMEs and initial license Signed-off-by: Sid Murching <[email protected]> * Add PR template Signed-off-by: Sid Murching <[email protected]> * Clarify Signed-off-by: Sid Murching <[email protected]> * update Signed-off-by: Sid Murching <[email protected]> --------- Signed-off-by: Sid Murching <[email protected]>
1 parent d47359d commit e1e7a91

File tree

7 files changed

+207
-63
lines changed

7 files changed

+207
-63
lines changed

.github/pull_request_template.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
### Related Issues/PRs
2+
3+
<!-- Uncomment 'Resolve' if this PR can close the linked items. -->
4+
<!-- Resolve --> #xxx
5+
6+
### What changes are proposed in this pull request?
7+
8+
<!-- Please fill in changes proposed in this PR. -->
9+
10+
### How is this PR tested?
11+
12+
- [ ] Existing unit/integration tests
13+
- [ ] New unit/integration tests
14+
- [ ] Manual tests
15+
16+
<!-- Attach code, screenshot, video used for manual testing here. -->
17+
18+
### Does this PR require documentation update?
19+
20+
- [ ] No. You can skip the rest of this section.
21+
- [ ] Yes. I've updated the relevant server README.md
22+
23+
### Release Notes
24+
25+
#### Is this a user-facing change?
26+
27+
- [ ] No. You can skip the rest of this section.
28+
- [ ] Yes. Give a description of this change to be included in the release notes.
29+
30+
<!-- Details in 1-2 sentences. You can just refer to another PR with a description if this PR is part of a larger change. -->
31+
32+
<!--
33+
Insert an empty named anchor here to allow jumping to this section with a fragment URL
34+
(e.g. https://github.com/mlflow/mlflow/pull/123#user-content-release-note-category).
35+
Note that GitHub prefixes anchor names in markdown with "user-content-".
36+
-->
37+
38+
<a name="release-note-category"></a>
39+
40+
#### How should the PR be classified in the release notes? Choose one:
41+
42+
- [ ] `rn/none` - No description will be included. The PR will be mentioned only by the PR number in the "Small Bugfixes and Documentation Updates" section
43+
- [ ] `rn/breaking-change` - The PR will be mentioned in the "Breaking Changes" section
44+
- [ ] `rn/feature` - A new user-facing feature worth mentioning in the release notes
45+
- [ ] `rn/bug-fix` - A user-facing bug fix worth mentioning in the release notes
46+
- [ ] `rn/documentation` - A user-facing documentation change worth mentioning in the release notes
47+

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
## v0.0.1 (2025-04-16)
2+
3+
This is an example changelog entry
4+
5+
### Major new features
6+
Repo created, initial LICENSE and skeleton empty server directories introduced
7+
8+
### Bug fixes and improvements
9+
N/A

CONTRIBUTING.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,12 @@
1-
We happily welcome contributions to *PROJECT NAME*. We use GitHub Issues to track community reported issues and GitHub Pull Requests for accepting changes.
1+
## Contributing
2+
3+
We happily welcome contributions to the MCP servers in this repo. We use GitHub Issues to track community reported issues and GitHub Pull Requests for accepting changes.
4+
5+
For new feature requests or contributions (e.g. adding a new server), please file an issue or reach out [via Slack](https://databricks.enterprise.slack.com/archives/C065NC65Q9F) to facilitate initial discussion,
6+
before sending a pull request
7+
8+
### Guidelines for MCP servers
9+
10+
For consistency, MCP servers in this repo:
11+
* Must be implemented using https://github.com/modelcontextprotocol/python-sdk (which implies they’re written as Python FastAPI servers), for ease of maintenance and to help ensure servers follow MCP’s best practices.
12+
* Must be unit-tested

LICENSE

Lines changed: 23 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,23 @@
1-
[Project Name]
2-
3-
Copyright (2019) Databricks, Inc.
4-
5-
This library (the "Software") may not be used except in connection with the Licensee's use of the Databricks Platform Services pursuant
6-
to an Agreement (defined below) between Licensee (defined below) and Databricks, Inc. ("Databricks"). The Object Code version of the
7-
Software shall be deemed part of the Downloadable Services under the Agreement, or if the Agreement does not define Downloadable Services,
8-
Subscription Services, or if neither are defined then the term in such Agreement that refers to the applicable Databricks Platform
9-
Services (as defined below) shall be substituted herein for �Downloadable Services.� Licensee's use of the Software must comply at
10-
all times with any restrictions applicable to the Downlodable Services and Subscription Services, generally, and must be used in
11-
accordance with any applicable documentation. For the avoidance of doubt, the Software constitutes Databricks Confidential Information
12-
under the Agreement.
13-
14-
Additionally, and notwithstanding anything in the Agreement to the contrary:
15-
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
16-
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
17-
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
18-
IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
19-
* you may view, make limited copies of, and may compile the Source Code version of the Software into an Object Code version of the
20-
Software. For the avoidance of doubt, you may not make derivative works of Software (or make any any changes to the Source Code
21-
version of the unless you have agreed to separate terms with Databricks permitting such modifications (e.g., a contribution license
22-
agreement)).
23-
24-
If you have not agreed to an Agreement or otherwise do not agree to these terms, you may not use the Software or view, copy or compile
25-
the Source Code of the Software.
26-
27-
This license terminates automatically upon the termination of the Agreement or Licensee's breach of these terms. Additionally,
28-
Databricks may terminate this license at any time on notice. Upon termination, you must permanently delete the Software and all
29-
copies thereof (including the Source Code).
30-
31-
Agreement: the agreement between Databricks and Licensee governing the use of the Databricks Platform Services, which shall be, with
32-
respect to Databricks, the Databricks Terms of Service located at www.databricks.com/termsofservice, and with respect to Databricks
33-
Community Edition, the Community Edition Terms of Service located at www.databricks.com/ce-termsofuse, in each case unless Licensee
34-
has entered into a separate written agreement with Databricks governing the use of the applicable Databricks Platform Services.
35-
36-
Databricks Platform Services: the Databricks services or the Databricks Community Edition services, according to where the Software is used.
37-
38-
Licensee: the user of the Software, or, if the Software is being used on behalf of a company, the company.
39-
40-
Object Code: is version of the Software produced when an interpreter or a compiler translates the Source Code into recognizable and
41-
executable machine code.
42-
43-
Source Code: the human readable portion of the Software.
44-
1+
# DB license
2+
Definitions.
3+
4+
Agreement: The agreement between Databricks, Inc., and you governing the use of the Databricks Services, as that term is defined in the Master Cloud Services Agreement (MCSA) located at www.databricks.com/legal/mcsa.
5+
6+
Licensed Materials: The source code, object code, data, and/or other works to which this license applies.
7+
8+
Scope of Use. You may not use the Licensed Materials except in connection with your use of the Databricks Services pursuant to the Agreement. Your use of the Licensed Materials must comply at all times with any restrictions applicable to the Databricks Services, generally, and must be used in accordance with any applicable documentation. You may view, use, copy, modify, publish, and/or distribute the Licensed Materials solely for the purposes of using the Licensed Materials within or connecting to the Databricks Services. If you do not agree to these terms, you may not view, use, copy, modify, publish, and/or distribute the Licensed Materials.
9+
10+
Redistribution. You may redistribute and sublicense the Licensed Materials so long as all use is in compliance with these terms. In addition:
11+
12+
You must give any other recipients a copy of this License;
13+
You must cause any modified files to carry prominent notices stating that you changed the files;
14+
You must retain, in any derivative works that you distribute, all copyright, patent, trademark, and attribution notices, excluding those notices that do not pertain to any part of the derivative works; and
15+
If a "NOTICE" text file is provided as part of its distribution, then any derivative works that you distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the derivative works.
16+
You may add your own copyright statement to your modifications and may provide additional license terms and conditions for use, reproduction, or distribution of your modifications, or for any such derivative works as a whole, provided your use, reproduction, and distribution of the Licensed Materials otherwise complies with the conditions stated in this License.
17+
18+
Termination. This license terminates automatically upon your breach of these terms or upon the termination of your Agreement. Additionally, Databricks may terminate this license at any time on notice. Upon termination, you must permanently delete the Licensed Materials and all copies thereof.
19+
20+
21+
DISCLAIMER; LIMITATION OF LIABILITY.
22+
23+
THE LICENSED MATERIALS ARE PROVIDED “AS-IS” AND WITH ALL FAULTS. DATABRICKS, ON BEHALF OF ITSELF AND ITS LICENSORS, SPECIFICALLY DISCLAIMS ALL WARRANTIES RELATING TO THE LICENSED MATERIALS, EXPRESS AND IMPLIED, INCLUDING, WITHOUT LIMITATION, IMPLIED WARRANTIES, CONDITIONS AND OTHER TERMS OF MERCHANTABILITY, SATISFACTORY QUALITY OR FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. DATABRICKS AND ITS LICENSORS TOTAL AGGREGATE LIABILITY RELATING TO OR ARISING OUT OF YOUR USE OF OR DATABRICKS’ PROVISIONING OF THE LICENSED MATERIALS SHALL BE LIMITED TO ONE THOUSAND ($1,000) DOLLARS. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE LICENSED MATERIALS OR THE USE OR OTHER DEALINGS IN THE LICENSED MATERIALS.

README.md

Lines changed: 42 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,47 @@
1-
# PROJECT NAME
2-
Standard Project Template for Databricks Labs Projects
3-
4-
## Project Description
5-
Short description of project's purpose
6-
7-
## Project Support
1+
# Databricks MCP servers
2+
![status: WIP](https://img.shields.io/badge/status-WIP-red?style=flat-square&logo=databricks)
3+
4+
## 🚧 Work in Progress 🚧
5+
6+
**This repo is still under initial development and must not be shared outside Databricks.**
7+
8+
## Overview
9+
A collection of [MCP](https://modelcontextprotocol.io/introduction) servers to help AI agents take common developer actions on Databricks, fetch data from Databricks, etc:
10+
11+
* 🚧 [Databricks Unity Catalog server](./unity_catalog): Fetch data and run tools registered in from Unity Catalog, making agents aware of your enterprise data
12+
* 🚧 [Databricks developer tools server](./developer_tools): Perform common developer actions in Databricks, like creating and updating notebooks, running jobs, etc.
13+
14+
## Usage
15+
See the `README.md` in each server's directory for detailed instructions.
16+
For most servers, the following steps work:
17+
18+
1. Install uv from Astral
19+
1. Install Python using `uv python install 3.12`
20+
1. [Configure Databricks credentials](https://docs.databricks.com/aws/en/dev-tools/cli/authentication) with access to the required APIs
21+
1. Add the server to your MCP client configuration. For example, to use the Databricks Unity Catalog MCP server with Claude Desktop, add the following to your `claude_desktop_config.json`:
22+
23+
```json
24+
{
25+
"mcpServers": {
26+
"databricks_unity_catalog": {
27+
"command": "uv",
28+
"args": [
29+
"--directory",
30+
"/path/to/this/repo/servers/unity_catalog",
31+
"-s",
32+
"prod.genai"
33+
]
34+
}
35+
}
36+
}
37+
```
38+
39+
## Support
840
Please note that all projects in the /databrickslabs github account are provided for your exploration only, and are not formally supported by Databricks with Service Level Agreements (SLAs). They are provided AS-IS and we do not make any guarantees of any kind. Please do not submit a support ticket relating to any issues arising from the use of these projects.
941

1042
Any issues discovered through the use of this project should be filed as GitHub Issues on the Repo. They will be reviewed as time permits, but there are no formal SLAs for support.
1143

44+
## Contributing
1245

13-
## Building the Project
14-
Instructions for how to build the project
15-
16-
## Deploying / Installing the Project
17-
Instructions for how to deploy the project, or install it
18-
19-
## Releasing the Project
20-
Instructions for how to release a version of the project
21-
22-
## Using the Project
23-
Simple examples on how to use the project
46+
We welcome contributions :) - see [CONTRIBUTING.md](./CONTRIBUTING.md) for details. Please make sure to read this guide before
47+
submitting pull requests, to ensure your contribution has the best chance of being accepted.

servers/developer_tools/README.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Databricks developer tools MCP server
2+
![status: WIP](https://img.shields.io/badge/status-WIP-red?style=flat-square&logo=databricks)
3+
4+
## 🚧 Work in Progress 🚧
5+
**This server is still under initial development and must not be shared outside Databricks.**
6+
7+
## Overview
8+
A Model Context Protocol server that exposes common Databricks developer actions as tools.
9+
10+
## Usage
11+
1. Install uv from Astral
12+
1. Install Python using `uv python install 3.12`
13+
1. [Configure Databricks credentials](https://docs.databricks.com/aws/en/dev-tools/cli/authentication) with access to the required APIs
14+
1. Add the server to your MCP client configuration. For example, to use this server with Claude Desktop, add the following to your `claude_desktop_config.json`:
15+
16+
```json
17+
{
18+
"mcpServers": {
19+
"databricks_unity_catalog": {
20+
"command": "uv",
21+
"args": [
22+
"--directory",
23+
"/path/to/this/repo/servers/developer_tools"
24+
]
25+
}
26+
}
27+
}
28+
```
29+
30+
## Supported tools
31+
32+
TODO: add a list here

servers/unity_catalog/README.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
# Databricks developer tools MCP server
2+
![status: WIP](https://img.shields.io/badge/status-WIP-red?style=flat-square&logo=databricks)
3+
4+
## 🚧 Work in Progress 🚧
5+
**This server is still under initial development and must not be shared outside Databricks.**
6+
7+
## Overview
8+
A Model Context Protocol server that exposes data in Unity Catalog (functions, vector search indexes), as well as Unity Catalog-powered
9+
Genie spaces, as tools.
10+
11+
## Usage
12+
1. Install uv from Astral
13+
1. Install Python using `uv python install 3.12`
14+
1. [Configure Databricks credentials](https://docs.databricks.com/aws/en/dev-tools/cli/authentication) with access to the required APIs
15+
1. Add the server to your MCP client configuration. For example, to use this server with Claude Desktop, add the following to your `claude_desktop_config.json`:
16+
17+
```json
18+
{
19+
"mcpServers": {
20+
"databricks_unity_catalog": {
21+
"command": "uv",
22+
"args": [
23+
"--directory",
24+
"/path/to/this/repo/servers/unity_catalog",
25+
"-s",
26+
// Replace with the name of your Unity Catalog schema
27+
"prod.genai"
28+
]
29+
}
30+
}
31+
}
32+
```
33+
34+
## Supported tools
35+
36+
The list of tools supported by this server is dynamically inferred based on the functions and vector search indexes
37+
within the specified Unity Catalog schema, as well as any specified Genie spaces. In particular, the server exposes
38+
the following tools:
39+
40+
* **UC Functions**: for each UC function, the server exposes a tool with the same name, arguments, and return type as the function
41+
* **Vector search indexes**: for each vector search index, the server exposes a tool for querying that vector search index
42+
* **Genie spaces**: for each Genie space, the server exposes tools for managing conversations and sending questions to the space

0 commit comments

Comments
 (0)