internal/mcp: add a script to create the mcp SDK repo
Add a script that will be used to fully set up the modelcontextprotocol/go-sdk repo. Change-Id: Icadcb3a6368bf8ee3691c63e2b60ac01f42186e4 Reviewed-on: https://go-review.googlesource.com/c/tools/+/682795 Auto-Submit: Robert Findley <rfindley@google.com> Reviewed-by: Alan Donovan <adonovan@google.com> TryBot-Bypass: Robert Findley <rfindley@google.com> Commit-Queue: Robert Findley <rfindley@google.com>
This commit is contained in:
parent
a590cfe063
commit
4264b03c58
2 changed files with 89 additions and 0 deletions
80
mcp/create-repo.sh
Executable file
80
mcp/create-repo.sh
Executable file
|
|
@ -0,0 +1,80 @@
|
|||
#!/bin/bash
|
||||
|
||||
# This script creates an MCP SDK repo from x/tools/internal/mcp (and friends).
|
||||
# It will be used as a one-off to create github.com/modelcontextprotocol/go-sdk.
|
||||
#
|
||||
# Requires https://github.com/newren/git-filter-repo.
|
||||
|
||||
set -eu
|
||||
|
||||
# Check if exactly one argument is provided
|
||||
if [ "$#" -ne 1 ]; then
|
||||
echo "create-repo.sh: create a standalone mcp SDK repo from x/tools"
|
||||
echo "Usage: $0 <mcp repo destination>"
|
||||
exit 1
|
||||
fi >&2
|
||||
|
||||
src=$(go list -m -f {{.Dir}} golang.org/x/tools)
|
||||
dest="$1"
|
||||
|
||||
echo "Filtering MCP commits from ${src} to ${dest}..." >&2
|
||||
|
||||
startdir=$(pwd)
|
||||
tempdir=$(mktemp -d)
|
||||
function cleanup {
|
||||
echo "cleaning up ${tempdir}"
|
||||
rm -rf "$tempdir"
|
||||
} >&2
|
||||
trap cleanup EXIT SIGINT
|
||||
|
||||
echo "Checking out to ${tempdir}"
|
||||
|
||||
git clone --bare "${src}" "${tempdir}"
|
||||
git -C "${tempdir}" --git-dir=. filter-repo \
|
||||
--path internal/mcp/jsonschema --path-rename internal/mcp/jsonschema:jsonschema \
|
||||
--path internal/mcp/design --path-rename internal/mcp/design:design \
|
||||
--path internal/mcp/examples --path-rename internal/mcp/examples:examples \
|
||||
--path internal/mcp/internal --path-rename internal/mcp/internal:internal \
|
||||
--path internal/mcp/README.md --path-rename internal/mcp/README.md:README.md \
|
||||
--path internal/mcp/CONTRIBUTING.md --path-rename internal/mcp/CONTRIBUTING.md:CONTRIBUTING.md \
|
||||
--path internal/mcp --path-rename internal/mcp:mcp \
|
||||
--path internal/jsonrpc2_v2 --path-rename internal/jsonrpc2_v2:internal/jsonrpc2 \
|
||||
--path internal/xcontext \
|
||||
--replace-text "${startdir}/mcp-repo-replace.txt" \
|
||||
--force
|
||||
mkdir ${dest}
|
||||
cd "${dest}"
|
||||
git init
|
||||
|
||||
cat << EOF > LICENSE
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2025 Go MCP SDK Authors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 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 SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
EOF
|
||||
|
||||
git add LICENSE && git commit -m "Initial commit: add LICENSE"
|
||||
git remote add filtered_source "${tempdir}"
|
||||
git pull filtered_source master --allow-unrelated-histories
|
||||
git remote remove filtered_source
|
||||
go mod init github.com/modelcontextprotocol/go-sdk && go get go@1.23.0
|
||||
go mod tidy
|
||||
git add go.mod go.sum
|
||||
git commit -m "all: add go.mod and go.sum file"
|
||||
9
mcp/mcp-repo-replace.txt
Normal file
9
mcp/mcp-repo-replace.txt
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
"github.com/modelcontextprotocol/go-sdk/internal/jsonrpc2"==>"github.com/modelcontextprotocol/go-sdk/internal/jsonrpc2"
|
||||
github.com/modelcontextprotocol/go-sdk/internal/xcontext==>github.com/modelcontextprotocol/go-sdk/internal/xcontext
|
||||
github.com/modelcontextprotocol/go-sdk/internal==>github.com/modelcontextprotocol/go-sdk/internal
|
||||
github.com/modelcontextprotocol/go-sdk/jsonschema==>github.com/modelcontextprotocol/go-sdk/jsonschema
|
||||
github.com/modelcontextprotocol/go-sdk/examples==>github.com/modelcontextprotocol/go-sdk/examples
|
||||
github.com/modelcontextprotocol/go-sdk/design==>github.com/modelcontextprotocol/go-sdk/design
|
||||
github.com/modelcontextprotocol/go-sdk/mcp==>github.com/modelcontextprotocol/go-sdk/mcp
|
||||
governed by an MIT-style==>governed by an MIT-style
|
||||
regex:Copyright (20\d\d) The Go Authors==>Copyright \1 The Go MCP SDK Authors
|
||||
Loading…
Reference in a new issue