Skip to content

Commit 2ceacc8

Browse files
committed
fix: update Dockerfile to include git installation, enhance pyproject.toml with license and dependency organization and refine CI workflow by removing unused validation step
1 parent 095b4cd commit 2ceacc8

File tree

7 files changed

+51
-35
lines changed

7 files changed

+51
-35
lines changed

.github/workflows/ci.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,6 @@ jobs:
4141
- name: "Python lint"
4242
run: uvx ruff check .
4343

44-
- name: "Validate project metadata"
45-
run: uvx --from 'validate-pyproject[all,store]' validate-pyproject pyproject.toml
46-
4744
build-and-publish:
4845
runs-on: ubuntu-latest
4946

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ ENV UV_COMPILE_BYTECODE=1 \
77

88
# Install build dependencies and clean up in the same layer
99
RUN apt-get update -y && \
10-
apt-get install --no-install-recommends -y clang && \
10+
apt-get install --no-install-recommends -y clang git && \
1111
rm -rf /var/lib/apt/lists/*
1212

1313
# Install Python before the project for caching

pyproject.toml

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
1-
[build-system]
2-
requires = ["hatchling", "uv-dynamic-versioning"]
3-
build-backend = "hatchling.build"
4-
51
[project]
62
name = "browser-use-mcp-server"
73
dynamic = ["version"]
84
description = "MCP browser-use server library"
95
readme = "README.md"
106
requires-python = ">=3.11,<4.0"
7+
license = {text = "MIT"}
118
authors = [
129
{name = "Cobrowser Team"}
1310
]
@@ -32,17 +29,19 @@ dependencies = [
3229
]
3330

3431
[project.optional-dependencies]
35-
dev = [
32+
# Dependencies for running tests
33+
test = [
3634
"pytest>=7.0.0",
3735
"pytest-asyncio>=0.21.0",
36+
"pytest-cov>=4.1.0",
37+
]
38+
# Dependencies for development (includes test dependencies)
39+
dev = [
40+
"browser-use-mcp-server[test]",
3841
"black>=23.0.0",
3942
"isort>=5.12.0",
4043
"mypy>=1.0.0",
41-
]
42-
test = [
43-
"pytest>=7.0.0",
44-
"pytest-asyncio>=0.21.0",
45-
"pytest-cov>=4.1.0",
44+
"ruff>=0.5.5",
4645
]
4746

4847
[project.urls]
@@ -72,6 +71,10 @@ disallow_incomplete_defs = true
7271
[project.scripts]
7372
browser-use-mcp-server = "browser_use_mcp_server.cli:cli"
7473

74+
[build-system]
75+
requires = ["hatchling", "uv-dynamic-versioning"]
76+
build-backend = "hatchling.build"
77+
7578
[tool.hatch.build]
7679
packages = ["src", "server"]
7780
include = ["server"]
@@ -86,3 +89,16 @@ source = "uv-dynamic-versioning"
8689
vcs = "git"
8790
style = "pep440"
8891
bump = true
92+
93+
# Added Ruff configuration
94+
[tool.ruff]
95+
line-length = 88
96+
target-version = "py311"
97+
98+
[tool.ruff.lint]
99+
# Enable common Pyflakes, pycodestyle, and isort rules
100+
select = ["E", "F", "W", "I"]
101+
102+
[tool.ruff.format]
103+
# Use black-compatible formatting
104+
quote-style = "double"

server/server.py

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,34 +10,34 @@
1010
"""
1111

1212
# Standard library imports
13-
import os
1413
import asyncio
1514
import json
1615
import logging
16+
import os
17+
import sys
18+
import time
1719
import traceback
1820
import uuid
1921
from datetime import datetime
2022
from typing import Any, Dict, Optional, Tuple, Union
21-
import time
22-
import sys
2323

2424
# Third-party imports
2525
import click
26-
from dotenv import load_dotenv
27-
from pythonjsonlogger import jsonlogger
26+
import mcp.types as types
2827

2928
# Browser-use library imports
3029
from browser_use import Agent
3130
from browser_use.browser.browser import Browser, BrowserConfig
3231
from browser_use.browser.context import BrowserContext, BrowserContextConfig
33-
34-
# MCP server components
35-
from mcp.server import Server
36-
import mcp.types as types
32+
from dotenv import load_dotenv
33+
from langchain_core.language_models import BaseLanguageModel
3734

3835
# LLM provider
3936
from langchain_openai import ChatOpenAI
40-
from langchain_core.language_models import BaseLanguageModel
37+
38+
# MCP server components
39+
from mcp.server import Server
40+
from pythonjsonlogger import jsonlogger
4141

4242
# Configure logging
4343
logger = logging.getLogger()
@@ -806,12 +806,13 @@ def main(
806806
)
807807

808808
# Set up SSE transport
809+
import asyncio
810+
import threading
811+
812+
import uvicorn
809813
from mcp.server.sse import SseServerTransport
810814
from starlette.applications import Starlette
811815
from starlette.routing import Mount, Route
812-
import uvicorn
813-
import asyncio
814-
import threading
815816

816817
sse = SseServerTransport("/messages/")
817818

src/browser_use_mcp_server/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@
55
using the browser_use library.
66
"""
77

8-
__version__ = "0.1.3"
8+
__version__ = "0.0.0"

src/browser_use_mcp_server/cli.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@
55
It wraps the existing server functionality with a CLI.
66
"""
77

8-
import os
9-
import sys
8+
import importlib.util
109
import json
1110
import logging
11+
import os
12+
import sys
13+
1214
import click
13-
import importlib.util
1415
from pythonjsonlogger import jsonlogger
1516

1617
# Configure logging for CLI

src/browser_use_mcp_server/server.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,16 @@
66

77
import os
88
import sys
9+
910
from server.server import (
11+
CONFIG,
1012
Server,
11-
main,
12-
create_browser_context_for_task,
13-
run_browser_task_async,
1413
cleanup_old_tasks,
14+
create_browser_context_for_task,
1515
create_mcp_server,
1616
init_configuration,
17-
CONFIG,
17+
main,
18+
run_browser_task_async,
1819
task_store,
1920
)
2021

0 commit comments

Comments
 (0)