yfin-mcp 0.2.7__tar.gz → 0.2.8__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. {yfin_mcp-0.2.7 → yfin_mcp-0.2.8}/PKG-INFO +14 -1
  2. {yfin_mcp-0.2.7 → yfin_mcp-0.2.8}/README.md +13 -0
  3. {yfin_mcp-0.2.7 → yfin_mcp-0.2.8}/pyproject.toml +1 -1
  4. {yfin_mcp-0.2.7 → yfin_mcp-0.2.8}/src/yfin_mcp/server.py +13 -3
  5. {yfin_mcp-0.2.7 → yfin_mcp-0.2.8}/src/yfin_mcp.egg-info/PKG-INFO +14 -1
  6. {yfin_mcp-0.2.7 → yfin_mcp-0.2.8}/uv.lock +1 -1
  7. {yfin_mcp-0.2.7 → yfin_mcp-0.2.8}/.gitignore +0 -0
  8. {yfin_mcp-0.2.7 → yfin_mcp-0.2.8}/.pre-commit-config.yaml +0 -0
  9. {yfin_mcp-0.2.7 → yfin_mcp-0.2.8}/.python-version +0 -0
  10. {yfin_mcp-0.2.7 → yfin_mcp-0.2.8}/.vscode/mcp.json +0 -0
  11. {yfin_mcp-0.2.7 → yfin_mcp-0.2.8}/.vscode/settings.json +0 -0
  12. {yfin_mcp-0.2.7 → yfin_mcp-0.2.8}/Dockerfile +0 -0
  13. {yfin_mcp-0.2.7 → yfin_mcp-0.2.8}/LICENSE +0 -0
  14. {yfin_mcp-0.2.7 → yfin_mcp-0.2.8}/README.zh.md +0 -0
  15. {yfin_mcp-0.2.7 → yfin_mcp-0.2.8}/TESTING.md +0 -0
  16. {yfin_mcp-0.2.7 → yfin_mcp-0.2.8}/assets/demo.gif +0 -0
  17. {yfin_mcp-0.2.7 → yfin_mcp-0.2.8}/publish_package.bat +0 -0
  18. {yfin_mcp-0.2.7 → yfin_mcp-0.2.8}/publish_package.sh +0 -0
  19. {yfin_mcp-0.2.7 → yfin_mcp-0.2.8}/run_inspector.bat +0 -0
  20. {yfin_mcp-0.2.7 → yfin_mcp-0.2.8}/run_inspector.sh +0 -0
  21. {yfin_mcp-0.2.7 → yfin_mcp-0.2.8}/run_inspector_prod.bat +0 -0
  22. {yfin_mcp-0.2.7 → yfin_mcp-0.2.8}/run_inspector_prod.sh +0 -0
  23. {yfin_mcp-0.2.7 → yfin_mcp-0.2.8}/scripts/bump_version.py +0 -0
  24. {yfin_mcp-0.2.7 → yfin_mcp-0.2.8}/setup.cfg +0 -0
  25. {yfin_mcp-0.2.7 → yfin_mcp-0.2.8}/smithery.yaml +0 -0
  26. {yfin_mcp-0.2.7 → yfin_mcp-0.2.8}/src/yfin_mcp/__init__.py +0 -0
  27. {yfin_mcp-0.2.7 → yfin_mcp-0.2.8}/src/yfin_mcp/__main__.py +0 -0
  28. {yfin_mcp-0.2.7 → yfin_mcp-0.2.8}/src/yfin_mcp/cache_manager.py +0 -0
  29. {yfin_mcp-0.2.7 → yfin_mcp-0.2.8}/src/yfin_mcp/pagination_utils.py +0 -0
  30. {yfin_mcp-0.2.7 → yfin_mcp-0.2.8}/src/yfin_mcp.egg-info/SOURCES.txt +0 -0
  31. {yfin_mcp-0.2.7 → yfin_mcp-0.2.8}/src/yfin_mcp.egg-info/dependency_links.txt +0 -0
  32. {yfin_mcp-0.2.7 → yfin_mcp-0.2.8}/src/yfin_mcp.egg-info/entry_points.txt +0 -0
  33. {yfin_mcp-0.2.7 → yfin_mcp-0.2.8}/src/yfin_mcp.egg-info/requires.txt +0 -0
  34. {yfin_mcp-0.2.7 → yfin_mcp-0.2.8}/src/yfin_mcp.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: yfin-mcp
3
- Version: 0.2.7
3
+ Version: 0.2.8
4
4
  Summary: Enhanced Yahoo Finance MCP Server with intelligent pagination, caching, and LLM-optimized responses
5
5
  Author: AlexYoung (Original Author)
6
6
  Author-email: fritzprix <innocentevil0914@gmail.com>
@@ -317,6 +317,19 @@ chmod +x publish_package.sh
317
317
  > [!NOTE]
318
318
  > The scripts will build the package into the `dist/` directory and then use `twine` to upload it. Ensure you have your PyPI credentials configured in `~/.pypirc` (or `%HOME%\.pypirc` on Windows) or set the `TWINE_PASSWORD` environment variable.
319
319
 
