From 20f61417af790669f7458afd4769829c81ee2bf8 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Sun, 27 Sep 2026 11:44:53 -0500 Subject: [PATCH] docs(logo): Add Python MCP artwork why: Give the MCP server its language and product identity. what: - Add the SVG, PNG fallback and cog repository social card. - Include local artwork in source distributions. --- .github/social-preview.png | Bin 0 -> 26006 bytes README.md | 9 +++++++++ assets/README.md | 9 +++++++++ assets/logo.png | Bin 0 -> 16931 bytes assets/logo.svg | 2 ++ pyproject.toml | 1 + 6 files changed, 21 insertions(+) create mode 100644 .github/social-preview.png create mode 100644 assets/README.md create mode 100644 assets/logo.png create mode 100644 assets/logo.svg diff --git a/.github/social-preview.png b/.github/social-preview.png new file mode 100644 index 0000000000000000000000000000000000000000..6814f479b7aef1fd305854b47143715759372e84 GIT binary patch literal 26006 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 SMFpVQsXH3_>LscUq5lKYVk}|+ literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 220d8d00..296dcc93 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,14 @@ # libtmux-mcp + +

+ + + libtmux for Python MCP + +

+ + A [Model Context Protocol](https://modelcontextprotocol.io) server for [tmux](https://github.com/tmux/tmux), built on [libtmux](https://libtmux.git-pull.com). [![Python Version](https://img.shields.io/pypi/pyversions/libtmux-mcp.svg)](https://pypi.org/project/libtmux-mcp/) diff --git a/assets/README.md b/assets/README.md new file mode 100644 index 00000000..923da62d --- /dev/null +++ b/assets/README.md @@ -0,0 +1,9 @@ +# Logo assets + +The README uses the Python palette and MCP overlay from the libtmux asset kit. +`logo.svg` is the vector mark; `logo.png` is the transparent 512px fallback. +The repository social card at `../.github/social-preview.png` uses the cog. + +The geometry comes from the project owner’s libtmux and tmuxp SVGs. The palette +uses [GitHub Linguist’s Python color](https://github.com/github-linguist/linguist/blob/538da05f034fa5c83bd81df128d144e208898da3/lib/linguist/languages.yml). +The overlay uses the symbol from the [MCP logo](https://github.com/modelcontextprotocol/modelcontextprotocol/blob/088176704a4e8f20e7f1d237de1de8484aa412fd/docs/logo/light.svg). diff --git a/assets/logo.png b/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4075f81b439ab6f05bbe1ce1eba77eca2883ffb0 GIT binary patch literal 16931 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 B{=5JH literal 0 HcmV?d00001 diff --git a/assets/logo.svg b/assets/logo.svg new file mode 100644 index 00000000..25bb97ed --- /dev/null +++ b/assets/logo.svg @@ -0,0 +1,2 @@ + + diff --git a/pyproject.toml b/pyproject.toml index b54ee574..639b1d48 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -33,6 +33,7 @@ packages = [ { include = "*", from = "src" }, ] include = [ + { path = "assets", format = "sdist" }, { path = "CHANGES", format = "sdist" }, { path = "tests", format = "sdist" }, { path = "docs", format = "sdist" },