From e67bf993eca69cd26eeff83b86eefbb30c18479c Mon Sep 17 00:00:00 2001 From: Karthik KK Date: Tue, 22 Apr 2025 18:33:00 +1200 Subject: [PATCH] Remove obsolete release notes and update homepage features for MCP Database Server. Added support for multiple databases and improved UI elements. Updated styles and SVG assets for better presentation. --- .github/workflows/deploy-docs.yml | 80 ++++++++++ docs/.DS_Store | Bin 8196 -> 8196 bytes docs/docs/.DS_Store | Bin 6148 -> 6148 bytes docs/docs/release.mdx | 137 ------------------ docs/src/.DS_Store | Bin 6148 -> 6148 bytes .../src/components/HomepageFeatures/index.tsx | 32 ++-- .../HomepageFeatures/styles.module.css | 34 ++++- docs/src/css/custom.css | 28 ++-- docs/src/pages/index.module.css | 34 +++++ docs/src/pages/index.tsx | 80 +++++++++- docs/static/.DS_Store | Bin 0 -> 6148 bytes docs/{playwright-web => static/img}/.DS_Store | Bin 6148 -> 6148 bytes docs/static/img/easy-to-use.svg | 2 +- docs/static/img/mcp-database.svg | 1 + docs/static/img/playwright.svg | 1 - 15 files changed, 257 insertions(+), 172 deletions(-) create mode 100644 .github/workflows/deploy-docs.yml delete mode 100644 docs/docs/release.mdx create mode 100644 docs/static/.DS_Store rename docs/{playwright-web => static/img}/.DS_Store (92%) create mode 100644 docs/static/img/mcp-database.svg delete mode 100644 docs/static/img/playwright.svg diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml new file mode 100644 index 0000000..c56a4d6 --- /dev/null +++ b/.github/workflows/deploy-docs.yml @@ -0,0 +1,80 @@ +name: Deploy Docusaurus documentation to GH Pages + +on: + # Runs on pushes targeting the default branch + push: + branches: ["main"] + paths: + - 'docs/**' # Only trigger when docs directory changes + pull_request: + branches: ["main"] + paths: + - 'docs/**' # Only trigger when docs directory changes + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + # Build job + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '18' + cache: 'npm' + cache-dependency-path: 'docs/package-lock.json' + - name: Install dependencies + working-directory: docs + run: npm ci + - name: Build site + working-directory: docs + run: npm run build + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: docs/build + + # Deployment job for main branch + deploy-main: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + if: github.ref == 'refs/heads/main' # Only deploy on main branch + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 + + # Deployment job for PR branches (will deploy to a PR-specific subdomain) + deploy-preview: + runs-on: ubuntu-latest + needs: build + if: github.event_name == 'pull_request' # Only deploy on PR + environment: + name: preview-${{ github.event.pull_request.number }} + url: ${{ steps.deployment.outputs.page_url }} + steps: + - name: Deploy PR Preview + id: deployment + uses: actions/deploy-pages@v4 + with: + preview: true + deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }} \ No newline at end of file diff --git a/docs/.DS_Store b/docs/.DS_Store index 8a3fa73c91fe28f33a8c8d5ff5f254d37a916e5d..22d54dbca85088a8105f96cb087d0e5a08c6b33b 100644 GIT binary patch delta 217 zcmZp1XmOa}&nUJrU^hRb*km4o7x4@{>*vE!!S5GKeqs=hk=17VREqG6?SHZVum7yl4g_8geJQoyJ;w;67Xgb zJc&2|0rBf%kDe64gQtQB>R%vUMDgTrK9Wuvlk`--W?<&c%zJOG^ zJXu|y`;u!)gMdNczeIqa4>mHVaYY-FilYOCxB`HN&@B?`5nchc6^$#}kQ5vwCRIVD zDpOYsCe_hzE4jF$4N0XsF?IQ1YG$TxC``CLFUu`n|gwNKB^ zZEl9GV<%&0E~QsXW!JkcU0~`MpwT@pZR!4$R;E)~uUz3Wto-!5&MSM#r21B2ow&9A z?%Dg7XWRL?p8QHd8{7TDr)c50ma4iX&s{+uxAQQ$z&A&EN>f?XYE(kY*Xw72WnWpCI1{mAS79DVQ>rqB_pz|IV{mzkgC;)p^`jCvi#0!}LNGxo`0B&QJmM6iCB&*kHPjI+ zw3F~WK#tKBwDZ7(_pYL+iv9u+T17iRYaN<3)MC)h04wS=<#DSFJM;JbtvZe zi{jU`w_p5(9Q+={8mUrNj}+0V`@0-HCf^>l&IF~WquL4$?daR zU-|xMD*G+!cwvm^SdE#;nNreiEwhsYlw|*F+ZbOvo#1(BwiXNl`{}Ax|-rvmg SU%vCVy(5_Czt{!`Ui<_>Li+~* diff --git a/docs/docs/.DS_Store b/docs/docs/.DS_Store index 2f790b827713641286efbedcb171b914eec699c7..9af27be87f310a683a35ff3aa187f09525752201 100644 GIT binary patch delta 258 zcmZoMXfc@J&nUDpU^g?P(BuRbiODJ~v+9$|iwlx+@{<@C7Bn1{L;LXVzAy|hy({G2WPy1M73+Rk)@fAg0Y2Rt&T#qrICS-f{C$N zZ7nBYluXrC6AmA(J7OA-ycPC@&{JFCC;| TvLCC|W;@oWjGNgx{_+C=vbIO0 delta 43 zcmZoMXfc@J&nU1lU^g?Pz~lrLiODJ~vnKbjW=>9K6W^@F_LOmA!;{VI9Dn%%F!K(v diff --git a/docs/docs/release.mdx b/docs/docs/release.mdx deleted file mode 100644 index 82c6558..0000000 --- a/docs/docs/release.mdx +++ /dev/null @@ -1,137 +0,0 @@ ---- -sidebar_position: 2 ---- -import YouTubeVideoEmbed from '@site/src/components/HomepageFeatures/YouTubeVideoEmbed'; - -# Release Notes - -## Version 1.0.3 -- **Code Generation Capabilities**: Added new code generation capability 🎭 - - `start_codegen_session`: Start a new session to record Playwright actions - - `end_codegen_session`: End a session and generate test file - - `get_codegen_session`: Retrieve information about a session - - `clear_codegen_session`: Clear a session without generating a test - - Ability to record real browser interactions and convert them to reusable Playwright tests - - Support for customizing test output path, test names, and including descriptive comments -- **Enhanced Browser Navigation**: Added new navigation control tools 🧭 - - `playwright_go_back`: Navigate back in browser history - - `playwright_go_forward`: Navigate forward in browser history -- **Advanced Interaction**: Added new interaction tools for more complex scenarios 🔄 - - `playwright_drag`: Drag elements from one location to another - - `playwright_press_key`: Press keyboard keys with optional element focus -- **Output Capabilities**: Added content export functionality 📄 - - `playwright_save_as_pdf`: Save the current page as a PDF file with customizable options -- **Content Extraction**: Added tools for retrieving page content 📝 - - `playwright_get_visible_text`: Extract all visible text content from the current page - - `playwright_get_visible_html`: Get the complete HTML content of the current page -- Comprehensive test coverage for all new tools -- Updated documentation with examples and usage detail - -## Version 1.0.2 -- **Multi-Browser Support**: Added support for Firefox and WebKit browsers in addition to Chromium 🌐 - - New `browserType` parameter for `playwright_navigate` tool allows specifying browser engine - - Supported browser types: "chromium" (default), "firefox", and "webkit" - - Seamless browser engine switching during automation sessions -- Enhanced test coverage for different browser engines -- Updated documentation with browser-specific examples - -## Version 1.0.0 -- First major release of Playwright MCP Server with the tool structure changes 🚀 -- Fixed issue with headless mode in Playwright #62 -- Fixed issue Navigation failed: page.goto: Target page, context or browser has been closed #63 -- Completed RFC: Refactor handleToolCall for better maintainability #46 -- New feature: Optional Bearer Authorization to API POST (Thanks to ***@CopilotMe***) -- Fixed issue Exit process on host close (Thanks to ***@kiracih***) -- New Feature: Three new tools (Thanks to ***@VinceOPS***) - - `playwright_except_response` - - `playwright_assert_response` - - Here is the scenario for the above two tools - ```BDD - Scenario: Logging in requires captcha verification - Given I expect the browser to receive an HTTP response from "**/security/captcha-precheck" - When I enter "some-identifier@test.com" in the input and I submit - Then The browser should have received the HTTP response - And Its body should contain a property "captchaFamily" - ``` - - A new tool `playwright_custom_user_agent` to define a custom user agent. - - -## Version 0.3.1 -- Fixed BROWSER_TOOLS as Playwright_console_logs is not required (Thanks to https://github.com/kfern) -- Added Tests for all the Playwright MCP Server tools (Thanks to https://github.com/kfern) -- Updated documentation with AI Courses - - Gen AI Course [Details here](/docs/ai-courses/AIAgents) - - AI Agents Course [Details here](/docs/ai-courses/AIAgents) - - Machine Learning Course [Details here](/docs/ai-courses/MachineLearning) - -## Version 0.3.0 -- Added support for `Playwright_console_logs` to get the console logs from the browser. Following logs types -are supported.[More Detail available here](/docs/playwright-web/Console-Logging) - - `log` - - `info` - - `warn` - - `error` - - `debug` - - `all` - - -:::tip Usage Example -To invoke `Playwright_console_logs` via MCP Playwright, use the following prompt: - -```plaintext -Get the console log from the browser whenever you perform any action. -::: -- Added support for `Playwright_close` to close the browser and release all resources. - -:::tip Usage Example -To invoke `Playwright_close` via MCP Playwright, use the following prompt: - -```plaintext -Close the browser once the operation is completed. -::: - -## Version 0.2.9 -- Fixed Screenshot issue with Cline, Cursor and Windows 11 (Reported by @MackDing, @mengjian-github) - -## Version 0.2.8 - - Support of iFrame while running Playwright test via MCP (Supports Cline as well). Thanks to @VinceOPS - - Fixed issue while saving PNG file. Thanks to @BayLee4 - - Fixed issue with full page screenshot arguments to be passed to tool, thanks for the report @unipro-LeighMason - - Updated to latest version of Playwright and MCP Server library - - -## Version 0.2.7 - - Fixed the issue with Playwright MCP server not working Cline, VSCode reported in #26, #16 - - Fixed issue #28 and now chrome version is updated - - Updated to latest version of Playwright and MCP Server library - -## Version 0.2.6 -- New Documentation site powered by docusaurus hosted in GH-Pages https://executeautomation.github.io/mcp-playwright/ - ---- - -## Version 0.2.5 - -#### API Test Support -- Playwright MCP Server now supports API Testing for - - `GET` request - - `POST` request - - `PUT` request - - `PATCH` request - - `DELETE` request - - - ---- - -## Version 0.2.4 -- Added support for smithery -- Added Support to save Playwright screenshot in local directory, thanks to `@s4l4x` - ---- - -## Version 0.2.3 -- Added quality of life improvement - ---- diff --git a/docs/src/.DS_Store b/docs/src/.DS_Store index 5757547beb0a09f71b1c85d86b8f72ba8f8f2571..011805a0a85cddacc23977af03270bfb9d9d5927 100644 GIT binary patch delta 297 zcmZoMXfc=|#>B!ku~2NHo+2aP#(>?7iw`g}G4f4LV3OFZ!o8|HpP!QiV<#qsWu}(L z3y3)9=anR8=A{;aHDsow0+qysXXd5kmpkQ`=A{&a^#(&EI5;^t;{_zDU8{{O&2$uu zEevaQ6sj$a40IGsjLm9mIXOg?^{s>AvvYFu^1FbJ0|G`y2+hC?rD0U}WEJLSaaM)` zhD3&RhE#^)vf!e;ocz3Wkfx1=<&2xzIruq%0kL@_^LOUS{34DVK%orZp delta 75 zcmZoMXfc=|#>B)qu~2NHo+2a9#(>?7j69PQSR^*9u<$WXW??JcEXpCoGO@vLGdl-A d2T - Playwright MCP Server is easy to use, just change the Claude config file and you are done. + MCP Database Server is easy to configure. Just update your Claude Desktop config file, and you're ready to start querying your databases! ), }, { - title: 'Test UI and APIs', - Svg: require('@site/static/img/playwright.svg').default, + title: 'Multiple Database Support', + Svg: require('@site/static/img/mcp-database.svg').default, description: ( <> - Test both UI and API of your application with plain English text. No code required. + Seamlessly connect to SQLite, SQL Server, and PostgreSQL databases with a consistent interface for all your data needs. ), }, { - title: 'Powered by NodeJS', + title: 'Powered by Node.js', Svg: require('@site/static/img/node.svg').default, description: ( <> - Playwright MCP Server is built on top of NodeJS, making it fast and efficient. + Built with Node.js for high performance and reliability. Benefit from connection pooling, async operations, and efficient memory management. ), }, @@ -41,12 +41,14 @@ const FeatureList: FeatureItem[] = [ function Feature({title, Svg, description}: FeatureItem) { return (
-
- -
-
- {title} -