320
+
321
+ ## Troubleshooting
322
+
323
+ ### [ERROR] os error 32: Process cannot access the file
324
+ If you see this error when running `publish_package.bat` or `uv build`, it means the MCP server is still running and locking the executable.
325
+ 1. **Close Claude Desktop** or any app using the yfinance MCP server.
326
+ 2. Stop any running **MCP Inspector** instances.
327
+ 3. If the error persists, manually kill the processes:
328
+ ```bash
329
+ taskkill /F /IM yfin-mcp.exe /T
330
+ taskkill /F /IM python.exe /T
331
+ ```
332
+
320
333
  ## License
321
334
 
322
335
  MIT License
@@ -285,6 +285,19 @@ chmod +x publish_package.sh
285
285
  > [!NOTE]
286
286
  > The scripts will build the package into the `dist/` directory and then use `twine` to upload it. Ensure you have your PyPI credentials configured in `~/.pypirc` (or `%HOME%\.pypirc` on Windows) or set the `TWINE_PASSWORD` environment variable.
287
287
 
288
+
289
+ ## Troubleshooting
290
+
291
+ ### [ERROR] os error 32: Process cannot access the file
292
+ If you see this error when running `publish_package.bat` or `uv build`, it means the MCP server is still running and locking the executable.
293
+ 1. **Close Claude Desktop** or any app using the yfinance MCP server.
294
+ 2. Stop any running **MCP Inspector** instances.
295
+ 3. If the error persists, manually kill the processes:
296
+ ```bash
297
+ taskkill /F /IM yfin-mcp.exe /T
298
+ taskkill /F /IM python.exe /T
299
+ ```
300
+
288
301
  ## License
289
302
 
290
303
  MIT License
@@ -8,7 +8,7 @@ include = ["yfin_mcp*"]
8
8
 
9
9
  [project]
10
10
  name = "yfin-mcp"
11
- version = "0.2.7"
11
+ version = "0.2.8"
12
12
  description = "Enhanced Yahoo Finance MCP Server with intelligent pagination, caching, and LLM-optimized responses"
13
13
  readme = "README.md"
14
14
  requires-python = ">=3.11"
@@ -1,4 +1,6 @@
1
1
  import json
2
+ import logging
3
+ import sys
2
4
  from enum import Enum
3
5
  from typing import Optional
4
6
 
@@ -9,6 +11,14 @@ from mcp.server.fastmcp import FastMCP
9
11
  from .cache_manager import get_cache
10
12
  from .pagination_utils import paginate_by_tokens, export_to_json
11
13
 
14
+ # Configure logging to stderr
15
+ logging.basicConfig(
16
+ level=logging.INFO,
17
+ format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
18
+ stream=sys.stderr,
19
+ )
20
+ logger = logging.getLogger("yfinance-mcp")
21
+
12
22
 
13
23
  # Define an enum for the type of financial statement
14
24
  class FinancialType(str, Enum):
@@ -421,10 +431,10 @@ async def get_option_expiration_dates(ticker: str) -> str:
421
431
  company = yf.Ticker(ticker)
422
432
  try:
423
433
  if company.isin is None:
424
- print(f"Company ticker {ticker} not found.")
434
+ logger.error(f"Company ticker {ticker} not found.")
425
435
  return f"Company ticker {ticker} not found."
426
436
  except Exception as e:
427
- print(f"Error: getting option expiration dates for {ticker}: {e}")
437
+ logger.exception(f"Error getting option expiration dates for {ticker}")
428
438
  return f"Error: getting option expiration dates for {ticker}: {e}"
429
439
  return json.dumps(company.options)
430
440
 
@@ -558,7 +568,7 @@ async def get_recommendations(
558
568
 
559
569
  def main() -> None:
560
570
  """Main entry point for the server"""
561
- print("Starting Yahoo Finance MCP server...")
571
+ logger.info("Starting Yahoo Finance MCP server...")
562
572
  yfinance_server.run(transport="stdio")
563
573
 
564
574
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: yfin-mcp
3
- Version: 0.2.7
3
+ Version: 0.2.8
4
4
  Summary: Enhanced Yahoo Finance MCP Server with intelligent pagination, caching, and LLM-optimized responses
5
5
  Author: AlexYoung (Original Author)
6
6
  Author-email: fritzprix <innocentevil0914@gmail.com>
@@ -317,6 +317,19 @@ chmod +x publish_package.sh
317
317
  > [!NOTE]
318
318
  > The scripts will build the package into the `dist/` directory and then use `twine` to upload it. Ensure you have your PyPI credentials configured in `~/.pypirc` (or `%HOME%\.pypirc` on Windows) or set the `TWINE_PASSWORD` environment variable.
319
319
 
320
+
321
+ ## Troubleshooting
322
+
323
+ ### [ERROR] os error 32: Process cannot access the file
324
+ If you see this error when running `publish_package.bat` or `uv build`, it means the MCP server is still running and locking the executable.
325
+ 1. **Close Claude Desktop** or any app using the yfinance MCP server.
326
+ 2. Stop any running **MCP Inspector** instances.
327
+ 3. If the error persists, manually kill the processes:
328
+ ```bash
329
+ taskkill /F /IM yfin-mcp.exe /T
330
+ taskkill /F /IM python.exe /T
331
+ ```
332
+
320
333
  ## License
321
334
 
322
335
  MIT License
@@ -939,7 +939,7 @@ wheels = [
939
939
 
940
940
  [[package]]
941
941
  name = "yfin-mcp"
942
- version = "0.2.6"
942
+ version = "0.2.7"
943
943
  source = { editable = "." }
944
944
  dependencies = [
945
945
  { name = "mcp", extra = ["cli"] },
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes