작성
·
25
0
안녕하세요.
Windows, VSC, Jupyter notebook 환경에서 stdio 기반 MCP 서버들을 테스트할 때 아래와 같은 에러가 발생하네요. unix 계열 OS 에서는 발생하지 않는 건가요?
io.UnsupportedOperation: fileno
.py 파일로 작성해서 실행할 때는 문제 없이 동작합니다.
답변 2
1
강의 보면서 실습하는거라 과정은 똑같습니다.
tool_list = await mcp_client.get_tools()
이때 에러가 나는데 transport 하는 과정에서 stdio 가 사용될 테니 여기서 fileno 관련 에러가 나는 걸로 보입니다. 아래와 같은 에러입니다.
\.venv\Lib\site-packages\ipykernel\iostream.py:371, in OutStream.fileno(self)
369 return self._original_stdstream_copy
370 msg = "fileno"
--> 371 raise io.UnsupportedOperation(msg)
UnsupportedOperation: fileno
ipykernel 패키지로 부터의 예외 메시지라 Jupyter 와 관련있는거 같고, 실제로 아래와 같이 해 보면 예외가 발생합니다. (stdin 은 괜찮고 stdout 과 stderr 만 에러 발생)
try:
stdout_fd = sys.stdout.fileno()
print(f"stdout fileno: {stdout_fd}")
except Exception as e:
print(f"Error: {e}")
노트북으로 안하고 CLI 에서 "python stdio_test.py" 해 보면 모두 문제 없고요.
그래서 .ipynb 파일을 .py 파일로 export 해서 실습은 완료했습니다.
강의에서는 문제 없길래 OS 차이인가 해서요.
나중에 Cursor + Jupyter 환경에서도 테스트해봐야겠네요..
감사합니다.
0
안녕하세요! 저는 처음보는 에러인데요, stdio
는 운영체제를 타지는 않을거라 왠지 노트북 환경에서 구동할 때 발생하는 에러가 아닌가 싶습니다.
강의를 보시면 mcp서버는 말씀하신 것처럼 .py
로 작성하고, 해당 mcp
서버를 노트북에서 실행하는데요, 지금은 MCP 서버를 노트북에서 구동하려는 중이실까요?
공유 감사드립니다!