{description}

+
+
+ +
+
+ {title} +

{description}

+
); @@ -56,6 +58,12 @@ export default function HomepageFeatures(): JSX.Element { return (
+
+
+ Key Features +

Powerful capabilities to enhance your Claude interactions with databases

+
+
{FeatureList.map((props, idx) => ( diff --git a/docs/src/components/HomepageFeatures/styles.module.css b/docs/src/components/HomepageFeatures/styles.module.css index b248eb2..9a4f2ed 100644 --- a/docs/src/components/HomepageFeatures/styles.module.css +++ b/docs/src/components/HomepageFeatures/styles.module.css @@ -3,9 +3,39 @@ align-items: center; padding: 2rem 0; width: 100%; + background-color: var(--ifm-color-emphasis-100); } .featureSvg { - height: 200px; - width: 200px; + height: 140px; + width: 140px; + margin-bottom: 1.5rem; + transition: transform 0.3s ease; +} + +.featureItem { + padding: 2rem; + border-radius: 8px; + transition: all 0.3s ease; + height: 100%; +} + +.featureItem:hover { + transform: translateY(-5px); + box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1); +} + +.featureItem:hover .featureSvg { + transform: scale(1.05); +} + +.featureTitle { + font-size: 1.5rem; + font-weight: 600; + margin-bottom: 1rem; +} + +.featureDescription { + font-size: 1rem; + line-height: 1.5; } diff --git a/docs/src/css/custom.css b/docs/src/css/custom.css index 2bc6a4c..4dee976 100644 --- a/docs/src/css/custom.css +++ b/docs/src/css/custom.css @@ -6,25 +6,25 @@ /* You can override the default Infima variables here. */ :root { - --ifm-color-primary: #2e8555; - --ifm-color-primary-dark: #29784c; - --ifm-color-primary-darker: #277148; - --ifm-color-primary-darkest: #205d3b; - --ifm-color-primary-light: #33925d; - --ifm-color-primary-lighter: #359962; - --ifm-color-primary-lightest: #3cad6e; + --ifm-color-primary: #3578e5; + --ifm-color-primary-dark: #2160c4; + --ifm-color-primary-darker: #1a56b9; + --ifm-color-primary-darkest: #144098; + --ifm-color-primary-light: #4889e8; + --ifm-color-primary-lighter: #5a96eb; + --ifm-color-primary-lightest: #80aff0; --ifm-code-font-size: 95%; --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1); } /* For readability concerns, you should choose a lighter palette in dark mode. */ [data-theme='dark'] { - --ifm-color-primary: #25c2a0; - --ifm-color-primary-dark: #21af90; - --ifm-color-primary-darker: #1fa588; - --ifm-color-primary-darkest: #1a8870; - --ifm-color-primary-light: #29d5b0; - --ifm-color-primary-lighter: #32d8b4; - --ifm-color-primary-lightest: #4fddbf; + --ifm-color-primary: #4e89e8; + --ifm-color-primary-dark: #3077e4; + --ifm-color-primary-darker: #226fe3; + --ifm-color-primary-darkest: #1957c0; + --ifm-color-primary-light: #6c9bec; + --ifm-color-primary-lighter: #7ca6ee; + --ifm-color-primary-lightest: #a8c4f4; --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); } diff --git a/docs/src/pages/index.module.css b/docs/src/pages/index.module.css index 9f71a5d..d7c8658 100644 --- a/docs/src/pages/index.module.css +++ b/docs/src/pages/index.module.css @@ -8,6 +8,7 @@ text-align: center; position: relative; overflow: hidden; + background: linear-gradient(135deg, var(--ifm-color-primary-darkest) 0%, var(--ifm-color-primary) 100%); } @media screen and (max-width: 996px) { @@ -20,4 +21,37 @@ display: flex; align-items: center; justify-content: center; + margin-top: 2rem; +} + +.button { + margin: 0 0.5rem; + transition: all 0.3s ease; + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); +} + +.button:hover { + transform: translateY(-2px); + box-shadow: 0 6px 8px rgba(0, 0, 0, 0.15); +} + +.heroTitle { + font-size: 3rem; + font-weight: 800; + margin-bottom: 1rem; +} + +.heroSubtitle { + font-size: 1.5rem; + margin-bottom: 2rem; + opacity: 0.9; +} + +.callToAction { + background-color: var(--ifm-color-emphasis-100); + padding: 5rem 0; + margin-top: 2rem; + background: linear-gradient(135deg, var(--ifm-color-emphasis-200) 0%, var(--ifm-color-emphasis-100) 100%); + border-top: 1px solid var(--ifm-color-emphasis-200); + border-bottom: 1px solid var(--ifm-color-emphasis-200); } diff --git a/docs/src/pages/index.tsx b/docs/src/pages/index.tsx index 662b99a..097ac2d 100644 --- a/docs/src/pages/index.tsx +++ b/docs/src/pages/index.tsx @@ -12,15 +12,20 @@ function HomepageHeader() { return (
- + {siteConfig.title} -

{siteConfig.tagline}

+

{siteConfig.tagline}

- Playwright MCP Server Tutorial - 5min ⏱️ + Get Started with Database Server ⏱️ + + + View Database Tools
@@ -28,15 +33,80 @@ function HomepageHeader() { ); } +function DatabaseSupport() { + return ( +
+
+
+
+ Supported Databases +

+ The MCP Database Server provides seamless integration with multiple database systems, + allowing Claude to query and manipulate data with ease. +

+
+
+
+
+
+

SQLite

+

Perfect for local development and lightweight applications.

+
+
+
+
+

SQL Server

+

Robust enterprise-grade database with powerful features.

+
+
+
+
+

PostgreSQL

+

Advanced open-source database with extensive capabilities.

+
+
+
+
+
+ ); +} + +function CallToAction() { + return ( +
+
+
+
+ Ready to Connect Claude to Your Databases? +

+ Start leveraging the power of AI with your structured data today. + Follow our simple setup guide to get up and running in minutes. +

+
+ + Get Started Now + +
+
+
+
+
+ ); +} + export default function Home(): JSX.Element { const {siteConfig} = useDocusaurusContext(); return ( + description="Connect Claude to your databases with MCP Database Server">
+ +
); diff --git a/docs/static/.DS_Store b/docs/static/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..034cf7cfbbd1ebae14b0221e20b6efa9df3ac0ed GIT binary patch literal 6148 zcmeHK%}OId5bjQ*_8>wI3LYE0224~$@iNBjT^v~tyAm@_h=Y^qkRNjhfjRG9_T;np z1cEQ%b>Cob-nXi|vKxtd)F4&R{dLz*|9sPQPYEGpbr4mAC<-AI6vUhd)eC}lEHjcL z%_5-0F?yXaF(LHs!p@90E9Q{_{C0T}i?(Qm!|Csr#JzsG{3vtz!ouQ`T2jmEJh(E$ zpx@{Zdeuhv8}?3(Ny16H5q^!E!+LS`$fW&7oHn~QAdZ^g^8GAMBQva;K^paJY~T#a zQ(nEeJ{oQ9@0RrTUS(X;qy4RNN$+g$j>n!_+t@rfsb44U)ckN1N;qv+RtP8X6B@Le zq*VznP1~JA_0;`uX`5P&&Z#Q=`g8mH;r?*i8ogodTuqJY9pk(--%Zd>6O*<;Gg%#4 zS(pK4fEk!a2I!tr%k#K6UK2CG416d9ct2<;h(2NF&|V!-*%Sb<0BS4H##{npG@(zJ zIRp!cbfJJQR8oo|T{!49`T2yILl-V2B_EPzmXx7LJ3EZ8t-FxEL#~+tX5cvkdDkuC z`~T(j{Qr3n_m}}@;8QUm3$>tDg)PzBIFFwWVP^^Gn XV*}79%p8ISgntAq4O}q;@5;bm&<$oB literal 0 HcmV?d00001 diff --git a/docs/playwright-web/.DS_Store b/docs/static/img/.DS_Store similarity index 92% rename from docs/playwright-web/.DS_Store rename to docs/static/img/.DS_Store index 03e99434e5314fae7871af30a54f587fa3170212..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 100644 GIT binary patch delta 71 zcmZoMXfc=|&Zs&uQEZ}~A_oHyFfuR*Y-VI+W1lR*xN0*yhX4noDvMRn z15laVd>5Cboctu9Fvm`g$7?p+KIRBy!(~(O$QEQkOx>6$%s$ybgk>`~2M-5h`^LoY Z%#-;=6a|@p1}Ok>0uY12W=E03%m5% \ No newline at end of file + \ No newline at end of file diff --git a/docs/static/img/mcp-database.svg b/docs/static/img/mcp-database.svg new file mode 100644 index 0000000..d88d903 --- /dev/null +++ b/docs/static/img/mcp-database.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/static/img/playwright.svg b/docs/static/img/playwright.svg deleted file mode 100644 index ab24851..0000000 --- a/docs/static/img/playwright.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file