mcp-server-mas-sequential-thinking 0.2.0__py3-none-any.whl → 0.2.2__py3-none-any.whl
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.
- main.py +6 -6
- {mcp_server_mas_sequential_thinking-0.2.0.dist-info → mcp_server_mas_sequential_thinking-0.2.2.dist-info}/METADATA +11 -5
- mcp_server_mas_sequential_thinking-0.2.2.dist-info/RECORD +5 -0
- mcp_server_mas_sequential_thinking-0.2.0.dist-info/RECORD +0 -5
- {mcp_server_mas_sequential_thinking-0.2.0.dist-info → mcp_server_mas_sequential_thinking-0.2.2.dist-info}/WHEEL +0 -0
- {mcp_server_mas_sequential_thinking-0.2.0.dist-info → mcp_server_mas_sequential_thinking-0.2.2.dist-info}/entry_points.txt +0 -0
main.py
CHANGED
@@ -313,12 +313,12 @@ def get_model_config() -> tuple[Type[Model], str, str]:
|
|
313
313
|
elif provider == "groq":
|
314
314
|
ModelClass = Groq
|
315
315
|
team_model_id = os.environ.get("GROQ_TEAM_MODEL_ID", "deepseek-r1-distill-llama-70b")
|
316
|
-
agent_model_id = os.environ.get("GROQ_AGENT_MODEL_ID", "
|
316
|
+
agent_model_id = os.environ.get("GROQ_AGENT_MODEL_ID", "qwen-2.5-32b")
|
317
317
|
logger.info(f"Using Groq: Team Model='{team_model_id}', Agent Model='{agent_model_id}'")
|
318
318
|
elif provider == "openrouter":
|
319
319
|
ModelClass = OpenRouter
|
320
320
|
team_model_id = os.environ.get("OPENROUTER_TEAM_MODEL_ID", "deepseek/deepseek-chat-v3-0324")
|
321
|
-
agent_model_id = os.environ.get("OPENROUTER_AGENT_MODEL_ID", "deepseek/deepseek-
|
321
|
+
agent_model_id = os.environ.get("OPENROUTER_AGENT_MODEL_ID", "deepseek/deepseek-r1")
|
322
322
|
logger.info(f"Using OpenRouter: Team Model='{team_model_id}', Agent Model='{agent_model_id}'")
|
323
323
|
else:
|
324
324
|
logger.error(f"Unsupported LLM_PROVIDER: {provider}. Defaulting to DeepSeek.")
|
@@ -654,7 +654,7 @@ async def sequentialthinking(thought: str, thoughtNumber: int, totalThoughts: in
|
|
654
654
|
return json.dumps({
|
655
655
|
"error": "Critical Error: Application context not available and re-initialization failed.",
|
656
656
|
"status": "critical_failure"
|
657
|
-
}, indent=2)
|
657
|
+
}, indent=2, ensure_ascii=False)
|
658
658
|
# Or raise Exception("Critical Error: Application context not available.")
|
659
659
|
|
660
660
|
MIN_TOTAL_THOUGHTS = 5 # Keep a minimum suggestion
|
@@ -768,7 +768,7 @@ async def sequentialthinking(thought: str, thoughtNumber: int, totalThoughts: in
|
|
768
768
|
"status": "success"
|
769
769
|
}
|
770
770
|
|
771
|
-
return json.dumps(result_data, indent=2)
|
771
|
+
return json.dumps(result_data, indent=2, ensure_ascii=False)
|
772
772
|
|
773
773
|
except ValidationError as e:
|
774
774
|
logger.error(f"Validation Error processing tool call: {e}")
|
@@ -776,13 +776,13 @@ async def sequentialthinking(thought: str, thoughtNumber: int, totalThoughts: in
|
|
776
776
|
return json.dumps({
|
777
777
|
"error": f"Input validation failed: {e}",
|
778
778
|
"status": "validation_error"
|
779
|
-
}, indent=2)
|
779
|
+
}, indent=2, ensure_ascii=False)
|
780
780
|
except Exception as e:
|
781
781
|
logger.exception(f"Error processing tool call") # Log full traceback
|
782
782
|
return json.dumps({
|
783
783
|
"error": f"An unexpected error occurred: {str(e)}",
|
784
784
|
"status": "failed"
|
785
|
-
}, indent=2)
|
785
|
+
}, indent=2, ensure_ascii=False)
|
786
786
|
|
787
787
|
# --- Main Execution ---
|
788
788
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: mcp-server-mas-sequential-thinking
|
3
|
-
Version: 0.2.
|
3
|
+
Version: 0.2.2
|
4
4
|
Summary: MCP Agent Implementation for Sequential Thinking
|
5
5
|
Author-email: Frad LEE <fradser@gmail.com>
|
6
6
|
Requires-Python: >=3.10
|
@@ -146,17 +146,23 @@ The `env` section should include the API key for your chosen `LLM_PROVIDER`.
|
|
146
146
|
# GROQ_TEAM_MODEL_ID="llama3-70b-8192"
|
147
147
|
# GROQ_AGENT_MODEL_ID="llama3-8b-8192"
|
148
148
|
# Example for DeepSeek:
|
149
|
-
# DEEPSEEK_TEAM_MODEL_ID="deepseek-chat"
|
150
|
-
# DEEPSEEK_AGENT_MODEL_ID="deepseek-
|
149
|
+
# DEEPSEEK_TEAM_MODEL_ID="deepseek-chat" # Note: `deepseek-reasoner` is not recommended as it doesn't support function calling
|
150
|
+
# DEEPSEEK_AGENT_MODEL_ID="deepseek-chat" # Recommended for specialists
|
151
151
|
# Example for OpenRouter:
|
152
|
-
# OPENROUTER_TEAM_MODEL_ID="
|
153
|
-
# OPENROUTER_AGENT_MODEL_ID="
|
152
|
+
# OPENROUTER_TEAM_MODEL_ID="deepseek/deepseek-r1"
|
153
|
+
# OPENROUTER_AGENT_MODEL_ID="deepseek/deepseek-chat-v3-0324"
|
154
154
|
|
155
155
|
# --- External Tools ---
|
156
156
|
# Required ONLY if the Researcher agent is used and needs Exa
|
157
157
|
EXA_API_KEY="your_exa_api_key"
|
158
158
|
```
|
159
159
|
|
160
|
+
**Note on Model Selection:**
|
161
|
+
|
162
|
+
* The `TEAM_MODEL_ID` is used by the Coordinator (the `Team` object itself). This role requires strong reasoning, synthesis, and delegation capabilities. Using a more powerful model (like `deepseek-r1`, `claude-3-opus`, or `gpt-4-turbo`) is often beneficial here, even if it's slower or more expensive.
|
163
|
+
* The `AGENT_MODEL_ID` is used by the specialist agents (Planner, Researcher, etc.). These agents handle more focused sub-tasks. You might choose a faster or more cost-effective model (like `deepseek-v3`, `claude-3-sonnet`, `llama3-70b`) for specialists, depending on the complexity of the tasks they typically handle and your budget/performance requirements.
|
164
|
+
* The defaults provided in `main.py` (e.g., `deepseek-reasoner` for agents when using DeepSeek) are starting points. Experimentation is encouraged to find the optimal balance for your specific use case.
|
165
|
+
|
160
166
|
3. **Install Dependencies:**
|
161
167
|
|
162
168
|
* **Using `uv` (Recommended):**
|
@@ -0,0 +1,5 @@
|
|
1
|
+
main.py,sha256=VoFzDPitJlVwru3AfC3KH563h7TtUxcrM0OnvCUVQv8,44067
|
2
|
+
mcp_server_mas_sequential_thinking-0.2.2.dist-info/METADATA,sha256=ZGYMdfaWS7-9VJXEbXaDAFKQc-iZwhi0rmu5LZ1YwfQ,15842
|
3
|
+
mcp_server_mas_sequential_thinking-0.2.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
4
|
+
mcp_server_mas_sequential_thinking-0.2.2.dist-info/entry_points.txt,sha256=wY2jq_6PmuqyKQzNnL6famc7DXnQiEhVnq3umzNVNiE,64
|
5
|
+
mcp_server_mas_sequential_thinking-0.2.2.dist-info/RECORD,,
|
@@ -1,5 +0,0 @@
|
|
1
|
-
main.py,sha256=YQJSQmXFxCHqvBxIYwPWPZHAnjkSIB_xrs3zBQqaqL8,44014
|
2
|
-
mcp_server_mas_sequential_thinking-0.2.0.dist-info/METADATA,sha256=HESwtzCeJim3YMfvJiWKxieIo90F1-0zRQH7Nc2QlQY,14812
|
3
|
-
mcp_server_mas_sequential_thinking-0.2.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
4
|
-
mcp_server_mas_sequential_thinking-0.2.0.dist-info/entry_points.txt,sha256=wY2jq_6PmuqyKQzNnL6famc7DXnQiEhVnq3umzNVNiE,64
|
5
|
-
mcp_server_mas_sequential_thinking-0.2.0.dist-info/RECORD,,
|
File without changes
|