Coverage for src/mcp_atlassian/__init__.py: 43%
46 statements
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-08 18:10 +0900
« prev ^ index » next coverage.py v7.6.12, created at 2025-03-08 18:10 +0900
1import asyncio
2import logging
3import os
4import sys
6import click
7from dotenv import load_dotenv
9__version__ = "0.1.14"
11logger = logging.getLogger("mcp-atlassian")
14@click.command()
15@click.option("-v", "--verbose", count=True, help="Increase verbosity (can be used multiple times)")
16@click.option("--env-file", type=click.Path(exists=True, dir_okay=False), help="Path to .env file")
17@click.option("--confluence-url", help="Confluence URL (e.g., https://your-domain.atlassian.net/wiki)")
18@click.option("--confluence-username", help="Confluence username/email")
19@click.option("--confluence-token", help="Confluence API token")
20@click.option("--jira-url", help="Jira URL (e.g., https://your-domain.atlassian.net)")
21@click.option("--jira-username", help="Jira username/email")
22@click.option("--jira-token", help="Jira API token")
23def main(
24 verbose: bool,
25 env_file: str | None,
26 confluence_url: str | None,
27 confluence_username: str | None,
28 confluence_token: str | None,
29 jira_url: str | None,
30 jira_username: str | None,
31 jira_token: str | None,
32) -> None:
33 """MCP Atlassian Server - Jira and Confluence functionality for MCP"""
34 # Configure logging based on verbosity
35 logging_level = logging.INFO
36 if verbose == 1:
37 logging_level = logging.INFO
38 elif verbose >= 2:
39 logging_level = logging.DEBUG
41 logging.basicConfig(level=logging_level, stream=sys.stderr)
43 # Load environment variables from file if specified, otherwise try default .env
44 if env_file:
45 logger.debug(f"Loading environment from file: {env_file}")
46 load_dotenv(env_file)
47 else:
48 logger.debug("Attempting to load environment from default .env file")
49 load_dotenv()
51 # Set environment variables from command line arguments if provided
52 if confluence_url:
53 os.environ["CONFLUENCE_URL"] = confluence_url
54 if confluence_username:
55 os.environ["CONFLUENCE_USERNAME"] = confluence_username
56 if confluence_token:
57 os.environ["CONFLUENCE_API_TOKEN"] = confluence_token
58 if jira_url:
59 os.environ["JIRA_URL"] = jira_url
60 if jira_username:
61 os.environ["JIRA_USERNAME"] = jira_username
62 if jira_token:
63 os.environ["JIRA_API_TOKEN"] = jira_token
65 from . import server
67 # Run the server
68 asyncio.run(server.main())
71__all__ = ["main", "server", "__version__"]
73if __name__ == "__main__":
74 main()