▲ | amelius a day ago | |
How does the LLM know that it can use the factor tool to factor integers? Just by looking at the string "factor an integer"? | ||
▲ | svat a day ago | parent | next [-] | |
Yes, and I believe this is what the article is referring to when it says “a stochastic black box that communicates through a complex web of JSON schemas attached to docstring annotations”. Specifically, in the function definition:
the decorator `@mcp.tool()` does something behind the scenes to set up the right thing using the docstring of the function.The documentation and source code seem to be: - (official SDK): https://github.com/modelcontextprotocol/python-sdk/blob/e80c... -> using the function's docstring: https://github.com/modelcontextprotocol/python-sdk/blob/e80c... - (v2?): https://gofastmcp.com/servers/tools#the-%40tool-decorator and https://github.com/jlowin/fastmcp/blob/998de22a6e76fc8ae323e... -> using the function's docstring: https://github.com/jlowin/fastmcp/blob/998de22a6e76fc8ae323e... | ||
▲ | manojlds a day ago | parent | prev | next [-] | |
Yup this is what the tools response for the mcp server looks like: { tools: [ 0: { name: "factor" description: "Factor an integer" inputSchema: { ... } 4 items } ] } | ||
▲ | snek_case a day ago | parent | prev [-] | |
They give it a list of tool commands it can use in the context I believe. |