[project]
name = "linkedin-mcp-server"
version = "0.1.0"
description = "MCP server using Anthropic library to expose a LinkedIn profile as a resource."
license = {text = "MIT"}
authors = [
{name = "Francisco Perez Sorrosal", email = "fperezsorrosal@gmail.com"}
]
requires-python = ">=3.11"
classifiers = [
"Development Status :: 3 - Alpha",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License", # Or your preferred license
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.13",
"Framework :: FastAPI",
"Topic :: Software Development :: Libraries :: Python Modules",
]
dependencies = [
"httpx>=0.28.1,<0.29",
"mcp[cli]>=1.26.0,<2",
"beautifulsoup4>=4.13.4,<5",
"pydantic>=2.10.6,<3",
"loguru>=0.7.3,<0.8",
]
[project.urls]
"Homepage" = "https://github.com/francisco-perez-sorrosal/linkedin-mcp"
"Bug Tracker" = "https://github.com/francisco-perez-sorrosal/linkedin-mcp/issues"
[build-system]
build-backend = "hatchling.build"
requires = ["hatchling"]
[tool.pixi.project]
channels = ["conda-forge"]
platforms = ["osx-arm64"]
[tool.pixi.pypi-dependencies]
linkedin_mcp_server = { path = ".", editable = true }
[tool.pixi.tasks]
mcps="python src/linkedin_mcp_server/main.py"
# MCP Bundle
update-mcpb-deps = "rm -rf uv.lock && pixi run uv sync && pixi run uv lock && pixi run uv export --no-hashes --no-emit-project --format requirements-txt > requirements.txt"
mcp-bundle="rm -rf lib/ && mkdir -p lib && uv pip install -r requirements.txt --target lib --python-version 3.11"
pack = "npx @anthropic-ai/mcpb pack . dist/mcpb-package/linkedin-mcp-fps.mcpb"
test = "PYTHONPATH=src pytest tests/"
test-db = "PYTHONPATH=src pytest tests/test_db.py -v"
[tool.pixi.dependencies]
pip = ">=25.2,<26"
pytest = ">=9.0.2,<10"
pytest-asyncio = ">=1.3.0,<2"
beautifulsoup4 = ">=4.14.3,<5"
[tool.hatch.metadata]
allow-direct-references = true
[tool.hatch.build.targets.wheel]
packages = ["src/linkedin_mcp_server"]
[project.scripts]
linkedin-mcp-server = "linkedin_mcp_server.main:app"
[tool.setuptools]
packages = ["linkedin_mcp_server"]
package-dir = {"" = "src"}
[tool.black]
line-length = 88
target-version = ['py311', 'py312']
[tool.isort]
profile = "black"
line_length = 88
[tool.mypy]
python_version = "3.9"
warnings_as_errors = true
strict = true
# For FastAPI and Pydantic, if needed:
# plugins = "pydantic.mypy"
[[tool.mypy.overrides]]
module = [
"aiofiles",
"multipart"
]
ignore_missing_imports = true
[tool.pytest.ini_options]
testpaths = ["tests"]
python_files = "test_*.py"
python_classes = "Test*"
python_functions = "test_*"
asyncio_mode = "auto"
# Exclude lib/ directory from test collection
norecursedirs = ["lib", ".git", ".pixi", "dist", "build"]